Cómo crear un pipeline con Azure DevOps y Spring Boot
DevOps es una filosofía de trabajo que combina el desarrollo de software y las operaciones en un proceso continuo e integrado. Una de las herramientas que facilitan la implementación de DevOps es Azure DevOps, una plataforma de Microsoft que ofrece servicios de planificación, colaboración, integración continua (CI), entrega continua (CD) y monitoreo de proyectos de software.
En este artículo, vamos a crear pipeline DevOps con Azure DevOps y Spring Boot, un framework de Java para desarrollar aplicaciones web. Seguiremos estos pasos:
- Crear un proyecto en Azure DevOps y configurar un repositorio Git para almacenar el código fuente de la aplicación.
- Crear una aplicación Spring Boot con Spring Initializr y enviar el código al repositorio de Git.
- Crear un pipeline de CI en Azure DevOps para compilar, probar y empaquetar la aplicación en cada commit en el repositorio de Git.
- Crear un pipeline de CD en Azure DevOps para implementar la aplicación en un servicio en la nube, como Azure App Service, con cada build bien realizado en el pipeline de CI.
- Cree un dashboard en Azure DevOps para realizar un seguimiento del estado de los pipelines y la aplicación.
1) Crear un proyecto en Azure DevOps y configurar un repositorio Git para almacenar el código fuente de la aplicación
Para comenzar, necesitas una cuenta en Azure DevOps. Si no la tienes, genera una gratuitamente aquí.
Después de hacer login en Azure DevOps, haz clic en Crear proyecto y completa los campos Nombre del proyecto, Descripción y Visibilidad. Puedes elegir el nombre que quieras para tu proyecto, pero en este ejemplo usaremos EsteiraDevops (pipelinedevops en portugués).
Ya creado el proyecto, te llevará a la página inicial. Allí, podrás ver los servicios de Azure DevOps disponibles, como Boards, Repos, Pipelines, Test Plans y Artifacts.
Haz clic en Repos para acceder al servicio de repositorios Git de Azure DevOps. Verás que ya existe un repositorio vacío llamado EsteiraDevops, que tiene el mismo nombre del proyecto. Puedes usar dicho repositorio o crear uno nuevo con otro nombre.
Para clonar el repositorio en tu computadora, usa el botón Clone y copia la URL del repositorio. También puedes escoger entre HTTPS o SSH para autenticar el acceso al repositorio.
2) Crear una aplicación Spring Boot usando Spring Initializr y hacer push del código al repositorio Git
Ahora que tienes un repositorio Git en Azure DevOps, necesitas crear una aplicación Spring Boot para colocar en el repositorio. Una forma fácil de hacerlo es con Spring Initializr, una herramienta online que genera proyectos Spring Boot con las dependencias que elijas.
Selecciona las siguientes opciones en Spring Initializr:
- Project: Maven Project
- Language: Java
- Spring Boot: 2.6.1
- Project Metadata:
-Group: com.example
-Artifact: esteiradevops
-Name: esteiradevops
-Description: Demo project for Spring Boot and Azure DevOps
-Package name: com.example
- Dependencies: Web, Actuator
Haz clic en Generate para descargar el proyecto generado como un archivo zip. Extráelo en la carpeta de tu preferencia y abre el proyecto en la IDE que desees, como Eclipse o IntelliJ IDEA.
Puedes probar la aplicación localmente ejecutando la clase EsteiradevopsApplication que contiene el método main. La aplicación iniciará un servidor web en el puerto 8080 y expondrá un endpoint en la URL http://localhost:8080/actuator/health que retorna el status de la aplicación.
Para enviar el código de la aplicación al repositorio Git en Azure DevOps, necesitas usar los comandos Git en el terminal o en la IDE. Los comandos básicos son:
- git init: para inicializar un repositorio Git local en la carpeta del proyecto.
- git remote add origin: para agregar el repositorio remoto de Azure DevOps como origen del repositorio local.
- git add: para añadir todos los archivos del proyecto al índice de Git.
- git commit -m "Initial commit": para crear un commit con un mensaje descriptivo.
- git push -u origin master: para enviar el commit para el branch master del repositorio remoto.
Una vez ejecutados esos comandos, puedes verificar en Azure DevOps que se envió con éxito el código de la aplicación al repositorio Git.
3) Crear un pipeline de CI en Azure DevOps para compilar, probar y empaquetar la aplicación a cada commit en el repositorio Git
El próximo paso es crear un pipeline de CI en Azure DevOps para automatizar el proceso de compilación, prueba y empaquetado de la aplicación a cada commit en el repositorio Git. Um pipeline de CI es una secuencia de tareas ejecutadas en un agente, que puede ser una máquina virtual o un container.
Para crear un pipeline de CI en Azure DevOps, haz clic en Pipelines y luego en Create Pipeline. Verás una pantalla para escoger el origen del código. Selecciona Azure Repos Git y después tu repositorio Git.
En la próxima pantalla, puedes elegir entre usar un asistente para configurar el pipeline o usar un archivo YAML. El archivo YAML es un formato de texto que permite definir el pipeline de forma declarativa y versionablel. Vamos a usar esa opción y seleccionar Starter pipeline.
Allí verás un editor con un archivo YAML básico que define un pipeline con una etapa única que coloca Hello world en la salida. Puedes modificar ese archivo para agregar las etapas necesarias para compilar, probar y empaquetar la aplicación Spring Boot.
Una forma simple de hacerlo es usar la tarea Maven, que permite ejecutar comandos Maven en el pipeline. En este punto, es posible añadir esa tarea usando el botón Show assistant en la esquina superior derecha del editor y buscando Maven.
La tarea Maven tiene algunos parámetros configurables, como:
- Maven POM file: la ruta del archivo pom.xml del proyecto Maven.
- Options: Opciones de línea de comandos de Maven como -B para el modo batch o -DskipTests para omitir pruebas.
- Goals: los objetivos de Maven, como clean, compile, test o package.
Para compilar, probar y empaquetar la aplicación Spring Boot, tienes a disposición los siguientes parámetros:
- Maven POM file: pom.xml.
- Options: -B.
- Goals: clean package.
El archivo YAML quedará así:
Selecciona Save and run para guardar el archivo YAML y ejecutar el pipeline. Verás el resultado en la pantalla, mostrando el log de las etapas y el status final.
Si todo salió bien, el pipeline se completará exitosamente y la aplicación Spring Boot se complió, probó y empaquetó en un archivo JAR en la carpeta target.
4) Crear un pipeline de CD en Azure DevOps para implantar la aplicación en un servicio de nube, como Azure App Service, en cada build del pipeline de CI
El último paso es crear un pipeline de CD en Azure DevOps para automatizar la implantación de la aplicación en un servicio de nube, como Azure App Service, en cada build del pipeline de CI. Un pipeline de CD es una secuencia de tareas ejecutadas en un agente o directamente en el servicio de destino.
Para crear un pipeline de CD en Azure DevOps, selecciona Releases y después New pipeline. Verás una pantalla para escoger un modelo para tu pipeline. Selecciona Azure App Service deployment y haz clic en Apply.
Aparecerá una pantalla con las configuraciones de tu pipeline de CD, que se dividen en dos partes:
- Artifacts: son los artefactos generados por el pipeline de CI, como el archivo JAR de la aplicación. Puedes configurar el origen de los artefactos, como el repositorio Git o el pipeline de CI, y definir un activador para iniciar el pipeline de CD cuando se actualicen los artefactos.
- Stages: son las etapas del pipeline de CD, que pueden representar diferentes ambientes de implantación, como desarrollo, prueba o producción. Tienes la posibilidad de configurar las tareas que serán ejecutadas en cada etapa, como implantar la aplicación en Azure App Service.
Para configurar los artefactos de tu pipeline de CD, haz lo siguiente:
- Clic en Add an artifact y selecciona el origen de tus artefactos. En este caso, usaremos el repositorio Git de Azure DevOps que contiene el código de la aplicación.
- Selecciona el proyecto, la fuente y el branch de tu repositorio Git. Aquí usaremos el proyecto EsteiraDevops, la fuente EsteiraDevops y el branch master.
- Clic en Add para añadir los artefactos a tu pipeline de CD.
Para configurar el activador de tu pipeline de CD, haz lo siguiente:
- Clic en el icono del rayo al lado del nombre de tus artefactos y habilita la opción Continuous deployment trigger. Eso hará que se inicie el pipeline de CD cada vez que haya un cambio en los artefactos.
- Clic en Save para guardar las configuraciones del activador.
Para configurar la etapa de tu pipeline de CD, haz lo siguiente:
- Clic en el nombre de la etapa, que por patrón será Deploy Azure App Service. Verás una pantalla con las tareas de la etapa y la configuración general.
- En la sección Tasks, haz clic en la tarea Azure App Service deploy. Aparecerá una pantalla con los parámetros de la tarea, como:
-Azure subscription: la suscripción de Azure que contiene el servicio de destino. Puedes usar la misma suscripción de cuando creaste Azure Container Registry.
-App type: el tipo de aplicación que deseas implementar. En este caso, usemos Web App on Linux.
-App service name: el nombre del servicio de destino. Puedes crear un nuevo servicio o utilizar uno existente. En este caso, vamos a crear un nuevo servicio llamado esteiradevops.
-Package or folder: la ruta del artefacto que contiene la aplicación. En este caso, vamos a utilizar el archivo JAR generado por la canalización de CI en la carpeta target.
- En la sección General, puede cambiar el nombre de la etapa y configurar otros ajustes, como disparadores, condiciones previas y aprobaciones. En este caso, mantendremos la configuración predeterminada.
- Clic en Save para guardar la configuración de la etapa.
Para ejecutar el pipeline de CD, puedes hacer un nuevo commit en el repositorio Git o hacer clic en Create release y después en Create. Verás el resultado de la ejecución en la pantalla, mostrando el log de las tareas y el status final.
Si todo salió bien, verás que el pipeline fue completado con éxito y que la aplicación Spring Boot se implantó en Azure App Service.
5) Crear un dashboard en Azure DevOps para monitorear el status de los pipelines y de la aplicación
El último paso (y opcional) es crear un dashboard en Azure DevOps para monitorear el status de los pipelines y de la aplicación. Un dashboard es una colección de widgets que muestran información relevante sobre tu proyecto, como gráficos, tablas o indicadores.
Para crear un dashboard en Azure DevOps, haz clic en Dashboards y luego en New dashboard. Verás una pantalla para escoger un nombre y una descripción para tu dashboard. En este caso, usaremos el nombre EsteiraDevops.
Luego de crear el dashboard, puedes añadir widgets haciendo clic en Add widget. Aparecerá una lista de widgets disponibles que puedes revisar o filtrar por categoría. Asimismo, puedes agregar los widgets que quiera a tu dashboard, pero algunos ejemplos útiles son:
- Build history: muestra el histórico de los builds del pipeline de CI, incluyendo el status, la duración y la fecha de cada build.
- Release history: muestra el histórico de los releases del pipeline de CD, incluyendo el status, la duración y la fecha de cada release.
- Azure App Service deployments: muestra los detalles de las implantaciones de la aplicación en Azure App Service, incluyendo la versión, el ambiente y la URL de la aplicación.
Después de añadir los widgets a tu dashboard, puedes arrastrarlos y redimensionarlos para organizar el layout de tu dashboard. También puedes editar la configuración de cada widget haciendo clic en el icono de engranaje en la esquina superior derecha del widget. Por ejemplo, puedes cambiar el título, el color o el tamaño del widget.
Haz clic en Done editing para guardar los cambios en tu dashboard. Verás el resultado final en pantalla, mostrando la información de tus pipelines y de tu aplicación.
Puedes entrar a tu dashboard en cualquier momento al hacer clic en Dashboards y luego en el nombre de tu dashboard. También puedes compartir tu dashboard con otros haciendo clic en Share dashboard y copiando la URL de tu dashboard.
Conclusión
En este artículo, aprendiste a crear un pipeline DevOps con Azure DevOps y Spring Boot. Viste cómo:
- Crear un proyecto en Azure DevOps y configurar un repositorio Git para almacenar el código fuente de la aplicación.
- Crear una aplicación Spring Boot con Spring Initializr y enviar el código al repositorio de Git.
- Crear un pipeline de CI en Azure DevOps para compilar, probar y empaquetar la aplicación a cada commit en el repositorio Git.
- Crear un pipeline de CD en Azure DevOps para implantar la aplicación en un servicio de nube, como o Azure App Service, a cada build del pipeline de CI.
- Crear un dashboard en Azure DevOps para monitorear el status de los pipelines y de la aplicación.
Con eso, puedes aprovechar los beneficios de DevOps, como:
- Aumenta la calidad y la fiabilidad de las aplicaciones.
- Reducir los riesgos y costos de implementación.
- Acelerar el tiempo de entrega y el feedback de los usuarios.
- Mejorar la colaboración y la comunicación entre equipos.
Espero que hayas disfrutado este artículo y que te haya sido útil. ¡Gracias por leer!
Listopro Community da la bienvenida a todas las razas, etnias, nacionalidades, credos, géneros, orientaciones, puntos de vista e ideologías, siempre y cuando promuevan la diversidad, la equidad, la inclusión y el crecimiento profesional de los profesionales en tecnología.