# Resumen de competencias PEI2 - 2025-2026 ## Resumen de Contenidos Este documento resume las competencias que los estudiantes deben haber adquirido durante las sesiones S9 a S12 para el examen PEI2. Las competencias se organizan por sesión, incluyendo tanto habilidades prácticas como contenidos técnicos específicos. ### S9: Platform as a Service (PaaS), Cloud Run Functions y Pub/Sub https://aso-git.github.io/S9/index.html Materiales en: S9/ #### Competencias Adquiridas: - **Fundamentos de PaaS**: Comprensión del modelo Platform as a Service (PaaS) y sus ventajas frente a IaaS (Infrastructure as a Service) y SaaS (Software as a Service) - **Cloud Run Functions**: Desarrollo y despliegue de funciones serverless utilizando Cloud Run Functions (Gen 2), incluyendo HTTP triggers y Event triggers - **Functions Framework**: Desarrollo local de funciones utilizando Functions Framework para testing y debugging antes del despliegue - **Pub/Sub básico**: Creación y gestión de topics y subscriptions en Google Cloud Pub/Sub para mensajería asíncrona - **Arquitectura event-driven**: Integración de Cloud Run Functions con Pub/Sub para implementar sistemas distribuidos asíncronos - **Métodos de despliegue**: Despliegue de funciones mediante Console de GCP, gcloud CLI y Terraform (Infrastructure as Code) - **CloudEvents**: Procesamiento de eventos en formato CloudEvents estándar para integración con servicios GCP #### Contenidos Técnicos: - Conceptos de PaaS: abstracción de infraestructura, escalado automático, modelo de pago por uso - Cloud Run Functions: arquitectura serverless, runtime y lifecycle de funciones, cold starts y optimización - Triggers HTTP: uso de `@functions_framework.http` para funciones que responden a peticiones HTTP - Triggers de eventos: uso de `@functions_framework.cloud_event` para procesar eventos de Cloud Storage y Pub/Sub - Pub/Sub: topics, subscriptions, mensajes, atributos, modelos pull vs push - Integración Cloud Storage: procesamiento de archivos subidos mediante Event triggers - Terraform para Cloud Functions: recursos `google_cloudfunctions2_function` y configuración de triggers - Mejores prácticas: gestión de secretos, optimización de costos, observabilidad y logging ### S10: Proyectos Prácticos con Cloud Functions y Pub/Sub Materiales en: S10/ https://aso-git.github.io/ #### Competencias Adquiridas: - **Procesamiento de archivos**: Implementación de Cloud Run Functions que procesan archivos CSV subidos a Cloud Storage - **Integración con servicios GCP**: Uso de clientes de Google Cloud Storage desde funciones serverless - **Pub/Sub avanzado**: Publicación y consumo de mensajes Pub/Sub desde Cloud Run Functions - **Arquitecturas asíncronas**: Diseño de sistemas que procesan eventos de forma asíncrona mediante Pub/Sub #### Contenidos Técnicos: - Procesamiento de eventos Cloud Storage: extracción de metadata de eventos, lectura de archivos desde buckets - Cliente de Cloud Storage: uso de `google.cloud.storage` para operaciones de lectura y escritura - Publicación de mensajes Pub/Sub: uso de `google.cloud.pubsub_v1` para publicar mensajes a topics - Consumo de mensajes Pub/Sub: procesamiento de mensajes recibidos mediante CloudEvents desde Pub/Sub - Transformación de datos: procesamiento de CSV, generación de resúmenes y almacenamiento de resultados - Testing local: uso de Functions Framework para probar funciones antes del despliegue ### S11: Fundamentos de Docker y Desarrollo Local Materiales en: S11/ https://hackmd.io/@ogarcia/flask-sql-alchemist https://hackmd.io/@ogarcia/s11-docker-y-compose https://aso-git.github.io/ #### Competencias Adquiridas: - **Conceptos de contenedores**: Comprensión de la diferencia entre contenedores y máquinas virtuales, arquitectura de Docker - **Gestión de imágenes y contenedores**: Comandos básicos de Docker para gestión de imágenes (`docker image ls/rm/pull/inspect`), contenedores (`docker container ls/stop/start/exec/rm`) y volúmenes (`docker volume create/ls/rm`) - **Dockerfiles**: Construcción de imágenes personalizadas mediante Dockerfiles, siguiendo mejores prácticas (orden de capas, cache, multi-stage builds) - **DevContainers**: Configuración de entornos de desarrollo reproducibles utilizando DevContainers en VS Code/Cursor - **Docker Compose**: Creación y gestión de aplicaciones multi-contenedor utilizando Docker Compose, definición de servicios, volúmenes y redes - **Integración con bases de datos**: Configuración de aplicaciones Flask con PostgreSQL utilizando Docker Compose - **Gestión de secretos**: Uso seguro de variables de entorno y archivos `.env` para credenciales, evitando hardcodear secretos en código o imágenes #### Contenidos Técnicos: - Arquitectura de Docker: imágenes, contenedores, registros, capas y union filesystem - Comandos Docker: formato nuevo (`docker image`, `docker container`) vs formato legacy, gestión de recursos - Volúmenes: tipos de volúmenes (named volumes, bind mounts), persistencia de datos, compartir archivos entre host y contenedor - Publicación de puertos: formato `-p host:container`, `EXPOSE` en Dockerfile, acceso a servicios desde host - Dockerfile: sintaxis de instrucciones (`FROM`, `RUN`, `COPY`, `ADD`, `WORKDIR`, `ENV`, `EXPOSE`, `CMD`, `ENTRYPOINT`), mejores prácticas - Multi-stage builds: optimización de imágenes mediante construcción en múltiples etapas - Docker Compose: sintaxis de `docker-compose.yml`, servicios, volúmenes, redes, variables de entorno - PostgreSQL con Docker: configuración de bases de datos en contenedores, conexión desde aplicaciones - SQLAlchemy básico: modelos de datos, conexión a bases de datos, operaciones CRUD básicas ### S12: Docker en CI/CD y Cloud Run Materiales en: S12/ https://aso-git.github.io/ [Docker en CI/CD y Cloud Run](https://classroom.github.com/a/w2Tq_Rvq) #### Competencias Adquiridas: - **Registros de imágenes**: Publicación de imágenes Docker en Docker Hub y Artifact Registry de GCP, autenticación y gestión de tags - **Cloud Build**: Configuración de pipelines CI/CD (Continuous Integration/Continuous Deployment) con Cloud Build para construcción y publicación automática de imágenes - **Cloud Run**: Despliegue de aplicaciones contenedorizadas en Cloud Run, configuración de escalado, health checks y variables de entorno - **Secret Manager**: Gestión segura de secretos y credenciales utilizando Secret Manager de GCP, integración con Cloud Run - **Migración Docker Compose a Cloud Run**: Adaptación de aplicaciones desarrolladas localmente con Docker Compose para despliegue en Cloud Run - **Pipelines completos**: Implementación de pipelines que integran construcción, publicación y despliegue automatizado #### Contenidos Técnicos: - Docker Hub: publicación manual de imágenes, tags y versionado, autenticación con `docker login` - Artifact Registry: creación de repositorios Docker, autenticación con `gcloud auth configure-docker`, formato de nombres de imágenes - Cloud Build: configuración mediante `cloudbuild.yaml`, triggers automáticos, substitutions y variables - Cloud Run: recursos `google_cloud_run_service`, configuración de contenedores, escalado automático (min/max instances), concurrency - Health checks: configuración de endpoints de salud, readiness y liveness probes - Secret Manager: creación y gestión de secretos, acceso desde Cloud Run mediante variables de entorno - IAM (Identity and Access Management): permisos necesarios para Cloud Build, Cloud Run y Secret Manager - Migración de Docker Compose: adaptación de servicios, volúmenes y redes para Cloud Run, uso de Cloud SQL para bases de datos - Variables de entorno: configuración de variables en Cloud Run, uso de secretos como variables de entorno