SlideShare ist ein Scribd-Unternehmen logo
1 von 29
Downloaden Sie, um offline zu lesen
HaProxy et Marathon
Ou comment exposer les services de son cluster ?
Paris Mesos Users Group
Paris Mesos Users Group
Agenda
• Mesos marathon et les Micro services
• C’est bien mais maintenant comment est-ce qu’on expose tout ça ? (Problème / les besoins / cas
concret == démo)
• Les solutions existantes
• Comment le faire soi-même
• Du code !
Paris Mesos Users Group 1
Paris Mesos Users Group
Qui suis-je ?
Jean-Pascal THIERY
Développeur de Kodo Kojo depuis le début de l’année 2016
Twitter : @jpthiery
Speaker à l’université Mesos de Devoxx France 2015
2
Paris Mesos Users Group
Mesos, Marathon et les microservices
• Mesos: Orchestrateur de tâche distribuées
• Marathon: Surveille l’état de tâches longues
• Microservices: Micros et scalables
3
Paris Mesos Users Group
Mesos
• En version 1.0.0 depuis le 27 juillet 2016
• Éprouvé par des grands du Web
• Vise à optimiser le rendement d’un cluster de machine
4
Paris Mesos Users Group
Marathon
• Permet de lancer des services variés
• Vérifie l’état des services et les relances le cas échéant
• Permet de gérer simplement la scalabilité des services
5
Paris Mesos Users Group
Comment exposer-t-on tout ça ?
• Les services sont lancés sur des port dynamiques.
• Je demande à mon utilisateur de se connecter sur l’url : http://10.2.234.18:32492 ?
• Si le serveur tombe et que Marathon relance le service sur un autre serveur, je lui
envoi un mail avec la nouvelle Url en Ip/Port ?
6
Paris Mesos Users Group
Précisions sur les besoins
• Une solution Opensource
• Redirection vers N backends en dynamique (en cas d’ajout/suppression/modification d’un cluster
de backend)
• Support de HTTPS
• Support des virtual host HTTP
• Router des connexions TCP (pour faire du SSH sur Gitlab)
7
Paris Mesos Users Group
Kodo kojo
8
Ce qui existe
9
Paris Mesos Users Group
DCOS
• Complètement intégré à Mesos
• Développé par les contributeurs de Mesos
10
Paris Mesos Users Group
DCOS
• Intégre complètement Mesos
• Pas Opensource au moment du lancement des chantiers sur Kodo Kojo
11
DCOS
Paris Mesos Users Group
Traefik
• Compatible avec plusieurs backends:
• Docker
• Marathon
• Kubernetes
• Supporte HTTP2
12
Paris Mesos Users Group
Traefik
• Ne supporte ‘que’ HTTP, donc pas possible d’exposer un git en SSH (comme un
gitlab ?)
13
Paris Mesos Users Group
vamp.io
• Supporte plusieurs backends: Marathon et Kubenertes.
• Permet de faire du Canary release
• Se base sur Haproxy
• Permet de router les appels entrants sur presque tous les paramètres proposés par
Haproxy
14
Paris Mesos Users Group
vamp.io
• Ne supporte pas les Websockets
• ne permet pas de router des connexions TCP (encore ce fichu SSH pour notre Gitlab)
15
Comment le faire soi-même ?
16
Paris Mesos Users Group
Nous allons garder HAProxy
• Éprouvé
• Performant
• Communauté active
17
Paris Mesos Users Group
S’appuyer sur Marathon...
• API Rest
• Event Bus
18
Paris Mesos Users Group
... n’est pas une bonne idée.
• API Rest -> Le polling, c’est mal
• Event Bus -> capricieux et en marge des fonctionnalités de Marathon.
19
Paris Mesos Users Group
Zookeeper
• Gestionnaire de configuration distribuée
• Election de master/leader
20
Paris Mesos Users Group
Mais, comment faire ?
• Marathon utilise Zookeeper pour stocker son état.
• Zookeeper peut nous notifier du changement d’état des noeuds de Marathon.
21
Paris Mesos Users Group
Les noeuds Marathon dans Zookeeper
22
/marathon
/state
/task:monprojet_gitlab.12439878678364
Paris Mesos Users Group
Ce que nous allons faire
23
Paris Mesos Users Group
Un peu de code
24
Paris Mesos Users Group
Des questions ?
25
Paris Mesos Users Group
Références
• Dépot de source : https://github.com/kodokojo/hapoxy-agent
• http://kodokojo.io
26
Paris Mesos Users Group
Merci !
27
HaProxy et Marathon
Ou comment exposer les services de son cluster ?
Paris Mesos Users Group

