Los procesos de implementación eficientes son esenciales para garantizar la entrega fluida de productos de software en el vertiginoso panorama tecnológico actual. UniCredit Bulbank, una institución financiera líder en Bulgaria, reconoció la necesidad de contar con un canal de implementación optimizado para mejorar la productividad y la fiabilidad en su ciclo de vida de desarrollo de software. Colaboraron con nuestro equipo de desarrollo interno en DSS para diseñar un proceso de implementación integral con el fin de alcanzar este objetivo.
Descripción general del proceso de implementación
Nuestro proceso de implementación interno sigue una serie de pasos meticulosos para garantizar la calidad y la seguridad de las versiones de software. El proceso se puede dividir en las siguientes etapas:
- Auditoría y pruebas de dependencias: El proceso comienza dentro de nuestra infraestructura interna de Kubernetes, donde auditamos las dependencias y realizamos pruebas para garantizar que se cumplan los estándares de calidad antes de la implementación.
- Análisis de código estático con SonarQube: tras superar las pruebas, el proyecto se somete a un análisis de código estático exhaustivo utilizando SonarQube. Este paso ayuda a identificar y rectificar posibles problemas de calidad del código en una fase temprana del desarrollo.
- Creación de imágenes Docker: tras superar todas las pruebas y análisis, procedemos a crear imágenes Docker que encapsulan la aplicación y sus dependencias. Esto garantiza la coherencia y la portabilidad en diferentes entornos.
- Escaneo de seguridad con Trivy: Empleamos Trivy para realizar escaneos de seguridad en las imágenes Docker, identificando y abordando cualquier vulnerabilidad antes de la implementación.
- Implementación con Helm Charts: Aprovechando Helm Charts, orquestamos la implementación de aplicaciones en nuestra infraestructura interna de Kubernetes. Helm Charts proporciona una forma cómoda y reproducible de gestionar las aplicaciones de Kubernetes.
- Integración con Jenkins: nuestro proceso de implementación se integra perfectamente con Jenkins, utilizando pods de Kubernetes como agentes. Jenkins automatiza todo el proceso, desde la auditoría y las pruebas hasta la creación y la implementación, lo que garantiza la coherencia y la eficiencia.
Extensión a la infraestructura de UniCredit
La colaboración con UniCredit Bulbank amplía a la perfección nuestro proceso de implementación a su infraestructura. Cuando se realizan confirmaciones en una rama específica, Jenkins activa una tarea para confirmar en el repositorio de UniCredit. A continuación, su instancia de Jenkins refleja nuestro proceso, incluyendo la auditoría, las pruebas, el análisis de SonarQube, la creación de imágenes de Docker, el escaneo de seguridad de Trivy y el envío al repositorio de imágenes.
Sin embargo, el objetivo de implementación es diferente, ya que Jenkins de UniCredit se implementa en su infraestructura Openshift. Esto garantiza que las versiones de software se sometan a las mismas pruebas y controles rigurosos antes de su implementación en los entornos de UniCredit.
Supervisión y visibilidad
Para garantizar ciclos de implementación fluidos e ininterrumpidos, todos los registros están fácilmente disponibles en la instancia de Grafana de UniCredit para la supervisión y la resolución de problemas en tiempo real, lo que mantiene la transparencia y la visibilidad durante todo el proceso de implementación.
Coherencia entre entornos
Cabe destacar que se mantiene el mismo proceso de implementación tanto para los entornos internos de desarrollo y pruebas como para los entornos de pruebas y producción de UniCredit. Esta coherencia garantiza que las versiones de software mantengan el mismo nivel de calidad y seguridad en todas las etapas del ciclo de vida de la implementación.
Conclusión
La colaboración entre nuestro equipo de desarrollo interno y UniCredit Bulbank ejemplifica la importancia de contar con procesos de implementación sólidos en el desarrollo de software moderno. Hemos optimizado los procesos de implementación aprovechando tecnologías avanzadas como Kubernetes, Helm, Jenkins y Trivy, lo que garantiza una entrega rápida y fiable de los productos de software. Esta asociación no solo mejora la productividad y la eficiencia, sino que también refuerza nuestro compromiso de ofrecer soluciones de alta calidad que cumplan con los estrictos estándares del sector financiero.
