2-10 Cadre de travail pour déployer du code applicatif et d'infrastructure
Objectifs
- Savoir utiliser Terraform pour des pratiques CI/CD
Intégrer Terraform dans le CI/CD
Il n'existe pas de solution universelle pour le CI/CD et Terraform, tant le choix d'outils et de plateformes est vaste.
Les grandes lignes de plateformes actuelles sont :
- Classique : les outils agnostiques ex: Jenkins
- Moderne : les SASS ex: Github
- Futur les outils GitOps ex: ArgoCD
L'aspect essentiel que vous aurez à gérer sur toutes ces plateformes est le passage de secrets.
Une fois encore, chaque solution a ses choix qui ont leurs avantages et leurs inconvénients.
- Indépendants ex: Vault
- Services managés Ex: Aws Secrets Manager
- Orchestrateur Ex: Kubernetes
Les bonnes pratiques
Utiliser des labels ou des tags sur les ressources générées
Chercher dans une masse de ressources est une perte de temps à terme.
Obligez les équipes à fournir des indicateurs :
- Environnement
- Équipe
- Application
- Entreprise
- Service / Équipe
- Région / Zone
- Environnment
- Nom / App / Service
provider "aws" {
region = "us-east-2"
# Tags to apply to all AWS resources by default
default_tags {
tags = {
Owner = "team-foo"
ManagedBy = "Terraform"
}
}
}
Rappel des objectifs
- Savoir utiliser Terraform pour des pratiques CI/CD