Présentation rapide de Mesos et Marathon faites au Docker metup 2016 de Rennes.
Vous trouverez le code associé : https://github.com/Lawouach/platform-showcase-for-microservices
2. Mise à jour d’une application
(c) 2016 - Sylvain Hellegouarch // @lawouach
3. Un système complexe et des
services
(c) 2016 - Sylvain Hellegouarch // @lawouach
4. Pourquoi autant de services ?
Une application ne vit plus isolée, elle
s’intègre dans un écosystème riche et
varié.
Les services exposent des relations
fonctionnelles implémentées jusqu’ici
au sein du code.
Ces Fonctions existent toujours mais sont
désormais visibles et connues des
architectes et des ops.
(c) 2016 - Sylvain Hellegouarch // @lawouach
5. Ah mais c’est plus complexe non ?
(c) 2016 - Sylvain Hellegouarch // @lawouach
6. Le terrain est-il miné ? Non mais...
Automatiser
Isoler
Orchestrer
Superviser
Apprendre
(c) 2016 - Sylvain Hellegouarch // @lawouach
7. Orchestrer
Chef d’orchestre du cycle de vie de vos services
L’orchestration apporte un peu d’ordre et
de visibilité dans ce chaos
Quelques solutions :
➢Docker Swarm
➢Apache Mesos/Marathon
➢Google Kubernetes
➢CoreOS Fleet
(c) 2016 - Sylvain Hellegouarch // @lawouach
8. Scenarios Mesos/Marathon
Mises à jour et rollback automatisés
Scalabilité à travers l’élasticité des
services
Disponibilité et continuité des services
automatisées
Optimisation de l’utilisation des
ressources
(c) 2016 - Sylvain Hellegouarch // @lawouach
9. Mesos
Partage des ressources disponibles
Offre ces ressources à des frameworks
pour planifier des tâches
Isole et exécute des tâches au sein de
containers
(c) 2016 - Sylvain Hellegouarch // @lawouach
10. Mesos (misc)
Architecture maître/esclaves
Indépendant de l’infrastructure
Eprouvé: utilisé en production par airbnb,
Apple, netflix, Mesosphere…
Open Source (Apache 2.0 license):
https://dcos.io/
Offre commerciale disponible via Mesosphere
https://mesosphere.com/
(c) 2016 - Sylvain Hellegouarch // @lawouach
11. Marathon: un orchestrateur pour
Mesos
Planifie l’exécution des services en
fonction des ressources dont ils ont
besoin
Exécute les services et supervise leur
cycle de vie
(c) 2016 - Sylvain Hellegouarch // @lawouach
12. Une API REST HTTP
(c) 2016 - Sylvain Hellegouarch // @lawouach
14. Marathon: Ressources
De quoi avons nous besoin ?
➢ Correspondance avec des roles
d’agents Marathon pour une
planification plus ciblée
(c) 2016 - Sylvain Hellegouarch // @lawouach
15. Quelles sont les contraintes ?
➢ Correspondance aux attributs des esclaves
Mesos
➢ UNIQUE, GROUP BY, CLUSTER, LIKE,
UNLIKE…
Marathon: Contraintes
(c) 2016 - Sylvain Hellegouarch // @lawouach
16. Quelle est la stratégie de mise à
jour ?
➢ Cible la continuité de service
Marathon: Les mises à jour de
services
(c) 2016 - Sylvain Hellegouarch // @lawouach
17. Supervision pour les scénarios de
« fault-tolerance »
➢ Cible la disponibilité de service
Marathon: Etat de santé
(c) 2016 - Sylvain Hellegouarch // @lawouach
20. Marathon: Et le reste…
Support natif de groupes de services
Expose les évènements pour
traitements externes
Documentation basique mais simple à
suivre
(c) 2016 - Sylvain Hellegouarch // @lawouach
21. Marathon: Un canevas mais...
A vous d’apporter certains services essentiels :
● Monitoring : sysdig, datadog...
● Logs centralisés : ELK, Loggly, Papertrail
● Routage de services et load-balancers:
haproxy, vulcand, nginx, flux
● Découverte de services : consul, etcd,
weaveDNS
● Réseaux overlays : weave
● Gestion des configurations et secrets :
vault
● Gestion du stockage : Flocker
● Patterns: circuit breaker...
(c) 2016 - Sylvain Hellegouarch // @lawouach
22. Enterprise Ready?
Mesos/Marathon est désormais packagé dans
une solution plus cohérente: DC/OS
https://dcos.io/
● Open-source
● Plusieurs applications déjà intégrée (kafka,
cassandra…)
● Télémétrie
● DNS
● Logging
Offre commerciale correspondante:
https://mesosphere.com/
(c) 2016 - Sylvain Hellegouarch // @lawouach
23. Et maintenant ?
Explorez mais soyez patient !
Familiarisez-vous pour gagner en
confiance.
(c) 2016 - Sylvain Hellegouarch // @lawouach