Tema 6: Capstone de DevOps
⏱️ Tiempo estimado: 1 semana
Ahora que aprendiste fundamentos de DevOps, es momento de aplicar estas prácticas a la app Journal API que construiste en la Fase 2 y desplegaste en la Fase 3. En este capstone vas a containerizar la app, automatizar despliegue, manejar infraestructura como código, configurar monitoreo/observabilidad y orquestar contenedores con Kubernetes, demostrando skills DevOps de punta a punta.
📚 Ruta de aprendizaje
Pasos del capstone
-
Containeriza la aplicación
- Escribe un
Dockerfilepara tu app FastAPI. - Construye y corre el contenedor local para verificar.
- Asegúrate de pasar credenciales del LLM por variables de entorno (no dentro de la imagen).
- Pushea tu imagen a un container registry (DockerHub, AWS ECR, Azure ACR o GCP GCR).
- Escribe un
-
Infrastructure as Code
- Usa Terraform (u otra herramienta IaC) para definir y aprovisionar:
- Recursos de cómputo (servicios de contenedores)
- Networking (VPC, subnets, security groups)
- Base de datos (PostgreSQL, como en fases anteriores)
- Guarda tu código IaC en control de versiones.
- Usa Terraform (u otra herramienta IaC) para definir y aprovisionar:
-
Pipeline CI/CD
- Configura un pipeline (GitHub Actions, Azure DevOps o Jenkins) para:
- Construir y testear en cada commit
- Construir y pushear imagen Docker
- Desplegar automáticamente en tu entorno cloud
- Configura un pipeline (GitHub Actions, Azure DevOps o Jenkins) para:
-
Orquestación con Kubernetes
- Escribe manifiestos (
Deployment,Service,ConfigMap/Secret) para tu app y base. - Guarda tu API key del LLM en un
Secrety móntalo como variable de entorno. - Despliega en un cluster local (Minikube/Kind) o administrado (EKS, AKS, GKE).
- Expón tu app con un
Service(NodePort o LoadBalancer). - (Opcional) Usa Helm.
- Escribe manifiestos (
-
Monitoreo y observabilidad
- Despliega Prometheus y Grafana (Docker o manifiestos K8s).
- Instrumenta tu app FastAPI para exponer métricas (por ejemplo,
prometheus_client). - Monitorea llamadas al LLM: latencia, error rate y uso de tokens del endpoint
/analyze. - Configura Prometheus para scrapear el endpoint de métricas.
- Crea un dashboard en Grafana con request count, error rate, latencia y desempeño del LLM.
-
Documentación
- Documenta el setup y despliegue en un
README.md. - Incluye diagramas o screenshots del pipeline, Kubernetes y dashboards.
- Documenta el setup y despliegue en un
Ejemplo de estructura
/journal-app
/infra # Terraform o configs IaC
/k8s # Manifiestos Kubernetes
/app # Código FastAPI
Dockerfile
.github/workflows/ # Configs del pipeline CI/CD
README.md
Testing y validación
- Haz un cambio en código y pushea al repo: verifica que el pipeline construya, testee y despliegue.
- Accede a tu app desplegada y confirma que funcione con la base.
- Entra a Grafana y confirma que ves métricas en vivo.
- Usa
kubectlpara verificar que app y base corren.
Checklist de skills
- Dockerfile y containerización
- Infrastructure as Code (Terraform)
- Configuración de CI/CD
- Manifiestos y despliegue en Kubernetes
- Monitoreo y observabilidad (Prometheus + Grafana)
- Documentación
Próximos pasos
Cuando completes este capstone, habrás demostrado skills DevOps reales llevando una app de código a producción con automatización, infraestructura como código, orquestación y monitoreo. Esto te deja un proyecto fuerte para tu portafolio y para hablar en entrevistas.