Estado: En preparación | Serie: py2xx | Nivel: Avanzado
Este es un curso avanzado. El proyecto final construye un pipeline de CI/CD de nivel productivo con seguridad de cadena de suministro, identidad federada y despliegue blue/green en GCP.
- Requiere experiencia previa en desarrollo backend, contenedores y uso fluido de Git.
- Los tramos de Terraform (NB13–17) se cubren desde fundamentos, pero se aplican en configuraciones de producción real.
- Los tramos de IAM y OIDC (NB16, NB19–20) implican conceptos como Workload Identity Federation, auto-impersonación de service accounts e identity tokens efímeros.
- Para perfiles senior con experiencia en GCP, el curso añade profundidad en DevSecOps y seguridad de cadena de suministro.
Este repositorio contiene el material del curso orientado a integración y entrega continua segura con GitHub Actions, Google Cloud Platform, Linux e infraestructura como código.
La estructura sigue el patrón operativo usado en cursos basados en notebooks: el recorrido principal vive en notebooks numeradas en la raíz, mientras que las aplicaciones e infraestructura auxiliar pueden integrarse como submódulos Git separados.
Construir un pipeline funcional de CI/CD que cubra:
- calidad y pruebas automatizadas;
- construcción de contenedores;
- seguridad de cadena de suministro;
- aprovisionamiento con Terraform;
- despliegue seguro en GCP y Linux.
Programador (principalmente Python, pero no exclusivamente) con experiencia en desarrollo back-end o full-stack.
Se asume:
- fluidez con Python;
- uso cotidiano de git: commits, branches, merges y pull requests.
Se asume haber completado cd441 o tener experiencia equivalente en CI/CD con GitHub Actions. No se asume conocimiento previo de DevSecOps, IaC ni seguridad de cadena de suministro, pero sí de pipelines básicos.
Este curso es la continuación natural de la siguiente ruta del catálogo Cloudevel:
| Curso | Contenido | Nivel |
|---|---|---|
| cd101 — GNU/Linux desde la línea de comandos | Shell, permisos, procesos, systemd, redes, SSH, seguridad básica | Introductorio |
| cd411 — Introducción a Git | Control de versiones, ramas, resolución de conflictos, integración con GitHub | Introductorio |
| cd421 — GitHub Avanzado | Administración de repos y organizaciones, GitHub Actions, entornos, secretos, gh CLI |
Intermedio |
| cd501 — Gestión de contenedores con Docker | Imágenes, contenedores, redes, volúmenes, registros privados, Docker Compose | Intermedio |
| gcp101 — Google Cloud Platform | IAM, Compute Engine, Cloud Run, Cloud SQL, Secret Manager, redes, operaciones | Intermedio |
| cd441 — CI/CD con GitHub Actions | Pipelines reales, runners, artefactos, despliegue en GCP y Linux | Intermedio |
| py271 — CI/CD Seguro | Endurecimiento, DevSecOps, IaC, OIDC, cadena de suministro | Avanzado |
El prerrequisito directo es cd441. Los cursos cd101, cd501 y gcp101 proveen el contexto operativo que cd441 y este curso asumen conocido.
Nota sobre Terraform: los notebooks 13 al 17 introducen Terraform desde fundamentos. No existe aún un curso dedicado de Terraform en la serie; ese material se cubre aquí por primera vez.
El curso está empaquetado como taller de 16 horas en 8 sesiones de 2 horas. La distribución recomendada es:
- Sesión 1: CI/CD y riesgos actuales, flujos de trabajo y plataforma GitHub.
- Sesión 2: Marco DevSecOps, introducción a GitHub Actions y sintaxis YAML.
- Sesión 3: Matriz de versiones y entornos; linters, tipado y pruebas automatizadas.
- Sesión 4: SBOM, provenance y seguridad de dependencias e imágenes.
- Sesión 5: Build de contenedores en Actions; Terraform: fundamentos y estado remoto.
- Sesión 6: Terraform para Artifact Registry, Cloud Run y Compute Engine.
- Sesión 7: IAM, OIDC y autenticación sin llaves; pipelines de infraestructura y despliegue seguro en Linux.
- Sesión 8: Observabilidad, smoke tests, rollback y proyecto final end to end.
El tramo central del curso integra, de forma progresiva, estos conceptos:
- marco operativo de DevSecOps y entornos;
- diseño de workflows en GitHub Actions;
- ejecución con matriz de versiones y promoción por entornos;
- quality gates con linters, tipado y pruebas automatizadas;
- seguridad de cadena de suministro: SBOM, provenance, attestations y escaneo;
- identidad federada con OIDC para evitar llaves estáticas;
- build de contenedores con criterio de runners hosted y self-hosted endurecidos.
El curso trabaja con tres entornos operativos bien diferenciados:
- dev: máquina del desarrollador con SQLite para iteración rápida local.
- test: servidor Linux hosteado con PostgreSQL para validar despliegue remoto y operación realista.
- prod: GCP con Cloud SQL para PostgreSQL y despliegue en Cloud Run v2.
La promoción mantiene el mismo artefacto entre entornos para conservar trazabilidad y evitar reconstrucciones por ambiente.
py271/
├── .devcontainer/
├── apps/
├── data/
├── demos/
├── img/
├── infra/
├── 01_*.ipynb ... 20_*.ipynb
├── INSTRUCTOR_GUIDE.md
├── README.md
└── requirements.txt
apps/api-github-actions-demo: aplicación base del curso — API Flask con cinco workflows de CI/CD.infra/terraform-py271: infraestructura del curso con Terraform — Cloud Run, Cloud SQL, Artifact Registry y WIF/OIDC.
- 01 - Introducción a CI/CD y riesgos actuales
- 02 - Flujos de trabajo con Git
- 03 - GitHub: plataforma y funcionalidades de seguridad
- 04 - DevSecOps, workflows de repositorio y entornos
- 05 - Introducción a CI/CD y GitHub Actions
- 06 - YAML y sintaxis de workflows
- 07 - Matriz de versiones y entornos
- 08 - Linters, tipado y gestores de paquetes y entornos
- 09 - Pruebas automatizadas con pytest
- 10 - SBOM, provenance y attestations
- 11 - Seguridad de dependencias e imágenes
- 12 - Build de contenedores en Actions
- 13 - Terraform: fundamentos y estado remoto
- 14 - Terraform para Artifact Registry y Cloud Run
- 15 - Terraform para Compute Engine y red
- 16 - IAM, OIDC y autenticación sin llaves
- 17 - Pipelines de infraestructura: plan y apply
- 18 - Despliegue seguro en Linux
- 19 - Observabilidad, smoke tests y rollback
- 20 - Proyecto final end to end
- 21 - Criterios y trade-offs de endurecimiento
demos/ contiene ejercicios ejecutables de apoyo a sesiones específicas:
| Carpeta | Sesión | Contenido |
|---|---|---|
demos/06/ |
Sesión 2 — YAML y sintaxis de workflows | blank.yml: plantilla mínima de workflow para completar en clase |
demos/08/ |
Sesión 3 — Linters, tipado y pruebas | calculadora.py con anotaciones de tipo + quality gates: ruff, mypy y pytest con parametrize; incluye reto de extensión |
Cada subcarpeta tiene su propio README.md con instrucciones de ejecución y reto.
git clone <repo>
cd py271
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
jupyter labSi después agregas submódulos:
git submodule update --init --recursiveSi el repositorio de infra no está disponible, usa .gitmodules.example como plantilla con URLs de marcador de posición:
cp .gitmodules.example .gitmodules- Las notebooks de la raíz son el material troncal del curso.
04_devsecops_workflows_de_repos_y_entornos.ipynbfija el lenguaje y los criterios operativos del curso.- GitHub Actions opera como plano de control principal del pipeline.
- El uso de self-hosted runners se reserva para necesidades técnicas justificadas (red privada, segmentación o cumplimiento).
- Google Cloud Build se presenta como alternativa avanzada, no como ruta principal.
- GitHub Container Registry (GHCR) funciona como registro principal de artefactos e imágenes del curso.
- La ruta serverless del curso se enfoca en Google Cloud Run v2 para cargas contenerizadas orientadas a eventos.
- Aunque Kubernetes tambien ejecuta cargas contenerizadas, en este curso no se adopta como ruta base porque el caso de estudio no responde a una arquitectura de microservicios que justifique su complejidad operativa.
- El modelo de entornos oficial es: dev en local con SQLite, test en Linux con PostgreSQL y prod en GCP con Cloud SQL PostgreSQL.
- El despliegue en Linux contempla una ruta explícita de despliegue remoto por SSH hacia servidores endurecidos.
- La observabilidad se trata como parte del pipeline de entrega: logs, métricas, alertas, smoke tests y rollback.
apps/contiene aplicaciones auxiliares como submódulos Git.infra/contiene repositorios de IaC como submódulos Git o material de apoyo.ejercicios_resueltos/sirve para práctica posterior a clase.
Selección troncal para el curso (formato APA):
- Forsgren, N., Humble, J., & Kim, G. (2018). Accelerate: The science of lean software and DevOps: Building and scaling high performing technology organizations. IT Revolution Press.
- Humble, J., & Farley, D. (2010). Continuous delivery: Reliable software releases through build, test, and deployment automation. Addison-Wesley.
- National Institute of Standards and Technology. (2022). Secure software development framework (SSDF) version 1.1: Recommendations for mitigating the risk of software vulnerabilities (NIST Special Publication 800-218). https://doi.org/10.6028/NIST.SP.800-218
- OWASP Foundation. (n.d.). OWASP cheat sheet series. Retrieved May 30, 2026, from https://cheatsheetseries.owasp.org/
- SLSA. (n.d.). SLSA specification v1.0. Retrieved May 30, 2026, from https://slsa.dev/spec/v1.0/
- Sigstore. (n.d.). Sigstore documentation. Retrieved May 30, 2026, from https://docs.sigstore.dev/
- HashiCorp. (n.d.). Terraform documentation. Retrieved May 30, 2026, from https://developer.hashicorp.com/terraform/docs
- Google Cloud. (n.d.). Cloud architecture framework. Retrieved May 30, 2026, from https://cloud.google.com/architecture/framework
- Beyer, B., Jones, C., Petoff, J., & Murphy, N. R. (Eds.). (2017). The site reliability workbook: Practical ways to implement SRE. O'Reilly Media. https://sre.google/workbook/table-of-contents/
Para la bibliografía detallada por notebook (01-21), consulta 21_criterios_y_tradeoffs_de_endurecimiento.ipynb.