Azure DevOps es una plataforma de herramientas de Microsoft diseñada para facilitar la colaboración entre equipos de desarrollo, pruebas y operaciones, ofreciendo integración continua (CI) y entrega continua (CD). Con Azure DevOps, podréis gestionar proyectos, rastrear tareas, alojar repositorios de código y automatizar flujos de trabajo para desplegar software de manera eficiente.
Seguid leyendo y os enseñaré a crear vuestra primera pipeline en DevOps Azure...
¿QUÉ ES DEVOPS AZURE?
Azure DevOps es una plataforma integral de Microsoft diseñada para facilitar la colaboración en equipos de desarrollo de software. Proporciona un conjunto de herramientas que soportan todo el ciclo de vida de desarrollo de aplicaciones, desde la planificación y el diseño hasta la implementación y el mantenimiento. Es especialmente útil para implementar prácticas de DevOps, un enfoque que combina desarrollo (Dev) y operaciones (Ops) para mejorar la colaboración y la eficiencia.
Los componentes clave de Azure DevOps son:
- Azure Boards: Es la herramienta para la gestión de proyectos que permite organizar tareas, rastrear el progreso y planificar actividades mediante tableros Kanban, backlogs y sprints ágiles.
- Azure Repos: Un sistema de control de versiones que soporta Git y Team Foundation Version Control (TFVC), permitiendo la colaboración en el código fuente.
- Azure Pipelines: Plataforma para CI/CD (Integración Continua y Despliegue Continuo), que automatiza la construcción, prueba y despliegue de aplicaciones en diferentes plataformas.
- Azure Test Plans: Ofrece herramientas para la planificación, ejecución y seguimiento de pruebas manuales y automatizadas para garantizar la calidad del software.
- Azure Artifacts: Es el sistema para gestionar paquetes y dependencias (como NuGet, NPM, Maven, etc.), permitiendo su uso y distribución en los proyectos.
Beneficios de usar Azure DevOps:
- Integración total: Compatible con muchas herramientas y lenguajes de programación.
- Multiplataforma: Funciona en Windows, Linux y macOS.
- Escalabilidad: Adecuado para equipos pequeños y grandes.
- Cloud y on-premises: Se puede usar como un servicio en la nube o como Azure DevOps Server para instalaciones locales.
- Colaboración mejorada: Unifica equipos en torno a un único conjunto de herramientas y procesos.
Azure DevOps es una solución potente para empresas y equipos que buscan optimizar sus procesos de desarrollo y entrega de software.
Web Oficial: https://dev.azure.com
Azure DevOps es la herramienta de Microsoft para CI/CD
1.- ELEMENTOS NECESARIOS PARA ESTE TUTORIAL
- Un equipo cualquiera con Windows, GNU/Linux o MacOS
- Conexión a Internet
- Cuenta en Microsoft Azure
2.- CREACIÓN DEL PROYECTO
Para crear un nuevo proyecto, primero debemos tener una organización ya creada. En caso de no tenerla podremos crearla haciendo click en "New organization" o "Nueva organización" (yo tengo Azure en inglés). En este ejemplo la organización que tengo es RAULPRIETOFERNANDEZ y dentro de ella, será donde hagamos las pruebas y donde crearemos nuestro proyecto.
Una vez que tenemos la organización creada, haremos click en "Create project" o "Crear proyecto":
Creación del proyecto
3.- CREACIÓN DEL REPOSITORIO DE CÓDIGO
La pipeline, estará almacenada y versionada dentro de un repositorio de git en el propio Azure DevOps. Para ello, crearemos primeramente el repositorio haciendo click en "Repos" y posteriormente inicializaremos el repositorio haciendo click en "Initialize":
Creación del repositorio Git
Una vez inicializado el repositorio, se creará el primer fichero de ejemplo llamado README.md. Este fichero es solo informativo y no lo vamos a utilizar en este ejemplo, pero git necesita al menos un fichero dentro del repositorio:
Readme.md creado en el repositorio
4.- CREACIÓN DE LA PIPELINE
Para crear la pipeline haremos click en Pipelines, por ejemplo, en el menú izquierdo o en otra parte donde veamos el link:
Menú de sumario
Desde pipelines, podremos ver y crear las pipelines:
Crear la primera Pipeline DevOps Azure
El siguiente paso será seleccionar donde tenemos nuestro código. En este ejemplo, como no tenemos aún código fuente, todo lo vamos a guardar en un repositorio de git dentro de Azure, incluidas las pipelines, por tanto seleccionamos la primera de las opciones:
Seleccionar donde está el código
Seleccionaremos el repositorio creado en los pasos anteriores:
Seleccionar el repositorio Git
A continuación, podréis crear una nueva pipeline o seleccionar una que ya esté creada. En este ejemplo seleccionaremos "Starter pipeline" para crear una plantilla con el típico "Hola mundo":
Crear una "starter pipeline"
La pipeline se componen de varias secciones:
trigger:
- main
- trigger: Define en qué rama del repositorio se debe ejecutar automáticamente el pipeline.
- main: Especifica que este pipeline se ejecutará cada vez que haya un cambio en la rama main.
pool:
vmImage: ubuntu-latest
- pool: Indica en qué entorno o agente se ejecutará el pipeline.
- vmImage: ubuntu-latest: Especifica que se utilizará una máquina virtual preconfigurada con la última versión de Ubuntu.
steps:
- script: echo Hello, world!
displayName: 'Run a one-line script'
- script: Define un comando o script que se ejecutará en el agente.
- echo Hello, world!: Es el comando que se ejecutará, imprime "Hello, world!" en la consola.
- displayName: Nombre amigable del paso que se verá en la interfaz del pipeline (Run a one-line script).
- script: |
echo Add other tasks to build, test, and deploy your project.
echo See https://aka.ms/yaml
displayName: 'Run a multi-line script'
- script: Define otro script que se ejecutará.
- |: Indica que el script será multi-línea.
- echo Add other tasks...: Primera línea del script, imprime un mensaje en la consola.
- echo See https://aka.ms/yaml: Segunda línea del script, imprime otro mensaje.
- displayName: Nombre amigable del paso (Run a multi-line script).
La pipeline completa queda de la siguiente forma:
# Starter pipeline
# Start with a minimal pipeline that you can customize to build and deploy your code.
# Add steps that build, run tests, deploy, and more:
# https://aka.ms/yaml
trigger:
- main
pool:
vmImage: ubuntu-latest
steps:
- script: echo Hello, world!
displayName: 'Run a one-line script'
- script: |
echo Add other tasks to build, test, and deploy your project.
echo See https://aka.ms/yaml
displayName: 'Run a multi-line script'
Una vez que guardemos la pipeline y ejecutemos "Save and run", la pipeline se guardará en el repositorio y se pondrá en cola para su posterior ejecución:
Guardar y ejecutar la pipeline
Como puede verse, la pipeline se pone en cola antes de ejecutarse y aparece como job pendiente:
Pipeline en cola
Una vez ejecutada, podremos ir navegando por cada uno de los pasos y ver su ejecución:
Resultado de la pipeline
5.- MODIFICAR CÓDIGO DESDE VISUAL STUDIO CODE
Aunque no voy a explicar cómo importar vuestro repositorio de Git a Visual Studio Code, podréis hacer cambios en vuestra pipeline directamente desde Visual Studio Code y subir los cambios al repositorio de forma normal con git.
En el siguiente ejemplo cambiaremos:
- script: echo Hello, world!
Por:
- script: echo Hello, world from VScode!
Y subiremos los cambios desde Visual Studio Code:
Pipeline en Visual Studio Code
Una vez que hagáis el commit, la pipeline se ejecutará de forma automática como puede verse en la siguiente imagen en el segundo "run":
Segunda ejecución de la pipeline
Si accedemos al run (la ejecución), podréis ver que ahora el Hello, World! ha cambiado por Hello, world from VScode!:
Resultado de la segunda ejecución desde VS Code
ENJOY!