GitHub Actions CI/CD
Plataforma de integración y despliegue continuo nativa de GitHub. Permite definir workflows en YAML que se disparan ante eventos del repositorio (push, pull request, release, schedule).
Uso Automatización de pruebas, linting y despliegues para pipelines ETL y servicios. Validación de PRs antes de fusionar a main y publicación de imágenes Docker en registries.
- Workflows declarativos en YAML
- Matriz de versiones (Python 3.10, 3.11, 3.12)
- Secrets cifrados para credenciales AWS
- Caché de dependencias para builds rápidos
AWS CodePipeline CD nativo AWS
Servicio de entrega continua de AWS que orquesta etapas de build, test y deploy integrándose con CodeBuild, CodeDeploy, Lambda, ECS y otros servicios del ecosistema.
Uso Despliegue de funciones Lambda y servicios ECS en producción siguiendo flujos auditables. Aprobaciones manuales para entornos productivos en sistemas financieros.
- Etapas Source → Build → Test → Deploy
- Integración con CodeBuild y CodeDeploy
- Aprobaciones manuales para entornos productivos
- Notificaciones vía SNS y CloudWatch Events
Terraform Infra como código
Herramienta de infraestructura como código (IaC) que permite definir recursos cloud de forma declarativa y versionada. Soporta múltiples providers (AWS, GCP, Azure) con un mismo lenguaje.
Uso Aprovisionamiento de buckets S3, instancias EC2, roles IAM y RDS para entornos de desarrollo, staging y producción de forma reproducible y auditable.
- plan/apply para previsualizar cambios
- Estado remoto en S3 con bloqueo en DynamoDB
- Módulos reutilizables entre entornos
- Integración con GitHub Actions para CD
pytest Testing
Framework de pruebas para Python con sintaxis simple, fixtures potentes y un ecosistema amplio de plugins. Estándar de facto para testing en proyectos Python modernos.
Uso Pruebas unitarias y de integración para pipelines ETL, operadores de Airflow y APIs REST. Se ejecutan automáticamente en cada PR como gate de calidad antes del merge.
- Fixtures parametrizadas y reutilizables
- pytest-cov para reportes de cobertura
- Marcadores para separar unit, integration y e2e
- Mocks con monkeypatch y unittest.mock