2. Before you had one big app
Sylvain Hellegouarch
@lawouach
3. Now, you have a zillion of smaller
services
Sylvain Hellegouarch
@lawouach
4. Why so many of them?
The big app had hidden links and
dependencies.
These Functions still exist but their
relationships are now public.
➢Who becomes reponsible for those?
Sylvain Hellegouarch
@lawouach
5. Be careful about projecting complexity
Sylvain Hellegouarch
@lawouach
7. Helping the ops!
Sysadmins cannot be expected to
support thousands of dynamic services
the old fashion way
We need a tool to orchestrate all of
those pieces together.
Sylvain Hellegouarch
@lawouach
8. Orchestration
Microservices lifecycle and relationships
conductor
Orchestration brings (some) order to the
microservices chaos
➢ Docker Swarm
➢ Apache Mesos/Marathon
➢ Google Kubernetes
➢ CoreOS Fleet
➢ Cloud Foundry Diego
Sylvain Hellegouarch
@lawouach
9. Mesos
Cluster resources sharing
Advertizes resources to high-
level schedulers and executors
Isolates executed tasks into
mesos or docker containers
Sylvain Hellegouarch
@lawouach
10. Mesos (misc)
Master/slave architecture
Infrastructure neutral
Docker Swarm and Kubernetes can benefit from Mesos
MesosDNS for discovery (though you can use Consul,
WeaveDNS too)
Proven: used in production at airbnb, Apple, netflix,
Mesosphere…
Open Source (Apache 2.0 license)
Sylvain Hellegouarch
@lawouach
11. Marathon: a Mesos framework
Schedules your microservices
based on needed vs available
resources (offered by Mesos)
Executes microservices and
manages their lifecycle
Sylvain Hellegouarch
@lawouach
14. Marathon: Resources
How much do you need?
➢ Match Marathon’s agent role set at
startup
Sylvain Hellegouarch
@lawouach
15. How should it be deployed?
➢ Match Mesos slave attributes
➢ UNIQUE, GROUP BY, CLUSTER,
LIKE, UNLIKE…
Marathon: Constraints
Sylvain Hellegouarch
@lawouach
16. What is the upgrade/rollback
strategy?
➢ Ensures service continuity
Marathon: Upgrade
Sylvain Hellegouarch
@lawouach
21. Marathon: Challenges
No command line, less natural for scripting
Can Marathon cope with the speed of changes
brought on Docker itself?
Not a simple debugging experience
AFAIK, docker containers are never removed
automatically
Might be too generic for your use case
Sylvain Hellegouarch
@lawouach
22. Marathon: Getting started?
Design your system so that it copes with interruptions
Define your deployment workflows carefully: install,
upgrade, rollback, failover...
Use a service discovery (weave, consul, etcd,
MesosDNS)
Consider using an overlay network to decouple your
network from the infrastructure (weave, VXLAN)
Sylvain Hellegouarch
@lawouach
23. What’s next?
Explore but be patient!
Build familiarity to gain trust and
confidence
Sylvain Hellegouarch
@lawouach