Clase 02 — Listas y Secuencias
Listas en bloque
frutas:
- manzana
- pera
- uva
- naranja
puertos:
- 80
- 443
- 8080
Listas en línea (Flow Sequence)
frutas: [manzana, pera, uva, naranja]
puertos: [80, 443, 8080, 3000]
Listas de mapas (muy común en DevOps)
usuarios:
- nombre: Ana
edad: 28
rol: backend
- nombre: Carlos
edad: 35
rol: devops
- nombre: María
edad: 22
rol: frontend
Listas anidadas
matriz:
- [1, 2, 3]
- [4, 5, 6]
- [7, 8, 9]
equipos:
- nombre: Backend
miembros:
- Ana
- Pedro
- nombre: Frontend
miembros:
- María
- Jorge
Ejemplo: Docker Compose — Puertos y Volúmenes
services:
web:
image: nginx:latest
ports:
- "80:80"
- "443:443"
volumes:
- ./html:/usr/share/nginx/html
- ./nginx.conf:/etc/nginx/nginx.conf
environment:
- NODE_ENV=production
- DEBUG=false
Ejemplo: GitHub Actions — Steps
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout código
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: "20"
- name: Instalar dependencias
run: npm install
- name: Ejecutar tests
run: npm test
Ejemplo: Kubernetes — Containers
apiVersion: v1
kind: Pod
metadata:
name: mi-app
spec:
containers:
- name: app
image: mi-app:1.0
ports:
- containerPort: 8080
env:
- name: DB_HOST
value: "postgres"
- name: DB_PORT
value: "5432"
- name: sidecar
image: fluentd:latest
Ejemplo: Inventario de servidores
datacenters:
- nombre: DC-Norte
ubicacion: "Ciudad de México"
servidores:
- hostname: web-01
ip: 10.0.1.10
rol: webserver
tags: [produccion, frontend]
- hostname: db-01
ip: 10.0.1.20
rol: database
tags: [produccion, postgres]
- nombre: DC-Sur
ubicacion: "Buenos Aires"
servidores:
- hostname: web-02
ip: 10.0.2.10
rol: webserver
tags: [staging, frontend]
Ejemplo: Reglas de firewall
firewall:
politica_default: deny
reglas_entrada:
- nombre: "Permitir SSH"
protocolo: tcp
puerto: 22
origen: "10.0.0.0/8"
accion: allow
- nombre: "Permitir HTTP"
protocolo: tcp
puerto: 80
origen: "0.0.0.0/0"
accion: allow
- nombre: "Permitir HTTPS"
protocolo: tcp
puerto: 443
origen: "0.0.0.0/0"
accion: allow