Weitere ähnliche Inhalte

Andere mochten auch

Oxalide Workshop #5 - Docker avancé & Kubernetes
Oxalide Workshop #5 - Docker avancé & KubernetesOxalide Workshop #5 - Docker avancé & Kubernetes
Oxalide Workshop #5 - Docker avancé & Kubernetes
Ludovic Piot
 
중간평가
중간평가중간평가
중간평가
4pril12th
 
기말최종피티
기말최종피티기말최종피티
기말최종피티
Boram Kim
 
Ростислав Фридман: “Kubernetes как средство управления микросервисами"
Ростислав Фридман: “Kubernetes как средство управления микросервисами"Ростислав Фридман: “Kubernetes как средство управления микросервисами"
Ростислав Фридман: “Kubernetes как средство управления микросервисами"
Provectus
 

Andere mochten auch (20)

From Code to Kubernetes
From Code to KubernetesFrom Code to Kubernetes
From Code to Kubernetes
 
Oxalide Workshop #5 - Docker avancé & Kubernetes
Oxalide Workshop #5 - Docker avancé & KubernetesOxalide Workshop #5 - Docker avancé & Kubernetes
Oxalide Workshop #5 - Docker avancé & Kubernetes
 
중간평가
중간평가중간평가
중간평가
 
Building Reactive Applications With Akka And Java
Building Reactive Applications With Akka And JavaBuilding Reactive Applications With Akka And Java
Building Reactive Applications With Akka And Java
 
RackN DevOps meetup NYC
RackN DevOps meetup NYCRackN DevOps meetup NYC
RackN DevOps meetup NYC
 
Welcome talk for Moscow Kubernetes Meetup 1
Welcome talk for Moscow Kubernetes Meetup 1Welcome talk for Moscow Kubernetes Meetup 1
Welcome talk for Moscow Kubernetes Meetup 1
 
기말최종피티
기말최종피티기말최종피티
기말최종피티
 
Opening: builderscon tokyo 2016
Opening: builderscon tokyo 2016Opening: builderscon tokyo 2016
Opening: builderscon tokyo 2016
 
Net core, mssql, container und kubernetes
Net core, mssql, container und kubernetesNet core, mssql, container und kubernetes
Net core, mssql, container und kubernetes
 
Joint OpenStack Kubernetes Environment (OpenStack Summit)
Joint OpenStack Kubernetes Environment (OpenStack Summit)Joint OpenStack Kubernetes Environment (OpenStack Summit)
Joint OpenStack Kubernetes Environment (OpenStack Summit)
 
Mirantis Contributions to Kubernetes Ecosystem
Mirantis Contributions to Kubernetes EcosystemMirantis Contributions to Kubernetes Ecosystem
Mirantis Contributions to Kubernetes Ecosystem
 
Microservices summit talk 1/31
Microservices summit talk   1/31Microservices summit talk   1/31
Microservices summit talk 1/31
 
Keeping up with Tech
Keeping up with Tech Keeping up with Tech
Keeping up with Tech
 
Ростислав Фридман: “Kubernetes как средство управления микросервисами"
Ростислав Фридман: “Kubernetes как средство управления микросервисами"Ростислав Фридман: “Kubernetes как средство управления микросервисами"
Ростислав Фридман: “Kubernetes как средство управления микросервисами"
 
Docker Containers in Azure
Docker Containers in AzureDocker Containers in Azure
Docker Containers in Azure
 
Deploy your favorite apps on Kubernetes
Deploy your favorite apps on KubernetesDeploy your favorite apps on Kubernetes
Deploy your favorite apps on Kubernetes
 
Kubernetes as Orchestrator for A10 Lightning Controller
Kubernetes as Orchestrator for A10 Lightning ControllerKubernetes as Orchestrator for A10 Lightning Controller
Kubernetes as Orchestrator for A10 Lightning Controller
 
Google Cloud Computing compares GCE, GAE and GKE
Google Cloud Computing compares GCE, GAE and GKEGoogle Cloud Computing compares GCE, GAE and GKE
Google Cloud Computing compares GCE, GAE and GKE
 
Kubernetes API - deep dive into the kube-apiserver
Kubernetes API - deep dive into the kube-apiserverKubernetes API - deep dive into the kube-apiserver
Kubernetes API - deep dive into the kube-apiserver
 
Bangalore Container Conference - Sponsor Deck
Bangalore Container Conference - Sponsor DeckBangalore Container Conference - Sponsor Deck
Bangalore Container Conference - Sponsor Deck
 

