Pulumi est une plateforme open-source d'Infrastructure as Code (IaC) permettant de gérer des infrastructures cloud en utilisant des langages de programmation généralistes comme Python, TypeScript, Go, et C#. Contrairement à Terraform qui utilise un langage déclaratif (HCL), Pulumi permet une approche plus flexible grâce à une programmation impérative.
Pulumi est une plateforme open-source d'Infrastructure as Code (IaC) permettant de gérer des infrastructures cloud en utilisant des langages de programmation généralistes comme Python, TypeScript, Go, et C#. Contrairement à Terraform qui utilise un langage déclaratif (HCL), Pulumi permet une approche plus flexible grâce à une programmation impérative.
Avant d’installer Pulumi, assurez-vous d’avoir :
curl -fsSL https://get.pulumi.com | sh
Ajoutez Pulumi à votre PATH si nécessaire :
export PATH=$HOME/.pulumi/bin:$PATH
choco install pulumi
pulumi version
pulumi new aws-python
Les options possibles incluent aws-typescript, azure-python, gcp-go, etc.
Un exemple simple de déploiement d’une machine virtuelle sur AWS en Python :
import pulumi import pulumi_aws as aws instance = aws.ec2.Instance("web-server", instance_type="t2.micro", ami="ami-0c55b159cbfafe1f0") pulumi.export("instance_id", instance.id)
Lancer le déploiement :
pulumi up
pulumi preview
pulumi destroy
Pulumi conserve l’état des ressources pour éviter les conflits.
pulumi login --local
pulumi login
pulumi login s3://my-bucket
Pulumi peut être intégré dans des pipelines CI/CD pour automatiser le déploiement.
Créez un fichier .github/workflows/pulumi.yml :
name: Pulumi Deploy on: [push] jobs: deploy: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: Install Pulumi run: curl -fsSL https://get.pulumi.com | sh - name: Deploy infrastructure run: pulumi up --yes
| Fonctionnalité | Pulumi | Terraform |
|---|---|---|
| Langage | Python, TypeScript, Go, C# | HCL (déclaratif) |
| Gestion de l’état | Cloud/local | Cloud/local |
| Approche | Impérative | Déclarative |
| Intégration CI/CD | Facile | Facile |
| Plugins | Riches | Riches |
Pulumi est une solution moderne et flexible pour gérer des infrastructures cloud avec des langages de programmation connus. Il se distingue par son approche impérative et son intégration avec divers fournisseurs cloud et outils DevOps. Sa compatibilité avec plusieurs langages en fait un choix idéal pour les équipes ayant des développeurs déjà formés à ces technologies.