Introdução ao YAML
YAML (Ain’t Markup Language) é uma linguagem de serialização de dados legível por humanos, comumente usada para configurações de aplicativos, linguagens de programação e na área de DevOps.
YAML, que significa “YAML Ain’t Markup Language”, é uma linguagem de serialização de dados que foi proposta por Clark Evans em 2001. Ele teve a ideia quando estava trabalhando em um aplicativo de faturamento online, onde precisava de uma maneira de representar dados que poderiam ser facilmente lidos e compreendidos por humanos, mas que também fossem fáceis de serem interpretados por máquinas.
Clark Evans então compartilhou suas ideias com Brian Ingerson e Oren Ben-Kiki, que juntos deram forma à linguagem YAML. O objetivo principal era que o YAML fosse fácil de ler e escrever por humanos, mas também que tivesse suporte a uma variedade de estruturas de dados usadas pelas principais linguagens de programação.
Os autores pretendiam que o YAML fosse utilizado para a troca de dados entre linguagens com tipagem dinâmica, para armazenamento de objetos e para configuração de dados. Em vez de usar delimitadores, como em outras linguagens de serialização de dados, o YAML usa identação para denotar estruturas aninhadas.
Desde então, o YAML tem sido amplamente adotado por muitas aplicações, incluindo como linguagem padrão para escrever arquivos de configuração em aplicativos e ferramentas como Ansible, Kubernetes, Docker, entre outras. A facilidade de uso, combinada com sua versatilidade, fez do YAML uma escolha popular para muitos desenvolvedores de software.
Estrutura do YAML
Um arquivo YAML consiste em uma série de pares chave-valor. Ele utiliza a identação (espaços) para denotar estruturas de dados complexas. Veja abaixo um exemplo simples de um arquivo YAML:
nome: João
idade: 30
cidade: São Paulo
Este é um exemplo simples de um documento YAML, com uma lista de pares de chave-valor. Este documento poderia ser interpretado como um objeto em muitas linguagens de programação. Por exemplo, em Python, o documento acima seria semelhante a este objeto:
{
"nome": "João",
"idade": 30,
"cidade": "São Paulo"
}
YAML e Kubernetes
Kubernetes utiliza arquivos YAML para representar as configurações de seus objetos, como Pods, Deployments, Services, etc. Esses arquivos YAML definem o estado desejado para esses objetos dentro de um cluster Kubernetes.
Por exemplo, um Pod em Kubernetes pode ser representado pelo seguinte arquivo YAML:
apiVersion: v1
kind: Pod
metadata:
name: meu-pod
labels:
app: meu-app
spec:
containers:
- name: meu-container
image: meu-imagem:1.0
ports:
- containerPort: 8080
Neste exemplo, apiVersion
e kind
são usados para identificar o tipo de recurso que estamos criando. O campo metadata
contém metadados sobre o recurso, incluindo seu nome e rótulos. O campo spec
é onde especificamos as características desejadas para o recurso.
Para criar um objeto Kubernetes a partir de um arquivo YAML, usamos a ferramenta de linha de comando kubectl
com o comando apply
:
kubectl apply -f meu-pod.yaml
Isso instruirá o Kubernetes a criar um Pod conforme especificado no arquivo meu-pod.yaml
.
YAML é uma ferramenta poderosa e versátil para representar dados complexos de uma maneira legível por humanos. No contexto do Kubernetes, ele permite que os desenvolvedores e operadores definam o estado desejado de seu aplicativo e sua infraestrutura de maneira declarativa. Compreender a sintaxe e a estrutura do YAML é fundamental para trabalhar efetivamente com o Kubernetes e muitas outras ferramentas modernas de DevOps.
Sou um profissional na área de Tecnologia da informação, especializado em monitoramento de ambientes, Sysadmin e na cultura DevOps. Possuo certificações de Segurança, AWS e Zabbix.