5 servicios
Código, contenedores, pruebas unitarias, métricas y flujo E2E documentado.
Caso DevOps colaborativo que conecta cinco servicios, pipelines CI, imágenes inmutables, Terraform modular, Amazon EKS, Gateway API y reconciliación con Argo CD.
Proyecto académico/técnico de modernización DevOps para una aplicación de tareas distribuida en cinco servicios y un worker orientado a eventos.
Convertir servicios heredados y heterogéneos en una plataforma reproducible, observable y trazable, sin confundir configuración declarada con operación comprobada.
CI por repositorio, publicación versionada en ECR, infraestructura AWS con Terraform, workloads Kubernetes separados por namespace y GitOps por ambiente con Argo CD.
El material demuestra trabajo colaborativo en automatización CI, IaC, manifiestos GitOps, instrumentación y pruebas. Las fuentes no permiten atribuir individualmente cada pieza, por lo que no se reclama autoría exclusiva.
DEV figura como desplegado y validado históricamente en los registros del repositorio. Observabilidad, staging y producción se presentan según su evidencia real: configurados o documentados, no verificados como activos.
La lectura conjunta de código, pruebas, Terraform y manifiestos permite separar la implementación real de la evidencia histórica y de los planes que no llegaron a validarse.
Código, contenedores, pruebas unitarias, métricas y flujo E2E documentado.
EKS, Argo CD, workloads, imágenes inmutables y Gateway constan como validados en el registro del repositorio.
Prometheus, Grafana, ServiceMonitors y dashboards están declarados; el acta de validación quedó vacía.
Existen manifiestos y promoción documentada, pero los clústeres y rollouts no tienen evidencia de ejecución.
El frontend es la única entrada de aplicación. Autenticación, usuarios, tareas, Redis y el worker permanecen como servicios internos; los eventos de tareas viajan por Pub/Sub.
Interfaz y proxy de las rutas /login y /todos.
Valida credenciales, consulta Users y emite JWT HS256.
Expone perfiles y valida el JWT compartido.
CRUD autenticado, memoria de proceso y publicación de eventos.
Consume eventos Redis, registra el procesamiento y expone métricas.
Diagramas originales reconstruidos desde código y configuración. Las líneas sólidas representan implementación declarada; las discontinuas distinguen estrategia o integración no validada.
Rutas y dependencias verificadas en el código de los cinco servicios y en los Deployments/Services de DEV.
VPC, subredes privadas, EKS, ECR, OIDC/IRSA y la frontera entre Terraform y GitOps.
Pruebas y build por repositorio, publicación reutilizable a ECR y reconciliación por ambiente.
Métricas Prometheus implementadas, ServiceMonitors y dashboards declarados; validación live no registrada.
Terraform compone módulos versionados para red, EKS y ECR. Un estado separado administra recursos dentro del clúster —namespaces, Gateway API y AWS Load Balancer Controller— mientras Argo CD conserva los workloads.
Subredes privadas y públicas, NAT y etiquetas requeridas por EKS/LB.
Clúster administrado, node groups, add-ons y entradas de acceso.
Cinco repositorios con referencias de imagen versionadas e inmutables.
GitHub OIDC evita claves persistentes; IRSA limita el controlador de carga.
Terraform posee AWS, namespaces y controladores de plataforma. GitOps posee Deployments, Services, Gateway, HTTPRoutes y versiones de imagen. Esa separación reduce cambios manuales y mantiene trazabilidad.
Gateway API dirige / al frontend. El proxy del frontend resuelve /login y /todos; Users, Redis y el worker no se publican directamente.
OIDC para CI, roles de IAM de mínimo alcance e IRSA para AWS Load Balancer Controller están definidos en Terraform.
RBAC declara grupos de lectura y administración. Los secretos JWT quedan fuera de Git y deben aprovisionarse por ambiente.
El pentest histórico confirmó deuda en credenciales, rate limiting y dependencias antiguas. El secreto débil fue rechazado en el retest de DEV.
*La publicación omite cuentas, hosts, secretos, credenciales de prueba y pasos explotables. TLS con certificado público, rate limiting y modernización de dependencias permanecieron pendientes.
Cada servicio tiene un workflow que prueba y verifica su imagen. En main delega la publicación a un workflow reutilizable con OIDC. GitOps fija el tag completo y Argo CD reconcilia el ambiente.
Los cinco repositorios contienen workflows, reportes de cobertura y release reutilizable; los changelogs registran releases.
El repositorio registra sincronización, self-heal, workloads saludables e imágenes inmutables en el clúster DEV.
Staging automatiza sync; producción exige sync manual según los manifiestos actuales. No se afirma ejecución de esos ambientes.
Los cinco servicios exponen métricas HTTP o de worker. ServiceMonitors, Prometheus, Grafana, dashboards y Kubecost están declarados como código, pero el checklist de validación live no fue diligenciado.
El reporte fechado del proyecto conserva resultados reproducibles sin convertirlos en métricas de producción.
Login → crear tarea → listar → actualizar estado.
100% líneas/funciones y 87,5% ramas en la verificación local registrada.
57,5% y 56% de statements respectivamente.
No cubrió persistencia, concurrencia ni durabilidad de Redis Pub/Sub.
Microservicios heredados con runtimes antiguos, autenticación compartida y trazas Zipkin.
CI por servicio, ECR, Terraform modular, clúster DEV, GitOps y Gateway documentados.
E2E local, DAST contra DEV y registro de riesgos y remediaciones parciales.
Persistencia, alertas, staging/prod, TLS público, rate limiting y actualización de dependencias.
Concentra una entrada ALB y mantiene los servicios como ClusterIP, a cambio de operar CRDs y controlador AWS.
Evita latest y hace auditable cada rollout; exige promoción explícita del mismo artefacto.
Prune y self-heal reducen drift en DEV/staging; producción conserva aprobación manual.
Simplifica el desacoplamiento del worker, pero no ofrece durabilidad después de una interrupción.
Los repositorios prueban trabajo colaborativo en modernización DevOps: automatización CI, Terraform modular, manifiestos GitOps, exposición controlada, instrumentación y pruebas integradas. Sin una atribución documental por persona, este caso no reclama autoría exclusiva de esas piezas.
Cloud, plataforma y aplicaciones evolucionan mejor cuando cada repositorio tiene ownership claro.
Un dashboard o manifiesto completo sigue necesitando evidencia de reconciliación y datos reales.
Documentar límites de seguridad y persistencia hace el caso más útil que ocultarlos.
Fuentes: código de los cinco servicios, workflows CI, módulos Terraform, manifiestos Kubernetes/Argo CD y documentación técnica del repositorio. Estado observado en archivos locales; no se consultó ni modificó infraestructura activa.
¿Tienes un producto por construir o buscas a alguien para tu equipo? Conversemos.