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

La galaxie Hashicorp - Devoxx FR 2018, par Bastien Cadiot, Nicolas Diez et Aurélien Maury

WeScale
April 26, 2018

La galaxie Hashicorp - Devoxx FR 2018, par Bastien Cadiot, Nicolas Diez et Aurélien Maury

Dans le monde des outils associés à la mouvance DevOps, ceux qui sortent des forges de la société HashiCorp sont de plus en plus populaires. Conçus pour être complémentaires, ils permettent de faciliter de nombreuses étapes dans la mise en place d’une infrastructure résiliente et scalable. Nous allons ici vous présenter ces outils, ainsi que la façon de les utiliser ensemble. La petite famille HashiCorp vous facilitera la vie, du Dev au Run.

WeScale

April 26, 2018
Tweet

More Decks by WeScale

Other Decks in Technology

Transcript

  1. #DevoxxFR 5 • Hashicorp • Vagrant • Packer • Terraform

    • Vault • Consul • Nomad Teasing C’est l’université sur quoi déjà ?
  2. 6

  3. Hashicorp Qui sont-ils ? Quel est leur réseau ? La

    Galaxie HashiCorp - La société • Né en : ◦ 2012 de Mitchell Hashimoto et Armon Dadgar • Basé à : ◦ San Francisco • Avec pour objectif de : ◦ Révolutionner la gestion des datacenters, du développement au déploiement en passant par la maintenance 7
  4. Hashicorp Le Tao La Galaxie HashiCorp - La société •

    Workflows, not technologies • Simple, modular, composable • Communicating sequential processes • Immutability 8 8
  5. Hashicorp Le Tao La Galaxie HashiCorp - La société •

    Versioning through codification • Automation through codification • Resilient systems • Pragmatism 9 9
  6. Hashicorp Vision DevSecOps La Galaxie HashiCorp - La société •

    Dev : construisent et maintiennent les applications • Security : cadrent la diffusion d’information et protègent des dérives • Operators : provisionnent de l’infrastructure, du Dev à la Prod 10 10
  7. 14

  8. Provision Quel est le besoin ? La Galaxie HashiCorp -

    Vagrant • Créer des environnements de dev iso-prods • Avoir des environnements de travail portables • Avoir des environnements identiques 15 15
  9. Vagrant Fonctionnalités La Galaxie HashiCorp - Vagrant • Librairie d’images

    de base : ◦ Disponibles sur app.vagrantup.com ◦ OS ◦ Applicatifs 16 16
  10. Vagrant Fonctionnalités La Galaxie HashiCorp - Vagrant • Plugins :

    ◦ gestion du provider ◦ configuration de la vm ◦ exécution de commandes 17 17
  11. Vagrant Fonctionnalités La Galaxie HashiCorp - Vagrant • Support d’un

    grand nombre de providers : ◦ VirtualBox ◦ VMware ◦ Hyper-V ◦ Docker ◦ Custom 18 18
  12. Vagrant Fonctionnalités La Galaxie HashiCorp - Vagrant • Provisioning par

    l’outil de son choix : ◦ Script Shell ◦ Ansible ◦ Puppet ◦ CfEngine ◦ File 19 19
  13. Vagrant Fonctionnalités La Galaxie HashiCorp - Vagrant • Réseau :

    ◦ public ◦ privé ◦ possibilité d’avoir de multiples interfaces réseaux ◦ forward de port node.vm.network "private_network", ip: "10.0.0.11" node.vm.network "forwarded_port", guest: 443, host: 4430 • Plusieurs machines virtuelles par Vagrantfile 20 20
  14. Vagrant Fonctionnalités La Galaxie HashiCorp - Vagrant • Langage de

    description d’une machine virtuelle (1..3).each do |i| Vagrant.configure("2") do |config| config.vm.define "node-#{i}" do |node| node.vm.box = "centos/7" node.vm.network "private_network", ip: "10.0.0.1#{i}" node.vm.provider "virtualbox" do |vb| vb.cpus = "2" vb.memory = "1024" vb.name = "Nomad Server-#{i}" end end end end 21 21
  15. Vagrant Fonctionnalités La Galaxie HashiCorp - Vagrant • Création de

    nouvelles images : ◦ Export d’une VM ◦ Contient : ▪ le disque ▪ des métadonnées ▪ Vagrantfile vagrant package --base my-virtual-machine 22 22
  16. Vagrant Workflow La Galaxie HashiCorp - Vagrant • vagrant init

    • édition Vagrantfile • vagrant up • vagrant destroy 23 23
  17. Vagrant Qui sont les utilisateurs ? La Galaxie HashiCorp -

    Vagrant • Validation de patches de sécurité • Environnement d’audit • Isolation des dépendances • Environnements de dev • Fournir un environnement iso-prod • Tests rapides hors prod 25 25
  18. 27

  19. Provision Quel est le besoin ? La Galaxie HashiCorp -

    Packer • Automatiser la création d’images de machines • Unifier pour différents Cloud Services Providers • Préprovisionner son infrastructure 28 28
  20. Packer Fonctionnalités La Galaxie HashiCorp - Packer Composition d’un build

    d’image : • Builders • Provisionners • Post-processors 29 29
  21. Packer Fonctionnalités La Galaxie HashiCorp - Packer • Création d’image

    machine sur différents cloud providers : ◦ AWS ◦ GCP ◦ Azure ◦ DigitalOcean ◦ Scaleway ◦ ... 30 30
  22. Packer Fonctionnalités La Galaxie HashiCorp - Packer • Description de

    build en JSON { "builders": [ { "type": "amazon-ebs", "region": "eu-west-3", "instance_type": "m5.large", "ssh_username": "centos", "ami_description" : "The HashiCorp Galaxy" } ], "provisioners": [ { "type": "shell", "script": "{{ seed.sh }}" } } 31 31
  23. Packer Fonctionnalités La Galaxie HashiCorp - Packer • Provisioning facilité

    : ◦ Ansible ◦ Salt Masterless ◦ Shell ◦ Puppet ◦ ... 32 32
  24. Packer Fonctionnalités La Galaxie HashiCorp - Packer • Export des

    images en VagrantBox "post-processors": [ { "type": "vagrant-s3", "region": "us-east-1", "bucket": "hashicorp-galaxy", "manifest": "vagrant/json/{{ user `box_name` }}.json", "box_name": "{{ user `box_name` }}", "box_dir": "vagrant/boxes", "version": "{{ user `version` }}" } ] 33 33
  25. Packer Fonctionnalités La Galaxie HashiCorp - Packer • Validation de

    la syntaxe avant construction $ packer validate packer_aws Failed to parse template: Error parsing JSON: invalid character ',' looking for beginning of value 34 34
  26. Packer Fonctionnalités La Galaxie HashiCorp - Packer • Builds parallèles

    : ◦ Multiples builders ◦ Images identiques "builders": [ { "type": "amazon-ebs", ... }, { "type": "googlecompute", ... } ] 35 35
  27. Packer Workflow La Galaxie HashiCorp - Vagrant • édition template

    • packer validate <template> • packer build <template> 36 36
  28. • Environnement de la dev à la prod iso •

    S’intègre dans un cycle de déploiement continu (CD) • Accélérer le déploiement applicatif Packer Qui sont les utilisateurs ? La Galaxie HashiCorp - Packer • Application unifiée des correctifs de sécurité • Respect des politiques de sécurité 38 38
  29. 41

  30. Terraform Quel est le besoin ? La Galaxie HashiCorp -

    Terraform • Automatiser le déploiement d’infrastructure (Infra-as-Code) • Avoir un workflow unique quel que soit le CSP • Avoir des déploiements reproductibles 42 42
  31. Terraform Fonctionnalités La Galaxie HashiCorp - Terraform Infrastructure as Code

    • Contrôle des modifications • Collaboration • Reproductibilité 43 43
  32. La Galaxie HashiCorp - Terraform Multi provider • Infrastructure as-a-Service

    • Software as-a-Service • Platform as-a-Service Terraform Fonctionnalités 44 44
  33. La Galaxie HashiCorp - Terraform Gestion d’état • Déploiements déclaratifs

    • Gestion des deltas • Centralisation de la cohérence Terraform Fonctionnalités 45 45
  34. La Galaxie HashiCorp - Terraform • terraform init • terraform

    plan • terraform apply • terraform destroy Terraform Workflow 46 46
  35. Intégration Qui sont les utilisateurs ? La Galaxie HashiCorp -

    Terraform 49 49 • Ajoute la dimension sécurité aux architectures • Garantit la conformité de l'infrastructure déployée • Variabilisation • Modularisation • Craftsmanship • Compose l’architecture à l’aide des modules écrits en équipe • Intègre l’infrastructure dans le même workflow que le code applicatif
  36. 51

  37. Secure Quel est le besoin ? La Galaxie HashiCorp -

    Vault • Centraliser et unifier la gestion des secrets • Gérer des baux d’accès aux secrets • Assurer chiffrement et rotation de clé pour le stockage des secrets 52 52
  38. Vault Fonctionnalités La Galaxie HashiCorp - Vault Secrets engines •

    AWS • Google Cloud • Cassandra • MongoDB • MSSQL • MySQL • PostgreSQL • Oracle 53 53
  39. Vault Fonctionnalités La Galaxie HashiCorp - Vault Secrets engines •

    RabbitMQ • PKI • SSH OTP & signature de certificats • Transit • Consul • Nomad 54 54
  40. Vault Fonctionnalités La Galaxie HashiCorp - Vault Méthodes d’authentification •

    LDAP • AWS, Google, Azure • Kubernetes • GitHub • Certificat TLS 55 55
  41. Vault Fonctionnalités La Galaxie HashiCorp - Vault • Rituels de

    descellement • Gestion de bail et renouvellement • Révocation 57 57
  42. Intégration Qui sont les utilisateurs ? La Galaxie HashiCorp -

    Vault • Accès aux secrets pour la configuration des daemons • Chiffrement/déchiffrement à la demande • Accès aux secrets pour les applications • Définition des règles d’accès • Opérations du cluster • Révocation sur intrusion 59 59
  43. 62

  44. Connect Quel est le besoin ? La Galaxie HashiCorp -

    Consul • Lier tous les services entre eux • Détecter les pannes • Partager des données clé-valeur • Rester agnostique du CSP 63 63
  45. Interface REST & DNS • Stockage et accès aux données

    clé-valeur • DNS : découverte de services • ACL pour assurer le cloisonnement des accès Consul Fonctionnalités La Galaxie HashiCorp - Consul 64 64
  46. Consul Fonctionnalités La Galaxie HashiCorp - Consul Distribué et résilient

    • Architecture Master-Agent • Notion de LAN et WAN • Redondance des données 65 65
  47. Consul Fonctionnalités La Galaxie HashiCorp - Consul Dynamique • Health-check

    des services • Watchers sur modifications d’une vue de données • Lancement de commande à distance 66 66
  48. Consul Sécurité La Galaxie HashiCorp - Consul • ACL basée

    sur une association token-policy • Tokens de type Master ou Agent • Droits limités à : read, write ou deny • Chiffrement symétrique inter-node et TLS sur l’API REST 68 68
  49. { "service": { "name": "redis", "tags": ["primary"], "address": "", "port":

    8000, "enable_tag_override": false, "checks": [ { "script": "/usr/local/bin/check_redis.py", "interval": "10s" } ] } } • Déclaration par fichier de configuration d’un agent ou appel REST Service discovery La Galaxie HashiCorp - Consul 69 69
  50. Utilisateurs La Galaxie HashiCorp - Consul • Health checks •

    Service listing • Cartographie des services • Variables de pilotage des configurations • DNS Service Discovery • Variables de pilotage des configurations • Gestion des ACL • Cartographie des services 71 71
  51. 73

  52. Run Quel est le besoin ? La Galaxie HashiCorp -

    Nomad • Déployer les environnements et applications • Orchestrer les déploiements • Scaler géographiquement et selon la charge 74 74
  53. Densité • Bin-pack natif • Empreinte mémoire faible • Multi-techno

    Nomad Fonctionnalités La Galaxie HashiCorp - Nomad Workload • Services • Système • Batch 75 75
  54. Déploiement • Rolling upgrade • Blue / Green • Canary

    release Nomad Fonctionnalités La Galaxie HashiCorp - Nomad Géodistribution • Multi-datacenter • Multi-cloud • Multi-arch 76 76
  55. Intégration Qui sont les utilisateurs ? La Galaxie HashiCorp -

    Nomad • Déclare les pré-requis • Compose l’architecture • Écrit les tests de vie • Choisit les ressources • Sélectionne le placement • Gère le déploiement • Séquence les mises à jour • Garantit le scaling • Provisionne les ressources consommables • Maintient la vie du cluster 79 79
  56. Take away S’il ne devait vous rester que ceci La

    Galaxie HashiCorp - Nomad 82 82 • Simples à installer et à opérer • Puissants et composables • Approche multi-cloud native