In this presentation the Jolie Team shows its vision about the incoming revolution of microservices. The deployment paradigm and the linguistic paradigm should be adopted together in order to fully achieve the microservice revolution
1. Vision of a microservice
revolution
The Jolie Team
2. How microsevices were born
Microservices emerged from the need to fragment
existing software monoliths into different parts that can
be scaled and replicated independently. It is a
disruptive force in the way that software components
are made and linked to each other.
3. Two roads to microservices
Programming: from the point of
view of programming, the
challenge is to find new languages
that capture the essence of
microservices and allow us to
compose them easily.
Language is the keyword.
We say that this road follows the
linguistic paradigm.
Systems: from the point of view
of systems, microservices are
independent applications able to
serve different requests. They are
deployed within artifacts called
containers.
Container is the keyword.
We say that this road follows the
deployment paradigm.
4. Deployment paradigm
vs
Linguistic paradigm
The linguistic paradigm is based
upon the unification of
microservices foundations into a
unique linguistic artifact. It is
based on the idea that:
it does not matter how a
microservice is deployed, the most
important thing is that every single
programmable unit is a
microservice.
The deployment paradigm,
based on containers, starts from
the idea that:
it does not matter how a
microservice is developed, the
most important thing is that it is
deployed in a container that can
be easily moved, replaced, and
scaled.
5. Software production chain
DESIGN
Deployment Paradigm Linguistic Paradigm
DEVELOPMENT
PACKAGING
DEPLOYMENT
The designer thinks in
microservices
The designer thinks in
microservices
The developer programs with a
known paradigm (object-oriented,
functional, etc.)
The developer programs
directly in a native
microservice language
The developer transforms
a not microservice artifact into a
microservice using an additional
layer (frameworks, etc.)
The developer deploys the
microservice (usually in a
container)
The developer deploys the
microservice (usually in a
container)
(not necessary)
6. The boundaries of a microservice
Deployment paradigm Linguistic paradigm
A microservice can always be
the composition of other
microservices
A microservice is a packaged artifact from
a specific set of technologies (Java,
Erlang, Javascript, etc.)
Microservices are atomic Inside a microservice, there can always
be other microservices
7. The Architecture
Deployment paradigm Linguistic paradigm
A microservice architecture is a network of
containers
A microservice architecture is a
composition of microservices
8. The Architecture
Deployment paradigm Linguistic paradigm
A microservice can be easily moved from
inside to outside of a container (and vice
versa)
In order to bring an internal component out
of a microservice, a specific programming
task must be carried out
X
10. Advantages
Deployment paradigm Linguistic paradigm
Technology
agnosticism
Architectures can be easily
changed by re-composing services
Easy, scalable deployment
Thinking in microservices
translates directly to software
(native programming)
Compatible with Cloud
Computing stack
Compatible with the deployment
paradigm