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

« Previous Version 3 Current »

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.

Más info: https://azure.microsoft.com/es-es/products/devops/repos

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.

Más info: https://azure.microsoft.com/es-es/products/devops/pipelines

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-20241001-150746.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-20241001-150827.png

O el log completo:

image-20240829-103435.png

Se puede ver también el histórico de lanzamientos:

image-20240829-074954.png

En este histórico se muestra el nombre de pipeline, el usuario que lo lanzo, proyecto, rama de la que esta tirando (develop/master/another…) y el commit de esa rama por si hubo cambios posteriores, duración y si hubo éxito:

image-20240829-104054.png

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

image-20241001-151132.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 se tenga, máquinas 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 tendrán 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

Azure Artifacts es el repositorio de dependencias de Azure DevOps, por tanto puede compararse con Nexus.

Más info: https://azure.microsoft.com/es-es/products/devops/artifacts

La subida de artefactos se realiza siguiendo estos pasos (ejemplo Maven):

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

Github Advanced Security es la herramienta de Azure DevOps para la inspección continua de la calidad del código a través de diferentes herramientas (como SonarQube):

Más info: https://azure.microsoft.com/es-es/products/devops/github-advanced-security

Permite:

  • Examen de código para un análisis estático eficaz que le ayuda a encontrar y corregir vulnerabilidades en el código mientras lo escribe

  • Examen de dependencias para detectar componentes vulnerables de código abierto y ofrecer una guía de corrección sencilla

  • Examen de secretos para buscar secretos expuestos en el Azure Repos e impedir que se envíen nuevos secretos en el código

  • Conjunto de herramientas de pruebas de seguridad nativas de la plataforma Azure DevOps

Se habilitar en esta opción de configuración:

image-20240829-081136.png

Y permite por ejemplo:

image-20241001-153511.png

Azure Boards

Azure Boards permite a los equipos planear, realizar un seguimiento y analizar el trabajo en todo el proceso de desarrollo junto con metodologías ágiles.

Más info: https://azure.microsoft.com/es-es/products/devops/boards

Ofrece una interfaz y funcionalidad similar 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

Azure Test Plans proporciona herramientas para definir y ejecutar pruebas de forma sencilla permitiendo gestionar pruebas manuales, pruebas de aceptación del usuario, pruebas exploratorias y la recopilación de comentarios de las partes interesadas.

Más info: https://azure.microsoft.com/es-es/products/devops/test-plans

Una vez definidas las pruebas en la parte de Azure Boards, se habilita el plan de pruebas en la parte de Azure Test Plans.

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.

image-20241001-152647.pngimage-20240828-122431.png

Azure Container Registry

El ACR permite crear, almacenar, proteger, examinar, replicar y administrar imágenes de contenedor y artefactos con una instancia con replicación geográfica y totalmente administrada.

Más info: https://azure.microsoft.com/es-es/products/container-registry

ACR no forma parte de 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).

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

Para subir una imagen 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