Liste complète et structurée des principaux outils d'Infrastructure as Code (IaC), classés par catégories selon leur approche (déclarative vs impérative), leur usage (provisionnement vs configuration) et leur écosystème (cloud spécifique vs multi-cloud).
Qu'est-ce que l'infrastructure en tant que code ?
Cette approche, qui s’est développée avec la popularité des infrastructures cloud, découle d’un état d’esprit DevOps et applique le même type de contrôle de version et de répétabilité à l’orchestration de l’infrastructure que celui utilisé par les développeurs pour le code source des applications. Une approche IaC prend en charge l’intégration, la livraison et le déploiement continus en créant le même environnement d’infrastructure à chaque fois qu’elle est appliquée.
🧱 1. Outils IaC de Provisioning (création de ressources) – Déclaratif
Ce sont les outils qui décrivent l'état final désiré de l'infrastructure, et qui créent/maintiennent les ressources cloud automatiquement.
Outil | Description | Multi-cloud | Langage |
---|---|---|---|
Terraform | Le plus utilisé pour le provisioning multi-cloud | ✅ | HCL (HashiCorp Configuration Language) |
AWS CloudFormation | Spécifique à AWS, très intégré à ses services | ❌ AWS-only | JSON / YAML |
Azure Resource Manager (ARM) | Outil natif pour Azure | ❌ Azure-only | JSON |
Azure Bicep | Surcouche simplifiée à ARM | ❌ Azure-only | Bicep (DSL) |
Google Cloud Deployment Manager | Outil IaC natif de Google Cloud | ❌ GCP-only | YAML / Jinja / Python |
Pulumi | Utilise des langages de programmation standards (Python, JS, Go…) | ✅ | Python, TypeScript, Go, etc. |
Crossplane | Infrastructure Kubernetes-native, s’intègre avec Terraform | ✅ | YAML (Custom Resources) |
Otomi | Surcouche automatisée sur Kubernetes et cloud providers | ✅ | YAML |
CDK (Cloud Development Kit) | Outils IaC basés sur des langages de programmation | Partiellement | TypeScript, Python, Java, etc. |
- AWS CDK | Pour AWS uniquement | ❌ | TypeScript, Python |
- CDK for Terraform (CDKTF) | Version CDK pour Terraform | ✅ | TS, Python |
⚙️ 2. Outils de Configuration Management (gestion des serveurs) – Déclaratif / Impératif
Ces outils sont souvent utilisés après le provisioning pour configurer les serveurs (paquets, services, utilisateurs…).
Outil | Description | Mode | Langage |
---|---|---|---|
Ansible | Très populaire, agentless, simple à apprendre | Impératif + Déclaratif | YAML |
Puppet | Déclaratif, architecture master-agent, robuste pour grandes infra | Déclaratif | DSL (Ruby-like) |
Chef | Plus impératif, approche orientée objets | Impératif | Ruby |
SaltStack | Très rapide, orienté événements | Mixte | YAML (Jinja) |
CFEngine | Un des plus anciens, très léger et sécurisé | Déclaratif | DSL (proche C) |
Rudder | Basé sur CFEngine, orienté conformité et audits | Déclaratif | Web GUI / DSL |
🧬 3. Outils Kubernetes IaC (Kubernetes-native IaC)
Ces outils se concentrent sur la définition et la gestion de ressources Kubernetes (clusters, workloads, policies…).
Outil | Description | Niveau |
---|---|---|
Helm | Gestionnaire de packages Kubernetes (charts) | Déploiement applicatif |
Kustomize | Gestion de manifestes Kubernetes sans templating | Configuration |
Crossplane | Provisioning cloud via des CRDs Kubernetes | Infra & cloud |
Terraform avec provider Kubernetes | Déploie objets K8s via Terraform | Infrastructure |
ArgoCD | GitOps pour Kubernetes | Déploiement CD |
FluxCD | GitOps alternatif à ArgoCD | Déploiement CD |
🧪 4. Outils de test, lint et sécurité pour IaC
Ils sont utilisés pour auditer, valider ou sécuriser les configurations IaC.
Outil | Fonction | Compatible avec |
---|---|---|
TFLint | Analyse statique des fichiers Terraform | Terraform |
Checkov | Sécurité et conformité des IaC | Terraform, CloudFormation, Kubernetes |
Terraform Compliance | Vérification des règles de conformité | Terraform |
Conftest (OPA) | Tests de policies via Open Policy Agent | YAML, JSON, K8s, Terraform |
Inspec | Tests de conformité (par Chef) | Serveurs, cloud |
OPA (Open Policy Agent) | Moteur de politique pour Kubernetes, Terraform, etc. | Tous formats |
💡 5. Outils d’abstraction ou d’orchestration IaC
Ils combinent plusieurs outils ou gèrent des workflows IaC plus complexes.
Outil | Description |
---|---|
Spacelift | Plateforme CI/CD spécialisée pour Terraform, Pulumi, CloudFormation |
Env0 | Gestion des environnements Terraform, Pulumi en équipe |
Terragrunt | Wrapper Terraform pour gestion de code modulaire et DRY |
Atlantis | Terraform GitOps (exécute plan/apply via PRs Git) |
Earthly | Orchestration de pipelines CI/CD utilisant IaC |
Rekit / Scalr / Gruntwork | Plateformes commerciales d’orchestration Terraform |
📦 6. Outils hybrides, émergents ou spécialisés
Outil | Description |
---|---|
NixOps / NixOS | Déploiement reproductible avec le langage fonctionnel Nix |
Kapitan | Templating avancé pour Kubernetes avec Jinja et Jsonnet |
Jsonnet | Langage JSON extensible utilisé dans des IaC avancés |
AWS Proton | Gestion des environnements microservices, opinionné |
Juju (Canonical) | Outil d’orchestration déclaratif (Linux / cloud-native) |
M0 (by HashiCorp) | Terraform-as-a-Service (en Beta) |
📚 Résumé rapide par usage
Besoin | Recommandé |
---|---|
Provisioning multi-cloud | Terraform, Pulumi |
Configuration des serveurs | Ansible, Puppet, Chef |
Déploiement Kubernetes | Helm, Kustomize, ArgoCD |
GitOps IaC | FluxCD, Atlantis, ArgoCD |
Testing & sécurité IaC | Checkov, TFLint, Conftest |
Outils natifs cloud | CloudFormation (AWS), Bicep (Azure), Deployment Manager (GCP) |
Aucun commentaire:
Enregistrer un commentaire