Relación con la memoria¶
La fuente de contexto es la memoria de Gabriel Ángel Canals Salleras, Automatización multinube con Terraform gestionada íntegramente desde GitLab: una propuesta de plataforma DevOps centralizada, con fecha de entrega indicada de 29 de junio de 2026. El archivo facilitado contiene 68 páginas PDF. Esta documentación reorganiza su contenido para consulta y operación, y lo contrasta con los seis repositorios públicos revisados el 26 de octubre de 2026.
Convención de páginas y fuentes¶
En el cuerpo principal, página PDF = página impresa + 6: la página 7 del PDF corresponde a la impresa 1; la 66, a la impresa 60. Las páginas preliminares y la bibliografía utilizan otra numeración. Se dan ambas referencias para que la evidencia pueda localizarse sin depender del visor.
La memoria aporta objetivos, motivos y capturas históricas. Los enlaces fijados a SHA aportan el comportamiento versionado examinado. El historial público de GitLab aporta estados de ejecuciones y tareas en la fecha de consulta. Ninguna de esas fuentes acredita por sí sola el estado actual de una cuenta cloud.
La memoria original no se incorpora al sitio público: esta página permite localizar sus secciones en el archivo que el autor mantiene. El inventario de commits está en fuentes.
Mapa del contenido¶
| Sección de la memoria | PDF / impresa | Contenido trasladado | Página de documentación |
|---|---|---|---|
| 6.1 Objetivo general y comparación | 16–18 / 10–12 | Centralización y motivación del proyecto | Proyecto, decisiones |
| 6.2 Objetivos específicos y requisitos | 19–22 / 13–16 | Alcance, capacidades y criterios | Matrices de esta página |
| 6.3 Metodología | 23–24 / 17–18 | Ocho fases del ciclo | Ciclo DevOps |
| 7.1 Planificación | 25–28 / 19–22 | Hitos, issues y distribución del trabajo | Ciclo DevOps |
| 7.1.1 Jerarquía | 28–30 / 22–24 | Responsabilidades y repositorios | Repositorios, arquitectura |
| 7.2.1 Aplicación | 31–32 / 25–26 | Demostrador Java y MySQL | Aplicación |
| 7.2.2 Edición de código | 33–34 / 27–28 | Editor y Web IDE | Ciclo DevOps |
| 7.2.3 Pipelines | 35–40 / 29–34 | Includes, jobs y separación de responsabilidades | Pipelines |
| 7.2.4 Build | 41–44 / 35–38 | Maven, JAR, Dockerfiles e imágenes | Build y release |
| 7.2.5 Test | 44–45 / 38–39 | Calidad, seguridad e interpretación de informes | Calidad y seguridad |
| 7.2.6 Release | 46–48 / 40–42 | Registry y referencia por commit | Build y release |
| 7.2.7 Infraestructura | 49–56 / 43–50 | AWS, GCP, agentes, estados y provisión | Infraestructura, AWS, GCP |
| 7.2.8 Deploy | 56–58 / 50–52 | Actualización de manifiestos y aplicación | Despliegue |
| 7.2.9 Monitorización | 59–61 / 53–55 | Logs, eventos y ejemplos de telemetría | Observabilidad |
| 7.2.10 Evaluación | 61–63 / 55–57 | Resultados y límites | Proyecto, hallazgos |
| 8.1 Conclusiones | 64–65 / 58–59 | Factibilidad y límites para producción | Decisiones |
| 8.2 Trabajo futuro | 66 / 60 | Mayor complejidad, operación avanzada y documentación automática | Decisiones, publicación |
Requisitos funcionales y evidencia¶
Los RF proceden de la tabla 2, PDF 20–21 / impresas 14–15. La columna de alcance refleja lo que la documentación puede sostener; no es una certificación de funcionamiento presente.
| RF | Capacidad | Evidencia y límite |
|---|---|---|
| RF-01 | Planificar en GitLab | Memoria y 12 issues públicos consultados; la planificación conserva elementos abiertos |
| RF-02 | Separar artefactos | Seis repositorios con responsabilidades diferenciadas |
| RF-03 | Editar desde GitLab | Capturas y descripción del editor/Web IDE; el historial no demuestra el editor usado en cada commit |
| RF-04 | Construir aplicación | Jobs Maven y últimas ejecuciones públicas correctas |
| RF-05 | Crear contenedores | Dockerfiles y generate-image |
| RF-06 | Publicar en Registry | Comando push y referencias SHA; no se ha probado descarga actual |
| RF-07 | Calidad y seguridad | Escáneres y parsers; resultado no bloqueante en jobs observados |
| RF-08 | Actualizar manifiestos | update-k8s-manifests, commit y push |
| RF-09 | Aprovisionar infraestructura | Raíces .tf, pipeline OpenTofu y evidencia histórica; no ejecución nueva en esta revisión |
| RF-10 | Dos proveedores | AWS y GCP implementados; un destino por ejecución de aplicación |
| RF-11 | Gestionar estado en GitLab | Backend HTTP, configuración CI y captura de estados |
| RF-12 | Operar Kubernetes | Configuración de dos agentes y capturas; acceso actual depende de conexión y permisos |
| RF-13 | Monitorizar | Probes/logs/eventos; OTLP mostrado con ejemplos y sin instrumentación completa versionada |
| RF-14 | Iterar por commit | Historial CI de apps y promoción automática en main protegida |
| RF-15 | Recuperar una imagen anterior | Referencias versionadas; necesita reaplicación y tratamiento separado de datos |
Requisitos no funcionales y alcance¶
Los RNF proceden de la tabla 3, PDF 22 / impresa 16.
| RNF | Propiedad | Cómo se refleja y qué falta precisar |
|---|---|---|
| RNF-01 | Centralización | Coordinación en GitLab; bootstrap cloud y ciertas configuraciones siguen siendo prerrequisitos |
| RNF-02 | Reproducibilidad | Código y pipeline versionados; defaults externos, herramientas flotantes y secretos requieren preparación |
| RNF-03 | Trazabilidad | SHA de código, imagen y commit de manifiestos; falta validación funcional en el job de entrega |
| RNF-04 | Mantenibilidad | Plantillas compartidas; referencias main propagan cambios a ejecuciones posteriores |
| RNF-05 | Separación de responsabilidades | Aplicación, entrega e IaC separados; contratos entre proyectos documentados |
| RNF-06 | Portabilidad | Implementaciones AWS/GCP; ingress y particularidades de cada proveedor necesitan adaptación |
| RNF-07 | Idempotencia | Estado remoto y planes; no se ha ejecutado una prueba de convergencia nueva para este paquete |
Diferencias y precisiones encontradas¶
| Tema | Memoria | Código o evidencia pública revisada |
|---|---|---|
| Promoción manual | PDF 39 / 33 muestra when: manual; PDF 57–58 / 51–52 describe automatización |
La plantilla vigente es automática en main protegida |
| Orden Build/Test | La exposición narrativa separa fases sucesivas | Las etapas ejecutan análisis de código antes de Build y análisis de imagen después |
| Ejecutor IaC | Terraform como tecnología; OpenTofu mencionado en PDF 51 / 45 | OpenTofu 1.12.1 en la imagen CI; no es una contradicción de la memoria |
| Puerto frontend | Dockerfile con EXPOSE 8081, PDF 43 / 37 | Configuración de Spring y manifiesto escuchan en 8080 |
| Bloqueo de vulnerabilidades | El parser devuelve error para High/Critical | La base del parser admite fallo; no constituye gate obligatorio |
| Cobertura multinube | Ambos clústeres y despliegue en dos proveedores | Un destino por ejecución y repos apps seleccionando GKE; Ingress existente específico de AWS |
| Telemetría | Ejemplos de trazas/métricas, PDF 59 / 53 | No se encontró configuración de instrumentación OTLP en los seis repositorios |
| Planificación | Fechas previstas y desarrollo completo descrito | Hito de infraestructura sigue activo; su fecha pública llega al 15/06, frente al 10/06 de la tabla histórica |
Además aparecen detalles operativos poco desarrollados en la memoria: backend HTTP y autenticación entre estados; planes guardados; grupos de exclusión mutua; orden de retirada; job que elimina una entrada del estado de Private Service Access; secreto de Registry no creado; probes TCP; parámetros efectivos de MySQL; permisos de agentes y separación incompleta de entornos. Se documentan en sus páginas técnicas y en hallazgos.
Planificación e historial públicos¶
En la consulta del 26/10/2026 se recuperaron 12 issues públicos: 9 cerrados y 3 abiertos del proyecto IaC. Sus metadatos incluyen cuatro hitos, tres cerrados y el de infraestructura activo. Entre las tareas abiertas existe una referencia histórica a Azure, pero no hay implementación Azure en los repositorios revisados; el alcance implementado sigue siendo AWS y GCP.
Los últimos pipelines públicos de frontend y backend corresponden a sus HEAD examinados y tienen 11 jobs correctos. El último pipeline visible de infraestructura es una retirada, pertenece a un commit anterior al HEAD y no acredita un despliegue actualmente activo. La documentación diferencia estos hechos de las capturas históricas de la memoria.
Fuentes¶
- Memoria original del autor, título y paginación indicados al inicio; figuras 4, 7, 8, 10, 11 y 13–16 revisadas visualmente junto con el texto relevante.
- Despliegue vigente, resultados de seguridad y pipeline IaC.
- Puerto frontend.
- Issues del grupo y hito de infraestructura, consultados el 26/10/2026.
- Tarea histórica Azure, consultada el 26/10/2026.
- Frontend 2604607441, backend 2604545913 e infraestructura 2604650152.