Clase 03 — Mapas y Diccionarios
Mapas básicos
persona:
nombre: RoxsRoss
edad: 30
rol: DevOps Engineer
activo: true
Mapas en línea
coordenadas: {lat: -34.6037, lon: -58.3816}
dimensiones: {ancho: 100, alto: 50}
Mapas anidados
empresa:
nombre: TechCorp
fundada: 2020
direccion:
calle: "Av. Principal 123"
ciudad: "Buenos Aires"
pais: Argentina
contacto:
email: info@techcorp.com
redes:
twitter: "@techcorp"
github: "techcorp"
Ejemplo: Docker Compose completo
version: "3.8"
services:
frontend:
build:
context: ./frontend
dockerfile: Dockerfile
ports:
- "3000:3000"
environment:
REACT_APP_API_URL: http://backend:8080
depends_on:
- backend
backend:
build: ./backend
ports:
- "8080:8080"
environment:
DB_HOST: postgres
DB_PORT: "5432"
DB_PASS: ${DB_PASSWORD}
depends_on:
postgres:
condition: service_healthy
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8080/health"]
interval: 30s
timeout: 10s
retries: 3
postgres:
image: postgres:16-alpine
environment:
POSTGRES_DB: app_db
POSTGRES_USER: admin
POSTGRES_PASSWORD: ${DB_PASSWORD}
volumes:
- postgres_data:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U admin"]
interval: 10s
retries: 5
volumes:
postgres_data:
networks:
app-network:
driver: bridge
Ejemplo: Kubernetes Deployment
apiVersion: apps/v1
kind: Deployment
metadata:
name: mi-api
namespace: produccion
labels:
app: mi-api
spec:
replicas: 3
selector:
matchLabels:
app: mi-api
template:
metadata:
labels:
app: mi-api
spec:
containers:
- name: api
image: registry.example.com/mi-api:2.0
ports:
- containerPort: 8080
resources:
requests:
cpu: "250m"
memory: "256Mi"
limits:
cpu: "500m"
memory: "512Mi"
env:
- name: DB_HOST
valueFrom:
configMapKeyRef:
name: db-config
key: host
- name: DB_PASSWORD
valueFrom:
secretKeyRef:
name: db-secret
key: password
livenessProbe:
httpGet:
path: /health
port: 8080
initialDelaySeconds: 15
periodSeconds: 20
Ejemplo: Ansible Playbook
---
- name: Configurar servidor web
hosts: webservers
become: true
vars:
app_port: 8080
app_user: deploy
tasks:
- name: Instalar paquetes
apt:
name: [nginx, python3, python3-pip]
state: present
- name: Crear usuario
user:
name: "{{ app_user }}"
shell: /bin/bash
- name: Copiar config Nginx
template:
src: templates/nginx.conf.j2
dest: /etc/nginx/sites-available/mi-app
notify: Reiniciar Nginx
handlers:
- name: Reiniciar Nginx
service:
name: nginx
state: restarted