Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Next »

Introducción

En este post veremos las herramientas que componen la suite Azure DevOps.

image-20241001-145745.png

Pasos previos

En primer lugar, se debe crear una cuenta en Azure y después crear una instancia de Azure DevOps (https://azure.microsoft.com/es-es/products/devops )

image-20240827-113620.png

Donde crearemos la organización y dentro el proyecto:

image-20240827-114010.pngimage-20240827-122953.png

Azure Repos

Azure Repos es un repositorio de código privado. que cumple el estándar Git.

Su funcionamiento dno se diferencia demasiado de cualquier otro repositorio de código Git, responde a los mismos comandos y presenta un formato similar:

image-20240827-123546.png

En este caso se ha hecho un clonado del repositorio test-op:

image-20240827-123834.png

Los commits, la gestión de ramas y de tags son muy similares a GitLab/GitHub:

image-20240829-122019.pngimage-20240829-122031.pngimage-20240829-122119.png

La autenticación de Azure Repost está integrada con el AD de Azure.

La configuración de permisos del repositorio se realiza mediante grupos que aplican también al resto de herramientas de la Suite:

image-20240827-133021.png

Para una configuración exclusiva del Azure Repos, existe esta opción:

image-20240827-133054.png

Azure Pipelines

Azure Pipelines es el servidor de automatización de Azure DevOps, combina la integración continua, pruebas continuas y la entrega continua.

El funcionamiento de Azure Pipelines es muy similar a Jenkins, aunque opta por YAML como lenguaje de scripting.

image-20240828-105140.png

Al crear un pipeline, se le puede indicar de donde coger el código del pipeline.

image-20240828-105359.png

En el pipeline se podrá elegir la imagen que tiene el agente, los diferentes steps que tenemos y partes de script que se lanza en cada step (como en Jenkins):

image-20240828-105615.png

A la hora de crear el pipeline, tendremos un apartado de tareas predefinidas (en el asistente) que nos pueden ayudar a la hora de crearlo (ej: curl para subir un fichero, conexion ssh contra una maquina, clonar un directorio git…):

image-20240829-103048.png

Una vez lanzas un pipeline, tendremos un apartado de información donde podremos ver quien ha ejecutado ese pipeline, cuando, como ha ido el proceso, por que ha fallado, etc:

image-20240829-074930.png

Podremos ver el log del pipeline que se ha ejecutado al igual que en Jenkins, job por job:

image-20240829-103452.png

O el log de manera completa:

image-20240829-103435.png

Ademas de incluso poder descargarlos:

image-20240829-103608.png

Se podrá ver el histórico de lanzamientos:

image-20240829-074954.png

Si nos fijamos, nos da bastante informacion como el nombre de pipeline, el usuario que lo lanzo (dentro de esa ejecucion sale el nombre completo), el proyecto, la rama de la que esta tirando (develop/master/another…) y el commit de esa rama por si hubo cambios posteriores, duraccion y si hubo exito:

image-20240829-104054.png

En el apartado de Library podremos añadir diferentes cosas; por ejemplo variables de entorno globales que queramos utilizar en diferentes pipelines o claves privadas:

image-20240828-110219.png

Para las claves privadas habría que cambiar en Library al apartado de Secure Files.

image-20240829-103708.png

Para poder lanzar estos pipelines puedes utilizar diferentes recursos como un entorno de Kubernetes (AKS) que ya tengas, maquinas virtuales con Azure o los agentes de Azure:

image-20240828-110509.png

En cuanto a la seguridad, podremos definir diferentes grupos de usuarios los cuales tendran definidos diferentes permisos para manejar los pipelines:

image-20240829-102539.png

Entre esos permisos estan: crear pipeline, borrar pipelines, borrar ejecuciones, parar ejecuciones, lanzar ejecucciones etc:

image-20240829-102556.png

Azure Artifacts

En este caso, Azure Artifacts ofrece una funcionalidad similar a Nexus (en la versión gratuita solo permite 2GB):

image-20240829-082529.png

Por ejemplo, para subir artefactos de Maven sería siguiendo estas instrucciones:

image-20240829-082936.png

Creando el token como indica en la documentación:

image-20240829-083334.png

Para indicar el usuario y token, se debe crear un fichero settings.xml que se debe configurar al realizar el deploy (en este caso se ha definido un profile “testArtifact para no modificar el resto de configuración existente):

mvn deploy -PtestArtifact -s ../settings.xml
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
                              https://maven.apache.org/xsd/settings-1.0.0.xsd">
  <servers>
    <server>
      <id>testArtifact</id>
      <username>prubiog</username>
      <password>TOKEN</password>
    </server>
  </servers>
</settings>
image-20240829-101110.png

GitHub Advanced Security

Esta funcionalidad no se ha podido probar ya que requiere tener una suscripción no gratuita para poder activarla en Azure Repos. Sería similar a lo que ofrece SonarQube. Se habilitaría en esta opción de configuración:

image-20240829-081136.png

Azure Boards

Ofrece una interfaz y funcionalidad similar al Planner de Microsoft o a un tablero Trello, con capacidad de ordenar las tareas, definir sprints, etc:

image-20240828-121632.png

En esta parte también se definen las pruebas, que se podrán ejecutar en la parte de Azure Test Plans:

image-20240828-122124.pngimage-20240828-122120.png

Azure Test Plans

Una vez definidas esas pruebas en la parte de Azure Boards, se habilita el plan de pruebas en la parte de Azure Test Plans. En este sentido, esta dependencia le quita capacidad a la herramienta al depender de lo definido en Azure Boards, dependiendo de las Issues o Tasks definidas allí.

image-20240828-122254.png

Una vez vistas las pruebas definidas, se pueden ejecutar, con los pasos definidos en cada una de ellas y marcando cada una como ejecutada correctamente, fallada, bloqueada o no aplica. Permite la ejecución desde otra ventana del navegador donde aparecen los pasos o también con una aplicación de escritorio que permite descargar.

image-20240828-122327.pngimage-20240828-122431.png

Azure Container Registry (fuera de la suite)

El ACR es un recurso que no está en la suite de Azure DevOps se crea como un recursos más en la consola de Azure. Primero se debe crear un grupo de recursos y dentro del mismo se pueden crear diferentes tipos, incluido el “registro de contenedor” (aparece buscando registry en el buscador de recursos). La configuración es básica, ya que en el plan gratuito apenas deja personalizar ningún aspecto:

image-20240828-125542.pngimage-20240828-125612.pngimage-20240828-125429.png

Para subir una imagen, es bastante sencillo, solamente hay que hacer login con el cliente de azure (azure-cli) y eso permite conectar con el registry, pudiendo tagear una imagen y subirla al registro:

image-20240828-134442.pngimage-20240828-134446.png

Ofrece servicios de autenticación mediante token (para clústers de kubernetes por ejemplo) y también permite replicación geográfica para cumplir con la alta disponibilidad. Además, integra Microsoft Defender que permite analizar las imágenes subidas en busca de vulnerabilidades:

image-20240828-135250.pngimage-20240828-135610.png

  • No labels