5. Confidentialité:ConfidentielEntreprise
Jornada Summit: Introduction to Microservices
A small introduction… Evolution History
5
Modular
Programming
Object-Oriented
Distributed
Objects
Programming
based on
Components
SOA
Service
Oriented
Architecture
REST
Representational
State
Transfer
10. Confidentialité:ConfidentielEntreprise
▪ Small Autonomous services, that work together modelled around business
domain.
Jornada Summit: Introduction to Microservices
A small introduction… Sam Newman definition of Microservices
10
11. Confidentialité:ConfidentielEntreprise
▪ "In short, the microservice architectural style [1] is an
approach to developing a single application as a suite of
small services, each running in its own process and
communicating with lightweight mechanisms, often an
HTTP resource API. These services are built around
business capabilities and independently deployable by
fully automated deployment machinery."
Jornada Summit: Introduction to Microservices
A small introduction… Martin Fowler definition of Microservices
11
12. Confidentialité:ConfidentielEntreprise
▪ Jon Eaves, from RealEstate.com.au, told once, that microservice is something
that could be rewritten in two weeks, a rule of thumb that makes sense for
his particular context.
Jornada Summit: Introduction to Microservices
A small introduction… Best definition of Microservices
12
13. Confidentialité:ConfidentielEntreprise
▪ It is a small piece of business domain, (the sub-domain and bounded context)
that is totally independent, and must be done by a Squad in Agile
Environment, deployable anywhere in a private or public Cloud using IAAS,
SAAS or PAAS using often the protocols such as Rest or gRPC in a continuous
integration and continuous delivery.
Jornada Summit: Introduction to Microservices
A small introduction… My definition of Microservices
13
17. Confidentialité:ConfidentielEntreprise
Jornada Summit: Introduction to Microservices
Microservices Ecosystem: Explaining my definition: Squad in Agile Environment
17
For more information:
https://medium.com/@achardypm/agile-team-organisation-squads-chapters-tribes-and-guilds-80932ace0fdc
20. Confidentialité:ConfidentielEntreprise
Jornada Summit: Introduction to Microservices
Microservices Ecosystem: Explaining my definition: IAAS, SAAS, PAAS
20
Furnitures
Plates
Oven
Ingredients
Chef/Cooker
Furnitures
Plates
Oven
Ingredients
Chef/Cooker
Furnitures
Plates
Oven
Ingredients
Chef/Cooker
Furnitures
Plates
Oven
Ingredients
Chef/Cooker
Made at Home
Home Based
Frozen
IaaS
Infrastructure as a Service
Delivered
PaaS
Plataforma as a Service
Restaurant
SaaS
Software as a Service
You manage You do not manage
21. Confidentialité:ConfidentielEntreprise
Jornada Summit: Introduction to Microservices
Microservices Ecosystem: Explaining my definition: Rest or gRPC
21
REST is acronym for REpresentational State Transfer. It is architectural style
for distributed hypermedia systems and was first presented by Roy Fielding in
2000 in his famous dissertation.
22. Confidentialité:ConfidentielEntreprise
Jornada Summit: Introduction to Microservices
Microservices Ecosystem: Explaining my definition: Rest or gRPC
22
gRPC is a modern open source high performance remote procedure call (RPC)
framework that can run in any environment. Initially developed at Google
2015 using HTTP/2 protocol.
https://grpc.io/
https://developers.google.com/protocol-buffers/
message Person {
required string name = 1;
required int32 id = 2;
optional string email = 3;
}
Person.proto
Person john = Person.newBuilder()
.setId(1234)
.setName("John Doe")
.setEmail("jdoe@example.com")
.build();
output = new
FileOutputStream(args[0]);
john.writeTo(output);
Main.class
29. Confidentialité:ConfidentielEntreprise
Jornada Summit: Introduction to Microservices
Microservices: TOP Benefits and Drawbacks
29
Benefits Drawbacks
Smaller and faster deployments Harder to test and monitor because of
complexity of the architecture
Easy of understanding Debugging problems can be harder
Better Scalability
Communication between services is
complex (networking latency, message
processing)
Faster time to market
Security implementation is more complex
than a Monolithic (inter-service
communication)
Isolated services have better fault
tolerance
Require Cultural Change (mature agile
and DevOps culture)
Platform and language agnostics services Hard to maintain with a small team