Cloud DevOps: Cours 6
Best practices et Rétrospective
1
Déroulement du cours
2
Déroulement du cours
1. Best practices terraform
a. Remote backend
b. Découpage modulaire
c. Terragrunt
2. Best Practices ansible
a. Ansible Vault
b. Dynamic Inventories
c. Molecule
3. Rétrospective
3
Best practices terraform
Best practice terraform ?
● Remote Backend
● Modules
● Wrapper Terragrunt
Loïc
Rappel : Création d’une infrastructure
Création des PROVIDER
ressources*
terraform apply
[Link]
Création du
fichier d’états
[Link]
* Terraform construit un graphe
pour ordonnancer lui-même les appels d’API
Loïc
Mise à jour de l’infrastructure avec backend local
Récupération
du tfstate
Récupération des
états réels
terraform apply PROVIDER
[Link] [Link]
Application des
différences
Locale
Mise à jour du tfstate
Loïc
Mise à jour de l’infrastructure avec remote backend
Récupération
du tfstate
Récupération des
états réels
terraform apply PROVIDER
[Link] [Link]
Application des
différences
Mise à jour du tfstate
Remote
Loïc
Local Backend vs Remote Backend avec s3
Pros :
● Rapide à mettre en place Pros :
● Bien pour tester (poc)
● Gère le lock du state ● Partager son state terraform
● Versionning activable
Cons :
Cons :
● Partager son état avec son équipe
● Risqué si aucun versionning en local ● s3 ne gère pas nativement le lock
Local state locking
Accès concurrentiel : 2 ème commande apply Information temporaire sur l’utilisateur
Remote state definition
Remote state locking with DynamoDB
Remote state locking with DynamoDB
Démo:
● Lancer un : terraform apply
● Regarder ce que fait DynamoDB
Best practice terraform ?
● Backend
● Modules
● Wrapper Terragrunt
Loïc
Démo module lambda
● [Link]
● Privilégier un repo avec tout vos modules terraform
Les bienfaits des modules Terraform
● Regrouper un ensemble de ressources sous un module
● Permet de faire des abstractions
● Évite le duplicata de code / réutilisation du code via module
○ DRY “Don’t Repeat Yourself “
● X-team, s’échanger les modules entre équipe
Best practice terraform ?
● Backend
● Modules
● Wrapper Terragrunt
Loïc
Un projet open source
[Link]
Terragrunt c’est quoi ?
● Un wrapper de terraform
● Garder ses configurations DRY
● Travaille avec modules terraform
● Permet l’encapsulation de module
● Pleins de fonctionnalités
Terragrunt exemple d’archi
Définition du backend
# [Link]
Comment on définit un module dans terragrunt
# [Link]
Démo Terragrunt
● [Link]
Take away
● Dry modules
● Dry terraform code
● Dry remote states
● Dry cli flags
● Versioned infrastructure
Best practices ansible
Ansible Vault
● Garde les infos sensibles (mot de passes, keys..) chiffrés
● Compris dans ansible
● Facile d’utilisation et de prise en main
● Fichiers chiffrés versionnables sans crainte de diffusion de données sensibles
Inventaires dynamiques
● Automatisation terraform -> ansible
● Grand nombre de providers ([Link]
● Par scripts ou par plugins
● Pas de fichier host à remplir
Dynamic Inventories
Serveur de contrôle Ansible
YAML
[Link] Playbook
Serveurs cibles
Julien
Mixed Inventories
Serveur de contrôle Ansible
[Link]
YAML
Playbook
INI
Inventaire
Serveurs cibles
Julien
Mixed Inventories
INI [Link]
YAML
Inventaire
Playbook
Molecule
Facilitateur de développement de rôles.
Molecule: c’est quoi ?
● Aide au développement et au test des rôles ansible
● De nombreux providers (vagrant, docker, vb..)
● Aide à rendre les rôles compréhensibles et maintenables
● Basé uniquement sur les 2 dernières versions d’ansible
● Projet communautaires ( pas porté par une entreprise)
Molecule
Molecule: comment ça marche ?
Création de Lancement du Lancement des Destruction de
l’infrastructure rôle ansible test d’infra l’infrastructure
Molecule: les principales commandes
● Initialisation de l’architecture du rôle
“my-role” $ molecule init role my-role
$ molecule
● Création de l’infrastructure
create
● Application du/des rôle(s)
$ molecule
converge
● Connexion ssh à la vm / container $ molecule login
● Application des tests testInfra/Goss $ molecule verify
● Destruction de l’infrastructure $ molecule
detroy
Molecule: les principales commandes
$ molecule
create
$ molecule
converge
$ molecule login $ molecule test
$ molecule verify
$ molecule
detroy
Ansible AWX
Démo Molecule
● [Link]
En plus
Take away
● Forte demande sur AWS
● Compétence à la mode
● Profiter du free trial
● Faciliter la mise en production d’une application perso
Loïc 40
Certifications AWS
Loïc 41
Certifications AWS TIPS
● Formation pour Solution architecte :
[Link]
(9.99euro en promo)
● Lire les FAQ
● Bachoter & trouver des tests blancs
Loïc 42
Use case fortnite
24 Juillet 2018 28 Novembre 2018
43
Use case fortnite
44
Rétrospective
Format rétro
● Mood meter : Le niveau de satisfaction de chacun (1à 10)
● Keep drop start:
○ Keep: Ce qui fonctionne bien, ce qui faut garder
○ Drop: Ce qui fonctionne moins bien, ce qui faut enlever
○ ?: Ce qui reste mystérieux
○ Start: Ce qui fonctionnerait bien si... Ce qu’il faudrait commencer