Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Nomad, l'orchestration made in Hashicorp

Nomad, l'orchestration made in Hashicorp

Présentation faite sur Nomad, l'orchestration made in Hashicorp, au Meetup HashiCorp User Group France du 6 juin 2017.

Bastien Cadiot

June 06, 2017
Tweet

Other Decks in Technology

Transcript

  1. Architecte virtualisation Lead DevOps Cloud Builder … Je suis... Bastien

    Cadiot (@bcadiot) Nomad, l’orchestration made in Hashicorp www.wescale.fr | @YesWeScale HashiCorp User : Terraform, Consul, Vagrant Et … utilisateur de Nomad depuis la version 0.1.0
  2. Nos clients Nos clients Nomad, l’orchestration made in Hashicorp Une

    installation compliquée est rarement un bon signe pour l’avenir
  3. • Rationaliser • Simplifier Pourquoi orchestrer ? Rappel des évidences

    Nomad, l’orchestration made in Hashicorp • Ordonnancer • Prioriser • Standardiser • Densifier • Piloter • Sécuriser
  4. Trendy - Kubernetes Stable - Mesos Easy - Swarm Quels

    sont les choix ? Nomad, l’orchestration made in Hashicorp
  5. 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
  6. 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 Init & Run Besoin : Déployer une application sur une infra de conteneurs Nomad, l’orchestration made in Hashicorp 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
  7. { "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) Nomad, l’orchestration made in Hashicorp 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" }
  8. Etape 2 - Running Fichier de configuration (Job) Nomad, l’orchestration

    made in Hashicorp 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 } } } } }
  9. 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 Extend & Update Besoin : Mise à jour pour un besoin client Nomad, l’orchestration made in Hashicorp 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
  10. Etape 3 - Extending Fichier de configuration (Nomad Client) Nomad,

    l’orchestration made in Hashicorp 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" }
  11. Etape 4 - Updating Fichier de configuration (Job) Nomad, l’orchestration

    made in Hashicorp 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" } ... }
  12. Etape 5 : Création d’une région Nomad situé 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 Scaling Besoin : Accompagner la montée en puissance Nomad, l’orchestration made in Hashicorp
  13. { "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) Nomad, l’orchestration made in Hashicorp 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" }
  14. Nos clients Nos clients Nomad, l’orchestration made in Hashicorp Paris

    Container Day http://paris-container-day.fr/ Twitter : @bcadiot Questions ? Merci !