Resumen: Aplicación bancaria web completa y segura desarrollada con Spring Boot, que utiliza tecnologías web modernas y seguridad de nivel empresarial. Este artículo describe el despliegue de la aplicación Spring Boot Banking Application Deployment using DevSecOps on AWS EKS y las prácticas de DevSecOps para garantizar calidad, seguridad y disponibilidad en producción.
Tecnologías y herramientas principales: GitHub para control de código, Docker para contenedores, Jenkins para integración continua, OWASP dependency check para análisis de dependencias, SonarQube para calidad de código, Snyk para detección de vulnerabilidades, ArgoCD para entrega continua declarativa, AWS EKS como plataforma Kubernetes administrada, Helm para despliegue y gestión de charts, Grafana y Prometheus para monitorización, Spring Boot y Spring Security en el backend, MySQL como base de datos y Maven para construcción del proyecto.
Requisitos previos fundamentales: acceso root a la máquina que servirá como master, una cuenta AWS en la región us-east-1, un usuario IAM con claves de acceso, AWS CLI configurado, y una clave SSH pública disponible para los nodos. Asegúrese de abrir los puertos necesarios en el security group para acceso a Jenkins, ArgoCD, aplicaciones y puertos de monitorización.
Crear el clúster EKS: instalar AWS CLI, kubectl y eksctl en la máquina master. Usar eksctl para crear un clúster llamado bankapp en la región us-east-1, asociar el proveedor OIDC de IAM y crear un nodegroup con instancias tipo t3.medium, volumen de 25 GB y el par de claves SSH correspondiente. Verifique que el ssh public key para el nodegroup exista en la cuenta AWS.
Instalar y configurar Jenkins: actualizar paquetes, instalar OpenJDK 17 y Jenkins. Cambiar el puerto por defecto de Jenkins de 8080 a 8081 para evitar conflicto con la aplicación bancaria que ocupará 8080. Recargar systemd y reiniciar Jenkins tras modificar el archivo de servicio. Instalar los plugins recomendados: OWASP, SonarQube Scanner, Snyk, Docker y Pipeline Stage View.
Instalar Docker en la máquina Jenkins para permitir la construcción de imágenes. Conceder permisos al socket de Docker cuando sea necesario para que las etapas de build y push funcionen correctamente, por ejemplo ajustando permisos de /var/run/docker.sock con las políticas de seguridad oportunas.
SonarQube y OWASP: desplegar SonarQube en Docker para análisis de calidad y crear un token de SonarQube para integrarlo en las credenciales de Jenkins. Desplegar OWASP dependency check en Docker para análisis de dependencias y configurar su API key si se dispone de ella para acelerar las actualizaciones de la base de datos de vulnerabilidades.
ArgoCD para entrega continua: crear el namespace argocd en el clúster y aplicar el manifiesto oficial de instalación. Comprobar que todos los pods del namespace argocd estén en estado Running. Instalar la CLI de ArgoCD en la máquina master, cambiar el servicio argocd-server a tipo NodePort para exponer el panel, obtener la contraseña inicial desde el secreto argocd-initial-admin-secret y actualizar la contraseña desde la interfaz web en User Info.
Integración de cluster y repositorios en ArgoCD: desde la CLI de ArgoCD iniciar sesión en la URL del servidor argocd, listar clusters disponibles, agregar el contexto del clúster EKS a ArgoCD con argocd cluster add y verificar la conexión desde la consola en Settings Clusters. Conectar el repositorio Git del proyecto en Settings Repositories y confirmar que la conexión es exitosa.
Pipeline CI y CD: crear en Jenkins dos jobs principales BankApp-CI y BankApp-CD. Configurar pasos de compilación con Maven, ejecutar SonarQube Scanner para análisis de calidad, lanzar OWASP y Snyk para análisis de seguridad, construir imagen Docker y subirla al registry configurado. Añadir credenciales en Manage Jenkins para SonarQube, Docker Hub y cualquier otro servicio necesario. Establecer webhooks en SonarQube para notificar a Jenkins cuando corresponda.
Despliegue declarativo con ArgoCD: crear una aplicación en ArgoCD apuntando al manifiesto Kubernetes o al Helm chart dentro del repositorio. Seleccionar la opción Auto Create Namespace para que ArgoCD gestione el namespace automáticamente. ArgoCD sincronizará y desplegará los recursos en el clúster EKS, proporcionando rollback y observabilidad de los sincronizaciones.
Monitorización con Helm, Prometheus y Grafana: instalar Helm en la máquina master, añadir repositorios prometheus-community y stable, crear el namespace prometheus y desplegar kube-prometheus-stack mediante Helm. Verificar pods y servicios en el namespace prometheus. Cambiar los servicios de Prometheus y Grafana a tipo NodePort para exponerlos externamente y abrir los puertos correspondientes en los security groups. Obtener la contraseña de Grafana desde el secreto stable-grafana y acceder al dashboard para visualizar métricas de cluster, nodos y workloads.
Limpieza de recursos: cuando sea necesario eliminar el entorno, ejecutar eksctl delete cluster con el nombre del clúster bankapp y la región us-east-1 para borrar el clúster EKS y los recursos asociados de manera automática.
Buenas prácticas de seguridad y operaciones: integrar análisis de seguridad en cada etapa del pipeline, escanear imágenes Docker con Snyk y herramientas de contenedores, aplicar políticas de least privilege en IAM, rotar claves y usar mecanismos de secrets management para credenciales sensibles. Habilitar monitoreo y alerting en Prometheus y Grafana, y usar logs centralizados para auditoría y respuesta a incidentes.
Recursos recomendados para profundizar: documentación oficial de Spring Boot y Spring Security, guías de AWS EKS, documentación de Docker y Helm, y los manuales de SonarQube y OWASP dependency check para configurar análisis avanzados.
Sobre Q2BSTUDIO: Q2BSTUDIO es una empresa de desarrollo de software que diseña aplicaciones a medida y software a medida para empresas de todos los tamaños. Somos especialistas en inteligencia artificial, ciberseguridad y servicios cloud AWS y Azure. Ofrecemos servicios inteligencia de negocio, soluciones de ia para empresas, creación de agentes IA y desarrollo de cuadros de mando con power bi para convertir datos en decisiones accionables. Nuestra experiencia integra prácticas DevSecOps para entregar software seguro y escalable, combinando automatización CI CD, escaneo continuo de vulnerabilidades y despliegue sobre infraestructuras cloud gestionadas.
Palabras clave estratégicas: aplicaciones a medida, software a medida, inteligencia artificial, ciberseguridad, servicios cloud aws y azure, servicios inteligencia de negocio, ia para empresas, agentes IA, power bi. Incluir estas capacidades en su estrategia digital mejora posicionamiento, reduce riesgos y acelera la entrega de valor.
Si desea que Q2BSTUDIO le ayude a desplegar esta arquitectura, optimizar pipelines CI CD, configurar ArgoCD, o diseñar soluciones de inteligencia de negocio e IA, contacte con nuestro equipo para una consultoría personalizada y un plan de migración y seguridad adaptado a sus necesidades.
Resumen final: este flujo DevSecOps integrado con Jenkins SonarQube OWASP Snyk ArgoCD y AWS EKS proporciona una plataforma robusta para desplegar y operar una aplicación bancaria basada en Spring Boot con controles de seguridad y visibilidad industriales. Felicitaciones por llegar hasta aquí y éxito en su despliegue.