mesos & marathon - piloter les services de votre système

23
MESOS / MARATHON Piloter les services de votre système

Upload: sylvain-hellegouarch

Post on 13-Jan-2017

318 views

Category:

Engineering


4 download

TRANSCRIPT

Page 1: Mesos & Marathon - Piloter les services de votre système

MESOS / MARATHONPiloter les services de votre système

Page 2: Mesos & Marathon - Piloter les services de votre système

(c) 2016 - Sylvain Hellegouarch // @lawouach

Mise à jour d’une application

Page 3: Mesos & Marathon - Piloter les services de votre système

(c) 2016 - Sylvain Hellegouarch // @lawouach

Un système complexe et des services

Page 4: Mesos & Marathon - Piloter les services de votre système

(c) 2016 - Sylvain Hellegouarch // @lawouach

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.

Page 5: Mesos & Marathon - Piloter les services de votre système

(c) 2016 - Sylvain Hellegouarch // @lawouach

Ah mais c’est plus complexe non ?

Page 6: Mesos & Marathon - Piloter les services de votre système

(c) 2016 - Sylvain Hellegouarch // @lawouach

Le terrain est-il miné ? Non mais...

AutomatiserIsoler

OrchestrerSuperviserApprendre

Page 7: Mesos & Marathon - Piloter les services de votre système

(c) 2016 - Sylvain Hellegouarch // @lawouach

Orchestrer

Chef d’orchestre du cycle de vie de vos services

L’orchestration apporte un peu d’ordre etde visibilité dans ce chaos

Quelques solutions :

➢ Docker Swarm➢ Apache Mesos/Marathon➢ Google Kubernetes➢ CoreOS Fleet

Page 8: Mesos & Marathon - Piloter les services de votre système

(c) 2016 - Sylvain Hellegouarch // @lawouach

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

Page 9: Mesos & Marathon - Piloter les services de votre système

(c) 2016 - Sylvain Hellegouarch // @lawouach

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

Page 10: Mesos & Marathon - Piloter les services de votre système

(c) 2016 - Sylvain Hellegouarch // @lawouach

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/

Page 11: Mesos & Marathon - Piloter les services de votre système

(c) 2016 - Sylvain Hellegouarch // @lawouach

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

Page 12: Mesos & Marathon - Piloter les services de votre système

(c) 2016 - Sylvain Hellegouarch // @lawouach

Une API REST HTTP

Page 13: Mesos & Marathon - Piloter les services de votre système

(c) 2016 - Sylvain Hellegouarch // @lawouach

Marathon: Spécification

Page 14: Mesos & Marathon - Piloter les services de votre système

(c) 2016 - Sylvain Hellegouarch // @lawouach

Marathon: Ressources

De quoi avons nous besoin ?

➢ Correspondance avec des roles d’agents Marathon pour une planification plus ciblée

Page 15: Mesos & Marathon - Piloter les services de votre système

(c) 2016 - Sylvain Hellegouarch // @lawouach

Quelles sont les contraintes ?

➢ Correspondance aux attributs des esclaves Mesos

➢ UNIQUE, GROUP BY, CLUSTER, LIKE, UNLIKE…

Marathon: Contraintes

Page 16: Mesos & Marathon - Piloter les services de votre système

(c) 2016 - Sylvain Hellegouarch // @lawouach

Quelle est la stratégie de mise à jour ?

➢ Cible la continuité de service

Marathon: Les mises à jour de services

Page 17: Mesos & Marathon - Piloter les services de votre système

(c) 2016 - Sylvain Hellegouarch // @lawouach

Supervision pour les scénarios de « fault-tolerance »

➢ Cible la disponibilité de service

Marathon: Etat de santé

Page 18: Mesos & Marathon - Piloter les services de votre système

(c) 2016 - Sylvain Hellegouarch // @lawouach

Relations à d’autres services

Marathon: Dépendences fonctionnelles

Page 19: Mesos & Marathon - Piloter les services de votre système

(c) 2016 - Sylvain Hellegouarch // @lawouach

Marathon: Définition du service

Page 20: Mesos & Marathon - Piloter les services de votre système

(c) 2016 - Sylvain Hellegouarch // @lawouach

Marathon: Et le reste…

Support natif de groupes de services

Expose les évènements pour traitements externes

Documentation basique mais simple à suivre

Page 21: Mesos & Marathon - Piloter les services de votre système

(c) 2016 - Sylvain Hellegouarch // @lawouach

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...

Page 22: Mesos & Marathon - Piloter les services de votre système

(c) 2016 - Sylvain Hellegouarch // @lawouach

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/

Page 23: Mesos & Marathon - Piloter les services de votre système

(c) 2016 - Sylvain Hellegouarch // @lawouach

Et maintenant ?

Explorez mais soyez patient !

Familiarisez-vous pour gagner en confiance.