Vous êtes sur la page 1sur 46

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

main.tf

Création du
fichier d’états

tfstate.json
* 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

main.tf tfstate.json
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

main.tf tfstate.json
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
● https://gitlab.com/lcaminale/infrastructure-modules/-/tree/demo-esme-modules/lambda
● 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

https://www.gruntwork.io/how-it-works/
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
# terragrunt.hcl
Comment on définit un module dans terragrunt
# terragrunt.hcl
Démo Terragrunt

● https://gitlab.com/esme5/terraform-practice
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 (https://github.com/ansible/ansible/tree/devel/contrib/inventory)
● Par scripts ou par plugins
● Pas de fichier host à remplir
Dynamic Inventories

Serveur de contrôle Ansible

YAML

ec2.py Playbook

Serveurs cibles
Julien
Mixed Inventories

Serveur de contrôle Ansible


ec2.py
YAML

Playbook
INI

Inventaire

Serveurs cibles
Julien
Mixed Inventories

INI ec2.py

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

● https://gitlab.com/esme5/demo-ansible
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 :


https://www.udemy.com/course/aws-certified-solutions-architect-associate/
(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

Vous aimerez peut-être aussi