#ContainerDayFR
Paris Container Day - 13 juin 2017
Nomad, l’orchestration made in HashiCorp
Paris Container Day 2017 #ContainerDayFR
Architecte virtualisation
Lead DevOps
Cloud Builder
…
Je suis...
Bastien Cadiot (...
#ContainerDayFRParis Container Day 2017
Au commencement...
En réalité...
Un monde de conteneurs
Nomad, l’orchestration mad...
Paris Container Day 2017 #ContainerDayFR
Nos clientsNos clients
La démo n’est pas la réalité
Nomad, l’orchestration made i...
Paris Container Day 2017 #ContainerDayFR
L’environnement de dev n’est pas la production
Nomad, l’orchestration made in Has...
Paris Container Day 2017 #ContainerDayFR
Comprendre l’architecture n’est pas optionnel
Nomad, l’orchestration made in Hash...
Paris Container Day 2017 #ContainerDayFR
Une installation compliquée est rarement un bon
signe pour l’avenir
Nomad, l’orch...
#ContainerDayFRParis Container Day 2017
● Rationaliser
● Simplifier
Pourquoi orchestrer ?
Rappel des principes
● Ordonnanc...
Paris Container Day 2017 #ContainerDayFR
Trendy - Kubernetes Stable - Mesos Easy - Swarm
Quels sont les choix ?
Nomad, l’o...
Paris Container Day 2017 #ContainerDayFR
Nomad, l’orchestration made in Hashicorp
Paris Container Day 2017 #ContainerDayFR
Distribué Flexible Simple
● Multi-datacenter
● Multi-cloud
● Hautement disponible...
Paris Container Day 2017 #ContainerDayFR
Dessine-moi une infrastructure Nomad
Nomad, l’orchestration made in Hashicorp
12
#ContainerDayFRParis Container Day 2017
Etape 1 : Création d’un cluster Nomad
● Instanciation de 3 VM serveurs
● Installat...
Paris Container Day 2017 #ContainerDayFR
{
"bootstrap_expect": 3,
"server": true,
"datacenter": "gce-west1",
"data_dir": "...
Paris Container Day 2017 #ContainerDayFR
Etape 1 - Démo
Consul
# consul members
Node Address Status Type Build Protocol DC...
Paris Container Day 2017 #ContainerDayFR
Etape 1 - Démo
Nomad
# nomad server-members
Name Address Port Status Leader Proto...
Paris Container Day 2017 #ContainerDayFR
Etape 2 - Running
Fichier de configuration (Job)
job "pcd2017" {
region = "europe...
Paris Container Day 2017 #ContainerDayFR
Etape 2 - Démo
Job run
# nomad run -address=http://104.199.99.190:4646 app.nomad
...
Paris Container Day 2017 #ContainerDayFR
Etape 2 - Démo
Job status
nomad status
-address=http://104.199.99.190:4646
pcd201...
#ContainerDayFRParis Container Day 2017
Etape 3 : Création d’un datacenter France
● Création d’un datacenter chez un cloud...
Paris Container Day 2017 #ContainerDayFR
Etape 3 - Extending
Fichier de configuration (Nomad Client)
region = "europe"
dat...
Paris Container Day 2017 #ContainerDayFR
Etape 3 - Démo
Consul
# consul members -wan
Node Address Status Type Build Protoc...
Paris Container Day 2017 #ContainerDayFR
Etape 3 - Démo
Nomad
# nomad node-status
ID DC Name Class Drain Status
e9a30fd3 f...
Paris Container Day 2017 #ContainerDayFR
Etape 4 - Updating
Fichier de configuration (Job)
job "pcd2017" {
...
datacenters...
Paris Container Day 2017 #ContainerDayFR
Etape 4 - Démo
Job run
# nomad run -address=http://104.199.99.190:4646 app.nomad
...
Paris Container Day 2017 #ContainerDayFR
Etape 4 - Démo
Job status
nomad status
-address=http://104.199.99.190:4646
pcd201...
#ContainerDayFRParis Container Day 2017
Etape 5 : Création d’une région Nomad
située aux USA et liaison des deux
régions
●...
Paris Container Day 2017 #ContainerDayFR
{
"bootstrap_expect": 3,
"server": true,
"datacenter": "aws-west2",
"data_dir": "...
Paris Container Day 2017 #ContainerDayFR
Etape 5 - Démo
Consul
# consul members -wan
Node Address Status Type Build Protoc...
Paris Container Day 2017 #ContainerDayFR
Etape 5 - Démo
Nomad
# nomad server-join 104.199.75.126
Joined 1 servers successf...
Paris Container Day 2017 #ContainerDayFR
Pour finir...
Sécurité Stockage
Réseau
Nomad, l’orchestration made in Hashicorp
31
#ContainerDayFRParis Container Day 2017
Questions ?
Sources :
https://github.com
/bcadiot/ParisContainerDay_2017
Twitter :...
Prochain SlideShare
Chargement dans…5
×

Nomad, l'orchestration made in Hashicorp - Bastien Cadiot

404 vues

Publié le

Retrouvez la présentation de Bastien Cadiot lors du Paris Container Day

Publié dans : Technologie
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Nomad, l'orchestration made in Hashicorp - Bastien Cadiot

  1. 1. #ContainerDayFR Paris Container Day - 13 juin 2017 Nomad, l’orchestration made in HashiCorp
  2. 2. Paris Container Day 2017 #ContainerDayFR Architecte virtualisation Lead DevOps Cloud Builder … Je suis... Bastien Cadiot (@bcadiot) www.wescale.fr | @YesWeScale HashiCorp User : Terraform, Consul, Vagrant Et … utilisateur de Nomad depuis la version 0.1.0 Nomad, l’orchestration made in Hashicorp 2
  3. 3. #ContainerDayFRParis Container Day 2017 Au commencement... En réalité... Un monde de conteneurs Nomad, l’orchestration made in Hashicorp 3
  4. 4. Paris Container Day 2017 #ContainerDayFR Nos clientsNos clients La démo n’est pas la réalité Nomad, l’orchestration made in Hashicorp 4
  5. 5. Paris Container Day 2017 #ContainerDayFR L’environnement de dev n’est pas la production Nomad, l’orchestration made in Hashicorp 5
  6. 6. Paris Container Day 2017 #ContainerDayFR Comprendre l’architecture n’est pas optionnel Nomad, l’orchestration made in Hashicorp 6
  7. 7. Paris Container Day 2017 #ContainerDayFR Une installation compliquée est rarement un bon signe pour l’avenir Nomad, l’orchestration made in Hashicorp 7
  8. 8. #ContainerDayFRParis Container Day 2017 ● Rationaliser ● Simplifier Pourquoi orchestrer ? Rappel des principes ● Ordonnancer ● Prioriser ● Standardiser ● Densifier ● Piloter ● Sécuriser Nomad, l’orchestration made in Hashicorp 8
  9. 9. Paris Container Day 2017 #ContainerDayFR Trendy - Kubernetes Stable - Mesos Easy - Swarm Quels sont les choix ? Nomad, l’orchestration made in Hashicorp 9
  10. 10. Paris Container Day 2017 #ContainerDayFR Nomad, l’orchestration made in Hashicorp
  11. 11. Paris Container Day 2017 #ContainerDayFR Distribué Flexible Simple ● Multi-datacenter ● Multi-cloud ● Hautement disponible ● Any Runner ● Service et batch ● Isolation ● Service unique ● Configuration simple ● Librairies stables Pourquoi Nomad ? Nomad, l’orchestration made in Hashicorp 11
  12. 12. Paris Container Day 2017 #ContainerDayFR Dessine-moi une infrastructure Nomad Nomad, l’orchestration made in Hashicorp 12
  13. 13. #ContainerDayFRParis Container Day 2017 Etape 1 : Création d’un cluster Nomad ● Instanciation de 3 VM serveurs ● Installation de Consul et Nomad Server ● Instanciation de 3 VM clients ● Installation de Consul Client, Nomad Client, et Docker Etape 2 : Création d’une appli Nomad ● Création du fichier job ● Enregistrement du job sur le cluster Nomad ● Vérification du lancement de l’application Nomad, l’orchestration made in Hashicorp 13 Init & Run Besoin : Déployer une application sur une infra de conteneurs
  14. 14. Paris Container Day 2017 #ContainerDayFR { "bootstrap_expect": 3, "server": true, "datacenter": "gce-west1", "data_dir": "/var/consul", "log_level": "INFO", "enable_syslog": true, "bind_addr": "10.1.2.3", "client_addr": "0.0.0.0", "advertise_addr": "8.7.6.5" } Etape 1 - Initialisation Fichiers de configurations (Serveurs) region = "europe" datacenter = "gce-west1" data_dir = "/var/nomad" bind_addr = "0.0.0.0" advertise { rpc = "8.7.6.5" http = "8.7.6.5" serf = "8.7.6.5" } server { enabled = true bootstrap_expect = 3 } consul { address = "127.0.0.1:8500" } 14 Nomad, l’orchestration made in Hashicorp
  15. 15. Paris Container Day 2017 #ContainerDayFR Etape 1 - Démo Consul # consul members Node Address Status Type Build Protocol DC client-europe-1 192.158.29.140:8301 alive client 0.8.3 2 gce-west1 client-europe-2 130.211.85.225:8301 alive client 0.8.3 2 gce-west1 client-europe-3 35.187.10.89:8301 alive client 0.8.3 2 gce-west1 server-europe-1 104.199.99.190:8301 alive server 0.8.3 2 gce-west1 server-europe-2 104.199.75.126:8301 alive server 0.8.3 2 gce-west1 server-europe-3 146.148.13.182:8301 alive server 0.8.3 2 gce-west1 15 Nomad, l’orchestration made in Hashicorp
  16. 16. Paris Container Day 2017 #ContainerDayFR Etape 1 - Démo Nomad # nomad server-members Name Address Port Status Leader Protocol Build Datacenter Region server-europe-1.europe 104.199.99.190 4648 alive false 2 0.5.6 gce-west1 europe server-europe-2.europe 104.199.75.126 4648 alive true 2 0.5.6 gce-west1 europe server-europe-3.europe 146.148.13.182 4648 alive false 2 0.5.6 gce-west1 europe # nomad node-status ID DC Name Class Drain Status 47e449e7 gce-west1 client-europe-3 <none> false ready e53bb5ae gce-west1 client-europe-1 <none> false ready f3e16921 gce-west1 client-europe-2 <none> false ready 16 Nomad, l’orchestration made in Hashicorp
  17. 17. Paris Container Day 2017 #ContainerDayFR Etape 2 - Running Fichier de configuration (Job) job "pcd2017" { region = "europe" datacenters = ["gce-west1"] type = "service" group "webs" { … } group "database" { … } } group "webs" { count = 2 task "frontend" { driver = "docker" config { image = "bcadiot/app-pcd2017:1.0" } service { port = "http" } resources { cpu = 200 memory = 64 network { mbits = 100 port "http" { static = 80 } } } } } 17 Nomad, l’orchestration made in Hashicorp
  18. 18. Paris Container Day 2017 #ContainerDayFR Etape 2 - Démo Job run # nomad run -address=http://104.199.99.190:4646 app.nomad ==> Monitoring evaluation "db7e8098" Evaluation triggered by job "pcd2017" Allocation "16dc6ad2" created: node "e53bb5ae", group "webs" Allocation "b606c351" created: node "f3e16921", group "database" Allocation "f8c7662f" created: node "f3e16921", group "webs" Evaluation status changed: "pending" -> "complete" ==> Evaluation "db7e8098" finished with status "complete" 18 Nomad, l’orchestration made in Hashicorp
  19. 19. Paris Container Day 2017 #ContainerDayFR Etape 2 - Démo Job status nomad status -address=http://104.199.99.190:4646 pcd2017 ID = pcd2017 Name = pcd2017 Type = service Priority = 50 Datacenters = gce-west1 Status = running Periodic = false Parameterized = false Summary Task Group Queued Starting Running Failed Complete Lost database 0 0 1 0 0 0 webs 0 0 2 0 0 0 Allocations ID Eval ID Node ID Task Group Desired Status Created At 16dc6ad2 db7e8098 e53bb5ae webs run running 06/12/17 23:25:05 CEST b606c351 db7e8098 f3e16921 database run running 06/12/17 23:25:05 CEST f8c7662f db7e8098 f3e16921 webs run running 06/12/17 23:25:05 CEST 19 Nomad, l’orchestration made in Hashicorp
  20. 20. #ContainerDayFRParis Container Day 2017 Etape 3 : Création d’un datacenter France ● Création d’un datacenter chez un cloud provider Français (OVH) ● Instanciation de 3 VM serveurs ● Installation de Consul Server ● Jonction avec les serveurs Europe ● Instanciation de 1 VM client ● Installation de Consul Client, Nomad Besoin : Mise à jour pour un besoin client Etape 4 : Mise à jour d’une appli Nomad ● Modification du fichier job pour ajouter les contraintes ● Mise à jour du job sur le cluster Nomad ● Vérification de l’application Extend & Update 20 Nomad, l’orchestration made in Hashicorp
  21. 21. Paris Container Day 2017 #ContainerDayFR Etape 3 - Extending Fichier de configuration (Nomad Client) region = "europe" datacenter = "france" data_dir = "/var/nomad" bind_addr = "0.0.0.0" advertise { rpc = "5.6.7.8" http = "5.6.7.8" serf = "5.6.7.8" } client { enabled = true node_class = "data" } 21 Nomad, l’orchestration made in Hashicorp
  22. 22. Paris Container Day 2017 #ContainerDayFR Etape 3 - Démo Consul # consul members -wan Node Address Status Type Build Protocol DC server-europe-1.gce-west1 104.199.99.190:8302 alive server 0.8.3 2 gce-west1 server-europe-2.gce-west1 104.199.75.126:8302 alive server 0.8.3 2 gce-west1 server-europe-3.gce-west1 146.148.13.182:8302 alive server 0.8.3 2 gce-west1 server-ovh-france-1.localdomain.france 217.182.82.249:8302 alive server 0.8.3 2 france server-ovh-france-2.localdomain.france 217.182.82.247:8302 alive server 0.8.3 2 france server-ovh-france-3.localdomain.france 217.182.82.243:8302 alive server 0.8.3 2 france 22 Nomad, l’orchestration made in Hashicorp
  23. 23. Paris Container Day 2017 #ContainerDayFR Etape 3 - Démo Nomad # nomad node-status ID DC Name Class Drain Status e9a30fd3 france client-ovh-france-1.localdomain data false ready 47e449e7 gce-west1 client-europe-3 <none> false ready e53bb5ae gce-west1 client-europe-1 <none> false ready f3e16921 gce-west1 client-europe-2 <none> false ready 23 Nomad, l’orchestration made in Hashicorp
  24. 24. Paris Container Day 2017 #ContainerDayFR Etape 4 - Updating Fichier de configuration (Job) job "pcd2017" { ... datacenters = ["gce-west1", "france"] ... group "webs" { … } group "database" { … } } group "database" { count = 1 … constraint { attribute = "${node.class}" value = "data" } constraint { attribute = "${node.datacenter}" value = "france" } ... } 24 Nomad, l’orchestration made in Hashicorp
  25. 25. Paris Container Day 2017 #ContainerDayFR Etape 4 - Démo Job run # nomad run -address=http://104.199.99.190:4646 app.nomad ==> Monitoring evaluation "22cc22e9" Evaluation triggered by job "pcd2017" Allocation "f8c7662f" modified: node "f3e16921", group "webs" Allocation "689de99d" created: node "e9a30fd3", group "database" Allocation "16dc6ad2" modified: node "e53bb5ae", group "webs" Evaluation status changed: "pending" -> "complete" ==> Evaluation "22cc22e9" finished with status "complete" 25 Nomad, l’orchestration made in Hashicorp
  26. 26. Paris Container Day 2017 #ContainerDayFR Etape 4 - Démo Job status nomad status -address=http://104.199.99.190:4646 pcd2017 ID = pcd2017 Name = pcd2017 Type = service Priority = 50 Datacenters = gce-west1,france Status = running Periodic = false Parameterized = false Summary Task Group Queued Starting Running Failed Complete Lost database 0 0 1 0 1 0 webs 0 0 2 0 0 0 Allocations ID Eval ID Node ID Task Group Desired Status Created At 689de99d 22cc22e9 e9a30fd3 database run running 06/12/17 23:32:32 CEST 16dc6ad2 22cc22e9 e53bb5ae webs run running 06/12/17 23:25:05 CEST b606c351 db7e8098 f3e16921 database stop complete 06/12/17 23:25:05 CEST f8c7662f 22cc22e9 f3e16921 webs run running 06/12/17 23:25:05 CEST 26 Nomad, l’orchestration made in Hashicorp
  27. 27. #ContainerDayFRParis Container Day 2017 Etape 5 : Création d’une région Nomad située aux USA et liaison des deux régions ● Création d’un VPC chez un cloud provider Américain (AWS) ● Instanciation de 3 VM serveurs ● Installation de Consul Server, et Nomad Server ● Jonction de la nouvelle région avec la région Europe ● Instanciation de 3 VM clients ● Installation de Consul Client, Nomad Client, et Docker Besoin : Accompagner la montée en puissance Scaling 27 Nomad, l’orchestration made in Hashicorp
  28. 28. Paris Container Day 2017 #ContainerDayFR { "bootstrap_expect": 3, "server": true, "datacenter": "aws-west2", "data_dir": "/var/consul", "log_level": "INFO", "enable_syslog": true, "bind_addr": "35.99.88.77", "client_addr": "0.0.0.0", "advertise_addr": "35.99.88.77" } Etape 5 - Scaling Fichiers de configurations (Serveurs) region = "us" datacenter = "aws-west2" data_dir = "/var/nomad" bind_addr = "0.0.0.0" advertise { rpc = "35.99.88.77" http = "35.99.88.77" serf = "35.99.88.77" } server { enabled = true bootstrap_expect = 3 } consul { address = "127.0.0.1:8500" } 28 Nomad, l’orchestration made in Hashicorp
  29. 29. Paris Container Day 2017 #ContainerDayFR Etape 5 - Démo Consul # consul members -wan Node Address Status Type Build Protocol DC ip-10-59-1-10.aws-west2 54.218.254.37:8302 alive server 0.8.3 2 aws-west2 ip-10-59-1-201.aws-west2 54.191.239.249:8302 alive server 0.8.3 2 aws-west2 ip-10-59-1-217.aws-west2 54.202.180.132:8302 alive server 0.8.3 2 aws-west2 server-europe-1.gce-west1 104.199.99.190:8302 alive server 0.8.3 2 gce-west1 server-europe-2.gce-west1 104.199.75.126:8302 alive server 0.8.3 2 gce-west1 server-europe-3.gce-west1 146.148.13.182:8302 alive server 0.8.3 2 gce-west1 server-ovh-france-1.localdomain.france 217.182.82.249:8302 alive server 0.8.3 2 france server-ovh-france-2.localdomain.france 217.182.82.247:8302 alive server 0.8.3 2 france server-ovh-france-3.localdomain.france 217.182.82.243:8302 alive server 0.8.3 2 france 29 Nomad, l’orchestration made in Hashicorp
  30. 30. Paris Container Day 2017 #ContainerDayFR Etape 5 - Démo Nomad # nomad server-join 104.199.75.126 Joined 1 servers successfully # nomad server-members Name Address Port Status Leader Protocol Build Datacenter Region server-europe-1.europe 104.199.99.190 4648 alive false 2 0.5.6 gce-west1 europe server-europe-2.europe 104.199.75.126 4648 alive true 2 0.5.6 gce-west1 europe server-europe-3.europe 146.148.13.182 4648 alive false 2 0.5.6 gce-west1 europe ip-10-59-1-10.us 54.218.254.37 4648 alive false 2 0.5.6 aws-west2 us ip-10-59-1-201.us 54.191.239.249 4648 alive true 2 0.5.6 aws-west2 us ip-10-59-1-217.us 54.202.180.132 4648 alive false 2 0.5.6 aws-west2 us 30 Nomad, l’orchestration made in Hashicorp
  31. 31. Paris Container Day 2017 #ContainerDayFR Pour finir... Sécurité Stockage Réseau Nomad, l’orchestration made in Hashicorp 31
  32. 32. #ContainerDayFRParis Container Day 2017 Questions ? Sources : https://github.com /bcadiot/ParisContainerDay_2017 Twitter : @bcadiot Merci ! 32 Nomad, l’orchestration made in Hashicorp

×