Comprendre YAML
Apres avoir configure des dizaines de pipelines CI/CD et clusters Kubernetes, YAML est devenu mon format de configuration prefere. "YAML Ain't Markup Language" privilegie la lisibilite humaine : pas de guillemets superfluels, pas d'accolades, l'indentation definit la structure. Cela le rend ideal pour les fichiers que les humains editent frequemment.
YAML est particulierement adapte aux configurations DevOps ou la clarte est essentielle. Un fichier Docker Compose ou un manifest Kubernetes bien formate se lit comme de la prose technique, rendant les erreurs plus faciles a detecter et la maintenance plus agreable.
Ou YAML est utilise
DevOps et Cloud
Docker Compose, Kubernetes manifests, Ansible playbooks, Terraform (HCL similaire), AWS CloudFormation. L'ecosysteme DevOps est domine par YAML.
CI/CD Pipelines
GitHub Actions, GitLab CI, CircleCI, Travis CI, Azure DevOps. Les workflows de deploiement sont presque toujours en YAML.
Configuration Apps
Spring Boot (application.yml), Ruby on Rails, Home Assistant, mkdocs, Hugo. Beaucoup de frameworks modernes adoptent YAML.
Data Serialization
Alternative lisible a JSON pour les APIs et l'echange de donnees quand la lisibilite prime sur la compacite.
Syntaxe YAML essentielle
Voici les elements de syntaxe que vous utiliserez quotidiennement :
- Paires cle-valeur : Ecrivez "cle: valeur" avec un espace apres les deux-points
- Listes : Tiret suivi d'espace "- item" pour chaque element
- Objets imbriques : Indentation de 2 espaces par niveau de profondeur
- Commentaires : Signe diese "# commentaire" jusqu'a la fin de ligne
- Multi-documents : Separes par trois tirets "---" sur une ligne
- Texte multilignes : Pipe "|" preserve les sauts de ligne, chevron ">" les fusionne
- Ancres et alias : "&anchor" pour definir, "*anchor" pour reutiliser une valeur
YAML vs JSON : comparaison detaillee
- Sur-ensemble : YAML est un sur-ensemble de JSON, tout JSON valide est du YAML valide
- Commentaires : YAML supporte les commentaires, JSON non
- Lisibilite : YAML est plus lisible mais potentiellement plus verbeux pour les donnees complexes
- Parsing : JSON a un parsing strict et universel, YAML a plus de variantes
- Usage recommande : JSON pour les APIs, YAML pour la configuration editable par humains
Erreurs courantes a eviter
Les pieges les plus frequents en YAML :
- Tabs vs espaces : YAML interdit les tabulations pour l'indentation, utilisez uniquement des espaces
- Indentation incoherente : Tous les elements du meme niveau doivent etre alignes exactement
- Espace apres deux-points : "cle: valeur" est correct, "cle:valeur" ne l'est pas
- Caracteres speciaux : Les valeurs contenant ":" ou "#" doivent etre entre guillemets
- Booleens implicites : "yes", "no", "true", "false" sont interpretes comme booleens