Il YAML (acronimo ricorsivo per YAML Ain’t Markup Language) è un linguaggio di serializzazione dei dati progettato per essere facilmente leggibile e scrivibile dagli esseri umani. Si basa sull’uso dell’identazione (spazi bianchi) per definire la struttura gerarchica, eliminando la necessità di parentesi graffe o tag di chiusura.
Le caratteristiche ingegneristiche del YAML sono:
- Leggibilità: la sintassi è estremamente pulita e simile a un elenco puntato o a una serie di coppie chiave-valore.
- Tipi di dati nativi: supporta nativamente liste, dizionari (mappe) e scalari (stringhe, numeri, booleani).
- Commenti: a differenza del JSON, il YAML permette l’inserimento di commenti tramite il carattere
#, facilitando la documentazione dei file di configurazione.
Ingegneristicamente, il YAML è diventato lo standard de facto nel mondo DevOps e del Cloud Computing: è utilizzato per configurare pipeline di CI/CD (GitHub Actions, GitLab CI), per definire le risorse in Kubernetes, per l’automazione con Ansible e per i file di configurazione di innumerevoli framework moderni. La sua semplicità riduce gli errori di configurazione, sebbene richieda attenzione maniacale agli spazi di indentazione.