YAML
Anthony Bañon Arias

Anthony Bañon Arias @anthonybanion

About: Systems Analyst & Backend Developer, passionate about programming, software engineering, and database design. Skilled in building robust, scalable applications.

Location:
Argentina
Joined:
Apr 6, 2025

YAML

Publish Date: Apr 8
1 0

📘 Guía esencial de YAML: qué es, para qué sirve y cómo usarlo


🧠 ¿Qué es YAML?

YAML significa YAML Ain’t Markup Language (YAML No es un Lenguaje de Marcado).
Es un lenguaje de serialización de datos, enfocado en ser fácil de leer y escribir por humanos.

🔍 Se usa para describir estructuras de datos como listas, diccionarios, configuraciones, sin necesidad de escribir código real.

🎯 ¿Para qué sirve?

YAML se utiliza para escribir archivos de configuración en muchos entornos de desarrollo moderno. Es ideal cuando necesitás describir:

  • Servicios
  • Variables
  • Dependencias
  • Flujos de trabajo automatizados

🛠️ ¿Dónde se aplica?

YAML está en todas partes del ecosistema DevOps y desarrollo moderno:

Herramienta / Sistema Uso de YAML
Docker Compose Definición de contenedores (docker-compose.yml)
GitHub Actions Workflows de CI/CD (.github/workflows/)
Kubernetes Config de pods, servicios y despliegues
Ansible Playbooks para automatización de tareas
CircleCI / Travis Configuración de pipelines de CI
Spring Boot (Java) Configuración de aplicaciones (application.yml)
Jekyll / Hugo Sitios estáticos, metadatos de posts

🔤 YAML vs JSON: ¿Por qué YAML?

📦 JSON:

{
  "nombre": "Anthony",
  "edad": 30,
  "lenguajes": ["PHP", "JavaScript", "Python"]
}
Enter fullscreen mode Exit fullscreen mode

📘 YAML:

nombre: Anthony
edad: 30
lenguajes:
  - PHP
  - JavaScript
  - Python
Enter fullscreen mode Exit fullscreen mode

✅ Ventajas de YAML sobre JSON:

  • Más limpio y fácil de leer
  • Soporta comentarios
  • Menos caracteres (sin llaves, comillas ni corchetes)
  • Ideal para edición manual

🧩 Sintaxis básica de YAML

Elemento Ejemplo Notas
Clave-valor nombre: Anthony Siempre con : y un espacio
Lista - PHP Usa - con sangría
Objeto anidado Usa sangrías con espacios (no tabs) ⚠️ Muy sensible a espacios
Comentario # Esto es un comentario Ignorado al procesar el archivo
Booleanos activo: true o false En minúsculas
Nulos dato: null o dato: o dato: ~ Tres formas válidas

🧪 Ejemplos prácticos

🔹 Lista de tecnologías

tecnologias:
  - Docker
  - Apache
  - PHP
  - Node.js
Enter fullscreen mode Exit fullscreen mode

🔹 Objeto anidado

usuario:
  nombre: Anthony
  datos:
    edad: 30
    ciudad: Córdoba
Enter fullscreen mode Exit fullscreen mode

🔹 Variables de entorno (como en Docker Compose)

environment:
  MYSQL_ROOT_PASSWORD: 1234
  MYSQL_DATABASE: tienda
Enter fullscreen mode Exit fullscreen mode

🚀 Caso real: Docker Compose

version: '3.8'
services:
  web:
    image: php:8.2-apache
    ports:
      - "8080:80"
    volumes:
      - ./app:/var/www/html
  db:
    image: mariadb
    environment:
      MYSQL_ROOT_PASSWORD: rootpass
Enter fullscreen mode Exit fullscreen mode

👉 Este archivo define dos contenedores (web y db) que se comunican entre sí. Es YAML puro.

🔁 Equivalente en JSON:

{
  "version": "3.8",
  "services": {
    "web": {
      "image": "php:8.2-apache",
      "ports": [
        "8080:80"
      ],
      "volumes": [
        "./app:/var/www/html"
      ]
    },
    "db": {
      "image": "mariadb",
      "environment": {
        "MYSQL_ROOT_PASSWORD": "rootpass"
      }
    }
  }
}
Enter fullscreen mode Exit fullscreen mode

🧠 Observaciones:

YAML JSON
Usa sangrías Usa llaves {} y corchetes []
Soporta comentarios # ❌ JSON no permite comentarios
Más legible para humanos Más estructurado para máquinas
Ideal para configuración manual Ideal para comunicación API

⚠️ Errores comunes en YAML

  • ❌ Usar tabulaciones
  • ✔️ Siempre usá espacios para sangrar
  • ❌ No dejar espacio luego de :
  • ✔️ Siempre: clave: valor
  • ❌ Mezclar listas y objetos sin estructura clara

✅ Buenas prácticas

  • Usá 2 espacios para sangrías
  • Validá tu YAML en https://yamlvalidator.com
  • Comentá cuando haga falta (# comentario)
  • No uses comillas a menos que sea necesario

🧠 Conclusión

YAML es el idioma de las configuraciones modernas. Aprenderlo bien te va a ayudar a dominar herramientas de DevOps, backend y automatización como Docker, GitHub Actions, Kubernetes y más.
📌 Es como hablar el idioma que entienden tus herramientas.

Comments 0 total

    Add comment