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.

D413a9991cff3187bd2cbaa584d676d1?s=128

Bastien Cadiot

June 06, 2017
Tweet

Transcript

  1. Meetup HashiCorp - 6 juin 2017 Nomad, l’orchestration made in

    HashiCorp Bastien CADIOT
  2. 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
  3. Au commencement... Un monde de conteneurs Nomad, l’orchestration made in

    Hashicorp En réalité...
  4. Nos clients Nos clients Nomad, l’orchestration made in Hashicorp La

    démo n’est pas la réalité
  5. Nos clients Nos clients Nomad, l’orchestration made in Hashicorp L’environnement

    de dev n’est pas la production
  6. Nos clients Nos clients Nomad, l’orchestration made in Hashicorp Comprendre

    l’architecture n’est pas optionnel
  7. Nos clients Nos clients Nomad, l’orchestration made in Hashicorp Une

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

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

    sont les choix ? Nomad, l’orchestration made in Hashicorp
  10. Nos clients Nos clients Nomad, l’orchestration made in Hashicorp

  11. 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
  12. Nos clients Nos clients Nomad, l’orchestration made in Hashicorp Dessine

    moi une infrastructure Nomad
  13. 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
  14. { "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" }
  15. 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 } } } } }
  16. 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
  17. 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" }
  18. 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" } ... }
  19. 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
  20. { "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" }
  21. Pour finir... Sujets connexes Nomad, l’orchestration made in Hashicorp Sécurité

    Stockage Réseau
  22. Nos clients Nos clients Nomad, l’orchestration made in Hashicorp Paris

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