Pourquoi peut-on créer des dizaines de serveurs cloud en quelques minutes avec un script, dans la limite des quotas de son compte, alors qu'il faudrait des heures pour faire la même chose manuellement ? La réponse tient en deux mots : API-first. Tous les fournisseurs cloud modernes (AWS, Azure, GCP, Outscale, OVHcloud, Scaleway) sont construits autour d'une API HTTP qui expose chaque opération possible. La console web n'est qu'une interface graphique qui appelle cette API en arrière-plan. Cette page explique le principe, les équivalents chez chaque fournisseur, le principe de l'authentification d'un script, les outils qui l'exploitent (CLI, SDK, Terraform), et défend une opinion claire : tout construire à la main dans la console, sans jamais passer au code, est une dette technique que vous accumulez sans la voir.
Ce que vous allez apprendre
Section intitulée « Ce que vous allez apprendre »- Comprendre le principe API-first et pourquoi c'est la base du cloud moderne
- Voir les équivalents par fournisseur (AWS, Azure, GCP, Outscale)
- Pourquoi un script ne s'authentifie pas comme un humain, et où se choisit le mécanisme adapté
- Identifier les outils qui exploitent les API : CLI, SDK, Terraform
- Mesurer les avantages concrets de l'automatisation vs l'approche console
Prérequis : connaître les bases du cloud computing. Si vous débutez, commencez par Définition et promesses du cloud.
1. Le cloud, c'est du logiciel qui pilote du matériel
Section intitulée « 1. Le cloud, c'est du logiciel qui pilote du matériel »L'infrastructure traditionnelle, des humains partout
Section intitulée « L'infrastructure traditionnelle, des humains partout »Imaginez que vous devez commander un nouveau serveur dans un datacenter classique. Vous remplissez un bon de commande, un technicien vérifie le stock, installe physiquement le serveur dans un rack, branche les câbles réseau et électriques, un autre configure le système d'exploitation, quelqu'un vous envoie un courriel avec les accès. Délai typique : quelques jours à plusieurs semaines. Pour dix serveurs identiques, le temps est multiplié par dix : rien n'est mutualisé.
Le cloud, des programmes qui font le travail
Section intitulée « Le cloud, des programmes qui font le travail »Dans le cloud, ce processus est entièrement automatisé, et le délai tombe à quelques dizaines de secondes. Quand vous cliquez sur « Créer une VM » dans la console web (Cockpit Outscale, AWS Console, Portal Azure, Cloud Console GCP), voici ce qui se passe réellement :
- Votre clic envoie une requête HTTP à l'API du fournisseur.
- L'API vérifie vos droits (avez-vous le droit de créer une VM dans ce projet ?).
- L'API orchestre la création : allocation de ressources, configuration réseau, démarrage.
- L'API vous renvoie une réponse avec les informations de votre VM.
Le point crucial : la console web n'est qu'une interface graphique qui appelle l'API. Vous obtiendriez exactement le même résultat avec un script, un outil en ligne de commande ou du code applicatif. La console ne détient aucun pouvoir que vous n'ayez pas.
2. Le principe API-first : tout est pilotable par code
Section intitulée « 2. Le principe API-first : tout est pilotable par code »Qu'est-ce qu'une API ?
Section intitulée « Qu'est-ce qu'une API ? »Une API (Application Programming Interface, Interface de Programmation d'Application) est un contrat entre deux logiciels. Elle définit quelles actions sont possibles (créer une VM, lister les volumes, supprimer un réseau), quels paramètres chaque action accepte (taille du disque, région, nom), quel format utiliser pour communiquer (généralement du JSON sur HTTPS), et comment s'authentifier.
Concrètement, une API cloud permet d'écrire un programme qui crée, modifie ou supprime des ressources d'infrastructure, exactement comme si un humain cliquait dans la console, mais de façon reproductible.
Pourquoi « API-first » ?
Section intitulée « Pourquoi « API-first » ? »Le terme API-first signifie que l'API n'est pas un ajout tardif, mais la fondation sur laquelle tout le reste est construit.
| Composant | Rôle | Utilise l'API ? |
|---|---|---|
| API | Cœur du système, expose toutes les opérations | C'est l'API elle-même |
| Console web | Interface graphique pour humains | Appelle l'API en arrière-plan |
CLI (aws, az, gcloud, octl) | Ligne de commande pour scripts | Appelle l'API |
| SDK (Python, Go, Java, JavaScript…) | Bibliothèques pour développeurs | Appelle l'API |
| Terraform | Infrastructure as Code | Appelle l'API via le provider |
3. Équivalents API et CLI par fournisseur
Section intitulée « 3. Équivalents API et CLI par fournisseur »Le principe API-first est partagé, mais chaque fournisseur expose son API et ses outils selon ses propres conventions de nommage. Ce tableau sert de table de correspondance entre les écosystèmes.
| Fournisseur | API officielle | CLI principale | SDK Python | Provider Terraform |
|---|---|---|---|---|
| AWS | AWS API (REST/JSON) | aws-cli v2 | boto3 | hashicorp/aws |
| Azure | Azure Resource Manager API | az (Azure CLI) | azure-mgmt-* | hashicorp/azurerm |
| GCP | Google Cloud APIs | gcloud | google-cloud-* | hashicorp/google |
| Outscale | OAPI (OUTSCALE API) | octl | osc-sdk-python | outscale/outscale |
| OVHcloud | OVHcloud API | ovh-cli (community) | python-ovh | ovh/ovh |
| Scaleway | Scaleway API | scw (Scaleway CLI) | scaleway-sdk-python | scaleway/scaleway |
Tous ces outils reposent sur les mêmes quatre familles d'opérations : créer (Create*), lire ou lister (Read* chez Outscale, Describe* chez AWS, list ou get ailleurs), modifier (Update*, Modify*) et supprimer (Delete*). Les noms exacts varient pourtant d'un fournisseur à l'autre, comme le montrent les commandes de liste ci-dessous. C'est ce qui rend la compétence transférable sans être mécanique : maîtriser un outil raccourcit l'apprentissage des suivants, à condition de relire la documentation de chaque commande.
Exemple, Lister les VMs avec différents CLI
Section intitulée « Exemple, Lister les VMs avec différents CLI »# AWSaws ec2 describe-instances
# Azureaz vm list
# GCPgcloud compute instances list
# Outscaleoctl iaas api ReadVms
# Scalewayscw instance server listLa logique reste identique : seuls les noms de commandes et de paramètres changent. Pour le détail d'une CLI ou d'un SDK donné, la documentation officielle du fournisseur reste la référence.
4. Comment un script prouve-t-il son identité à l'API ?
Section intitulée « 4. Comment un script prouve-t-il son identité à l'API ? »Un script ne peut pas saisir un mot de passe : il lui faut un mécanisme d'authentification adapté à celui qui appelle l'API. La console s'ouvre avec un courriel, un mot de passe et une authentification multifacteur, ce qu'un programme ne sait pas faire. Le réflexe de créer une clé d'accès et de la coller dans un fichier fonctionne, mais c'est le mécanisme le plus risqué, à réserver au dernier recours : une identité attachée à la ressource (le fournisseur reconnaît la machine ou la fonction qui exécute le script, sans clé à stocker) ou une fédération OIDC (le pipeline prouve son identité au fournisseur, qui délivre un jeton temporaire) évitent d'avoir un secret de longue durée à protéger.
Le choix selon l'appelant, la comparaison des mécanismes de signature et les règles à tenir quand un secret statique reste inévitable sont traités dans la leçon Identifiants temporaires et accès en ligne de commande, du module consacré aux identités. Ici, retenez seulement que les CLI, les SDK et Terraform présentés ci-dessous s'authentifient tous par l'un de ces mécanismes, et qu'aucun ne vous demande de calculer vous-même une signature.
5. Les outils qui exploitent l'API
Section intitulée « 5. Les outils qui exploitent l'API »L'API est puissante, mais envoyer des requêtes HTTP signées manuellement serait fastidieux. Les outils qui suivent simplifient l'utilisation, classés par niveau d'abstraction croissant.
Console web, pour explorer
Section intitulée « Console web, pour explorer »Idéale pour découvrir les services et explorer son infrastructure, effectuer des opérations ponctuelles, visualiser l'état de ses ressources.
Limitations : impossible d'automatiser, pas de reproductibilité, risque d'erreurs manuelles, pas de versioning. La console est un excellent outil d'apprentissage, un mauvais outil de production.
CLI, pour scripter
Section intitulée « CLI, pour scripter »Les CLI (aws, az, gcloud, octl, scw sont des CLI officielles ; celle d'OVHcloud est communautaire) permettent d'enchaîner des commandes dans des scripts shell, de les versionner dans Git et de les rejouer. C'est le premier pas vers l'automatisation, et le moins coûteux.
Exemple, créer un volume de 50 Go.
-
Sur AWS :
Fenêtre de terminal aws ec2 create-volume \--availability-zone eu-west-3a \--size 50 \--volume-type gp3 -
Sur Outscale :
Fenêtre de terminal octl iaas api CreateVolume \--SubregionName eu-west-2a \--Size 50 \--VolumeType gp2 -
Sur GCP :
Fenêtre de terminal gcloud compute disks create my-disk \--zone europe-west9-a \--size 50GB \--type pd-balanced
SDK, pour intégrer dans des applications
Section intitulée « SDK, pour intégrer dans des applications »Pour intégrer le cloud dans vos applications, des SDK (Software Development Kits) existent pour la plupart des langages : Python, Go, Java, JavaScript, .NET, Ruby. Usages typiques : automatisation complexe, fonctions FaaS (Function as a Service, du code exécuté à la demande sans serveur à gérer), microservices déclenchant des actions cloud, outils internes.
Exemple Python avec boto3 (AWS) :
import boto3
ec2 = boto3.client('ec2', region_name='eu-west-3')result = ec2.describe_instances()for reservation in result['Reservations']: for instance in reservation['Instances']: print(f"VM: {instance['InstanceId']} - État: {instance['State']['Name']}")Terraform, pour l'Infrastructure as Code
Section intitulée « Terraform, pour l'Infrastructure as Code »Terraform est l'outil de référence pour déclarer son infrastructure sous forme de code. Tous les fournisseurs cloud modernes maintiennent un provider Terraform officiel.
Exemple Terraform, déclarer une VM AWS (la contrainte ~> 6.0 accepte toute version 6.x ; c'est le fichier de verrouillage .terraform.lock.hcl, écrit par terraform init, qui fixe la version exacte installée) :
terraform { required_providers { aws = { source = "hashicorp/aws" version = "~> 6.0" } }}
provider "aws" { region = "eu-west-3"}
resource "aws_instance" "web_server" { ami = "ami-0123456789abcdef0" instance_type = "t3.micro"
tags = { Name = "web-server-prod" Environment = "production" ManagedBy = "terraform" }}Pour appliquer cette configuration : terraform init télécharge le provider, terraform plan prévisualise les changements, terraform apply crée réellement la VM.
6. Pourquoi l'API-first change tout
Section intitulée « 6. Pourquoi l'API-first change tout »Comparaison, manuel vs automatisé
Section intitulée « Comparaison, manuel vs automatisé »Cette comparaison met face à face l'approche console et l'approche API sur les mêmes critères. Le schéma résume l'écart, puis le tableau le détaille ligne par ligne, de la reproductibilité à l'audit des changements.
| Critère | Approche console (manuelle) | Approche API (automatisée) |
|---|---|---|
| Créer 1 serveur | 5 minutes de clics | 30 secondes |
| Créer 100 serveurs | ~8 heures (si vous tenez) | quelques minutes, dans la limite des quotas du compte |
| Reproduire un environnement | Impossible exactement | Identique pour les ressources décrites (hors données et secrets) |
| Documenter l'infrastructure | Screenshots, wiki obsolète | Le code est la documentation |
| Revenir en arrière | Impossible ou très risqué | git revert + terraform apply |
| Audit des changements | « Qui a fait ça ?! » | Historique Git complet |
| Erreurs humaines | Fréquentes (fatigue, distraction) | Réduites (le code est relu avant d'être appliqué) |
Les bénéfices concrets
Section intitulée « Les bénéfices concrets »Reproductibilité. Un script ou une configuration Terraform produit les mêmes ressources à chaque exécution. Fini le « ça marchait sur mon environnement de test », dev, staging et production se construisent à partir du même code : seules les différences voulues (taille des machines, données, secrets) les distinguent.
Scalabilité. Besoin de 50 serveurs pour un pic de charge ? Une boucle dans le code. Besoin de revenir à 5 serveurs ? Une autre exécution.
Versionnement. Votre infrastructure est du code. Elle vit dans Git, avec des commits, des branches, des pull requests, des reviews, exactement comme du code applicatif.
Collaboration. Plusieurs personnes travaillent sur l'infrastructure en parallèle, mergent leurs changements, partagent une source de vérité unique.
Disaster Recovery. Si l'infrastructure est détruite, terraform apply recrée les ressources décrites (réseaux, machines, services), pas les données : bases, volumes et objets exigent des sauvegardes testées à part, et les secrets doivent être réinjectés depuis un gestionnaire de secrets. Essayez de reconstruire les ressources avec des screenshots de console.
7. Console et code : à quoi sert chacun
Section intitulée « 7. Console et code : à quoi sert chacun »La console web et le code d'infrastructure ne s'opposent pas : ils répondent à des besoins différents, l'exploration d'un côté, la reproductibilité de l'autre. Savoir quand employer l'un ou l'autre évite la dette technique d'une infrastructure construite à la main, puis impossible à reconstruire à l'identique.
À quoi sert la console. Elle est l'outil d'apprentissage par excellence : voir une ressource se créer, comprendre les options exposées, explorer un service inconnu. Elle est aussi pratique pour le diagnostic : visualiser l'état réel d'une ressource, comparer avec ce qui était attendu, lire un message d'erreur dans son contexte. Pour ces deux usages, la console est plus rapide que le code.
À quoi sert le code d'infrastructure. Dès qu'une opération doit être rejouée, reproduite sur plusieurs environnements, ou documentée pour l'équipe, le code prend le relais. Un script CLI, un manifeste Terraform ou un appel SDK garantissent la reproductibilité, la traçabilité dans Git, et la possibilité de revue par un pair.
Le piège du « j'automatiserai ensuite ». Une infrastructure construite à la console pendant des mois, puis convertie en code, demande un travail de rétro-ingénierie ressource par ressource (état actuel, dépendances, paramètres implicites). Ce travail prend généralement plus de temps que le démarrage direct en code, parce qu'il faut reconstituer ce qui a été cliqué sans trace.
Le piège du state drift. Quand une partie de l'infrastructure est gérée en code (Terraform) et qu'une correction est faite à la console, le code et la réalité divergent. Au prochain terraform apply, l'outil voudra annuler cette correction ou créer un conflit. Cette divergence, appelée state drift, est l'un des bugs les plus difficiles à diagnostiquer.
Règle pratique : si une opération sera faite plus d'une fois, elle se fait en code. Si elle est faite une seule fois pour explorer ou diagnostiquer, la console est acceptable. Cette frontière simple évite la majorité des dérives.
8. Les pièges courants
Section intitulée « 8. Les pièges courants »Piège 1, « Je commence par la console, j'automatiserai ensuite ». Ensuite n'arrive jamais, et vous vous retrouvez avec une infrastructure impossible à reproduire. Mitigation : écrivez dès le premier serveur une commande CLI rejouable, puis un fichier Terraform quand l'environnement se stabilise.
Piège 2, « Je stocke ma clé d'accès dans le code ». Mieux vaut ne pas avoir de clé du tout quand une identité attachée ou une fédération OIDC est possible. Si une clé reste inévitable, elle ne doit jamais être dans le code : elle se retrouve dans Git, est partagée involontairement, et quelqu'un compromet votre infrastructure. Mitigation : gestionnaire de secrets, jamais dans le code source.
Piège 3, « J'ai une seule clé d'accès pour tout ». Si cette clé est compromise, l'attaquant a accès à tout. Mitigation : une clé dédiée par environnement, par outil et par pipeline CI/CD, avec moindre privilège.
Piège 4, « L'API, c'est compliqué, je reste sur la console ». Vous passez à côté de l'essentiel de la puissance du cloud. Mitigation : commencez petit. Une commande CLI pour lister vos VMs. Puis un script qui crée une ressource. La montée en compétence est progressive.
À retenir
Section intitulée « À retenir »- API-first = tout est pilotable par code. La console n'est qu'une interface graphique qui appelle l'API en arrière-plan.
- Les 6 fournisseurs cités (AWS, Azure, GCP, Outscale, OVHcloud, Scaleway) exposent tous une API HTTP et des CLI (officielles, sauf celle d'OVHcloud qui est communautaire) ; le mécanisme d'authentification varie selon l'offre (clés, identité attachée, fédération) et se choisit dans la leçon consacrée aux identifiants temporaires.
- Un script s'authentifie par identité attachée ou fédération OIDC par défaut ; la clé d'accès statique n'est que le dernier recours et ne doit jamais être en clair dans le code.
- Plusieurs outils exploitent l'API : CLI pour scripter, SDK pour intégrer, Terraform pour l'Infrastructure as Code.
- L'automatisation apporte reproductibilité, scalabilité, versionnement, audit, et réduit les erreurs manuelles.
- La console pour apprendre, l'API pour construire, la frontière est : si l'opération est faite plus d'une fois, elle se fait en code.
Contrôle de connaissances
Section intitulée « Contrôle de connaissances »Vérifiez que l'essentiel de ce guide est acquis. Les questions portent uniquement sur ce qui vient d'être expliqué ici.
Contrôle de connaissances
Validez vos connaissances avec ce quiz interactif
Informations
- Le chronomètre démarre au clic sur Démarrer
- Questions à choix multiples, vrai/faux et réponses courtes
- Vous pouvez naviguer entre les questions
- Les résultats détaillés sont affichés à la fin
Lance le quiz et démarre le chronomètre
Vérification
(0/0)Score par domaine
Un domaine regroupe plusieurs guides et reçoit plusieurs questions : son score est plus fiable qu'un score par thème, qui porte souvent sur une seule question.
Bilan
Points forts
Aucun sujet réussi à 80 % sur au moins deux questions pour l’instant.
Points faibles
Aucun sujet sous le seuil de réussite.
À faire ensuite
Des indices pour retenter votre chance ?
Continuer le cours : Automation et orchestration cloud : concepts, différence et patterns
Nouveau quiz complet avec des questions aléatoires
Retravailler uniquement les questions ratées
Retour à la liste des certifications