Microservices are awesome ✨
Each service is an app implementing its own
business logic
service
database
SaaS 1 SaaS 2
Slide 5
Slide 5 text
Microservices are awesome ✨
Separated by concern, easier to understand
what's going on
auth email sms …
Slide 6
Slide 6 text
Microservices are awesome ✨
They can evolve apart, deploy at different
frequencies
service 1 service 2 service 3 service 4
service 1 service 4
service 4
Slide 7
Slide 7 text
Microservices are awesome ✨
If one breaks, you don't have to reboot everything
service 1 service 3 service 4
Slide 8
Slide 8 text
Microservices are awesome ✨
Scales according to the service needs, not globally
CPU
intensive
service
RAM
intensive
service
GPU
intensive
service
Slide 9
Slide 9 text
Microservices are awesome ✨
Each service team is free to use the right tools
service
using
couchDB
service
using
JavaScript
service
using
Golang
Slide 10
Slide 10 text
But
Slide 11
Slide 11 text
But
Slide 12
Slide 12 text
Just as you think you're
making microservices
Slide 13
Slide 13 text
You might just not
Slide 14
Slide 14 text
You are not building
microservices when… #
Slide 15
Slide 15 text
You are not building
microservices when… #
Changes needs to be synced
service 1 service 1
change
service 2
Slide 16
Slide 16 text
Deploys needs to be synced
You are not building
microservices when… #
service 1 service 1
deploy
service 2
Slide 17
Slide 17 text
The same developers work across a large
number of them
service 1
Kévin
Sylvie
Amine
You are not building
microservices when… #
service 2
Kévin
Luc
Clarisse
service 3
Kévin
Zhang
Nicolas
Slide 18
Slide 18 text
They share a datastore
You are not building
microservices when… #
service 1
database
service 2
Slide 19
Slide 19 text
They share a lot of the same code / models
You are not building
microservices when… #
service 1
type User {}
service 2
type User {}
service 3
type User {}
Slide 20
Slide 20 text
You just created a distributed
monolith
crypto
REST
logging
REST
email
REST
sms
REST
storage
REST
billing
REST
Slide 21
Slide 21 text
No content
Slide 22
Slide 22 text
Managing microservices is
like managing a restaurant
Slide 23
Slide 23 text
waiter
REST
sous-chef
REST
pastry chef
REST
wine waiter
REST
washer
REST
chef
REST
One interlocutor
passing messages to
the right services
Slide 29
Slide 29 text
The REST / JSON gateway issues ⚠
If a first API is RESTful, the twelfth iteration
is RESTish
service API v1
✨
service API v3
… service API v9
…
Slide 30
Slide 30 text
Latency caused by serialization / deserialization
service 1 service 2
API gateway
decode
JSON
understand
message
create
message
encode
JSON
The REST / JSON gateway issues ⚠
Slide 31
Slide 31 text
You embed your model schemas in every messages
{
"login": "octocat",
"avatar_url": "https://github.com/images/error/octocat_happy.gif",
"gravatar_id": "",
"url": "https://api.github.com/users/octocat",
"html_url": "https://github.com/octocat",
…
The REST / JSON gateway issues ⚠
Slide 32
Slide 32 text
As a service owner, you have to wait for a complete
implementation of another one to start using it
service 1
is finished &
deployed
the API
gateway
implements
service 1
service 2 starts
implementing
its usage of
service 1
The REST / JSON gateway issues ⚠
Slide 33
Slide 33 text
As JSON types are basic (JavaScript interop…), a
documentation is mandatory
The REST / JSON gateway issues ⚠
Slide 34
Slide 34 text
How does a restaurant
manage communication?
Slide 35
Slide 35 text
No content
Slide 36
Slide 36 text
People working in the
kitchen don't
necessarily have the
same mother tongue
Slide 37
Slide 37 text
They don't force their
coworkers to use their
language