Ähnlich wie Piloter un loadbalancer pour exposer les microservoces de mon cluster Mesos/Marathon

Les plateformes de développement des web services
Les plateformes de développement des web servicesLes plateformes de développement des web services
Les plateformes de développement des web services
oussemos
 

Ähnlich wie Piloter un loadbalancer pour exposer les microservoces de mon cluster Mesos/Marathon (20)

What's Next Replay! Lyon 2011 - A. Cogoluegnes
What's Next Replay! Lyon 2011 - A. CogoluegnesWhat's Next Replay! Lyon 2011 - A. Cogoluegnes
What's Next Replay! Lyon 2011 - A. Cogoluegnes
 
2016_03_10 - DevOps@unms - Presentation for IBM
2016_03_10 - DevOps@unms - Presentation for IBM2016_03_10 - DevOps@unms - Presentation for IBM
2016_03_10 - DevOps@unms - Presentation for IBM
 
Applications Open Source pour Entreprise
Applications Open Source pour EntrepriseApplications Open Source pour Entreprise
Applications Open Source pour Entreprise
 
Introduction DevOps & containarization des applications
Introduction DevOps & containarization des applicationsIntroduction DevOps & containarization des applications
Introduction DevOps & containarization des applications
 
Afterworks @Nouméa - DevOps, approche par container et Docker
Afterworks @Nouméa - DevOps, approche par container et DockerAfterworks @Nouméa - DevOps, approche par container et Docker
Afterworks @Nouméa - DevOps, approche par container et Docker
 
Comment développer un PaaS Java en 30 minutes avec docker
Comment développer un PaaS Java en 30 minutes avec dockerComment développer un PaaS Java en 30 minutes avec docker
Comment développer un PaaS Java en 30 minutes avec docker
 
Livraison en continue avec l'outillage devops - Jenkins, Ansible, Docker et ...
Livraison en continue avec l'outillage devops - Jenkins, Ansible, Docker et  ...Livraison en continue avec l'outillage devops - Jenkins, Ansible, Docker et  ...
Livraison en continue avec l'outillage devops - Jenkins, Ansible, Docker et ...
 
DevOps - from idea to production
DevOps - from idea to productionDevOps - from idea to production
DevOps - from idea to production
 
Les plateformes de développement des web services
Les plateformes de développement des web servicesLes plateformes de développement des web services
Les plateformes de développement des web services
 
SUSE Expert Days Paris 2018 – CaaSP
SUSE Expert Days Paris 2018 – CaaSPSUSE Expert Days Paris 2018 – CaaSP
SUSE Expert Days Paris 2018 – CaaSP
 
Introduction à meteor
Introduction à meteorIntroduction à meteor
Introduction à meteor
 
Introduction à Node.js
Introduction à Node.js Introduction à Node.js
Introduction à Node.js
 
Xamarin : DevOps Cloud, Re-Build et retour d'expérience
Xamarin : DevOps Cloud, Re-Build et retour d'expérienceXamarin : DevOps Cloud, Re-Build et retour d'expérience
Xamarin : DevOps Cloud, Re-Build et retour d'expérience
 
Agile lille 2015 devops etapres
Agile lille 2015 devops etapresAgile lille 2015 devops etapres
Agile lille 2015 devops etapres
 
Develop on Apache Ofbiz
Develop on Apache OfbizDevelop on Apache Ofbiz
Develop on Apache Ofbiz
 
#MSDEVMTL Introduction à #SonarQube
#MSDEVMTL Introduction à #SonarQube#MSDEVMTL Introduction à #SonarQube
#MSDEVMTL Introduction à #SonarQube
 
REX Openshift à la Poste
REX Openshift à la PosteREX Openshift à la Poste
REX Openshift à la Poste
 
Paris Container Day 2016 : Les nouveaux défis du déploiement (Xebia Labs)
Paris Container Day 2016 : Les nouveaux défis du déploiement (Xebia Labs)Paris Container Day 2016 : Les nouveaux défis du déploiement (Xebia Labs)
Paris Container Day 2016 : Les nouveaux défis du déploiement (Xebia Labs)
 
Introduction à DevOps
Introduction à DevOpsIntroduction à DevOps
Introduction à DevOps
 
Intégration continue
Intégration continueIntégration continue
Intégration continue
 

Piloter un loadbalancer pour exposer les microservoces de mon cluster Mesos/Marathon

  • 1. HaProxy et Marathon Ou comment exposer les services de son cluster ? Paris Mesos Users Group
  • 2. Paris Mesos Users Group Agenda • Mesos marathon et les Micro services • C’est bien mais maintenant comment est-ce qu’on expose tout ça ? (Problème / les besoins / cas concret == démo) • Les solutions existantes • Comment le faire soi-même • Du code ! Paris Mesos Users Group 1
  • 3. Paris Mesos Users Group Qui suis-je ? Jean-Pascal THIERY Développeur de Kodo Kojo depuis le début de l’année 2016 Twitter : @jpthiery Speaker à l’université Mesos de Devoxx France 2015 2
  • 4. Paris Mesos Users Group Mesos, Marathon et les microservices • Mesos: Orchestrateur de tâche distribuées • Marathon: Surveille l’état de tâches longues • Microservices: Micros et scalables 3
  • 5. Paris Mesos Users Group Mesos • En version 1.0.0 depuis le 27 juillet 2016 • Éprouvé par des grands du Web • Vise à optimiser le rendement d’un cluster de machine 4
  • 6. Paris Mesos Users Group Marathon • Permet de lancer des services variés • Vérifie l’état des services et les relances le cas échéant • Permet de gérer simplement la scalabilité des services 5
  • 7. Paris Mesos Users Group Comment exposer-t-on tout ça ? • Les services sont lancés sur des port dynamiques. • Je demande à mon utilisateur de se connecter sur l’url : http://10.2.234.18:32492 ? • Si le serveur tombe et que Marathon relance le service sur un autre serveur, je lui envoi un mail avec la nouvelle Url en Ip/Port ? 6
  • 8. Paris Mesos Users Group Précisions sur les besoins • Une solution Opensource • Redirection vers N backends en dynamique (en cas d’ajout/suppression/modification d’un cluster de backend) • Support de HTTPS • Support des virtual host HTTP • Router des connexions TCP (pour faire du SSH sur Gitlab) 7
  • 9. Paris Mesos Users Group Kodo kojo 8
  • 11. Paris Mesos Users Group DCOS • Complètement intégré à Mesos • Développé par les contributeurs de Mesos 10
  • 12. Paris Mesos Users Group DCOS • Intégre complètement Mesos • Pas Opensource au moment du lancement des chantiers sur Kodo Kojo 11 DCOS
  • 13. Paris Mesos Users Group Traefik • Compatible avec plusieurs backends: • Docker • Marathon • Kubernetes • Supporte HTTP2 12
  • 14. Paris Mesos Users Group Traefik • Ne supporte ‘que’ HTTP, donc pas possible d’exposer un git en SSH (comme un gitlab ?) 13
  • 15. Paris Mesos Users Group vamp.io • Supporte plusieurs backends: Marathon et Kubenertes. • Permet de faire du Canary release • Se base sur Haproxy • Permet de router les appels entrants sur presque tous les paramètres proposés par Haproxy 14
  • 16. Paris Mesos Users Group vamp.io • Ne supporte pas les Websockets • ne permet pas de router des connexions TCP (encore ce fichu SSH pour notre Gitlab) 15
  • 17. Comment le faire soi-même ? 16
  • 18. Paris Mesos Users Group Nous allons garder HAProxy • Éprouvé • Performant • Communauté active 17
  • 19. Paris Mesos Users Group S’appuyer sur Marathon... • API Rest • Event Bus 18
  • 20. Paris Mesos Users Group ... n’est pas une bonne idée. • API Rest -> Le polling, c’est mal • Event Bus -> capricieux et en marge des fonctionnalités de Marathon. 19
  • 21. Paris Mesos Users Group Zookeeper • Gestionnaire de configuration distribuée • Election de master/leader 20
  • 22. Paris Mesos Users Group Mais, comment faire ? • Marathon utilise Zookeeper pour stocker son état. • Zookeeper peut nous notifier du changement d’état des noeuds de Marathon. 21
  • 23. Paris Mesos Users Group Les noeuds Marathon dans Zookeeper 22 /marathon /state /task:monprojet_gitlab.12439878678364
  • 24. Paris Mesos Users Group Ce que nous allons faire 23
  • 25. Paris Mesos Users Group Un peu de code 24
  • 26. Paris Mesos Users Group Des questions ? 25
  • 27. Paris Mesos Users Group Références • Dépot de source : https://github.com/kodokojo/hapoxy-agent • http://kodokojo.io 26
  • 28. Paris Mesos Users Group Merci ! 27
  • 29. HaProxy et Marathon Ou comment exposer les services de son cluster ? Paris Mesos Users Group