David

En el corazón de la automatización y la integración continua/entrega continua (CI/CD) en Azure DevOps se encuentran las Service Connections. Estas configuraciones, son la llave que permite a los pipelines interactuar de forma segura y automatizada con una amplia gama de servicios externos, desde la nube de Azure hasta repositorios de código y herramientas de terceros.
¿Qué es service connection?
Es una configuración que permite a Azure DevOps interactuar con servicios externos y recursos. Piénsalo como una credencial almacenada de forma segura que le da permiso a tus pipelines (tanto de Build como de Release) para acceder y ejecutar tareas en otros sistemas.
Imagina que quieres desplegar tu aplicación en Azure App Service, o aprovisionar infraestructura en Azure, o incluso interactuar con un servidor Jenkins o un repositorio de Docker Hub. Para que Azure DevOps pueda hacer esto, necesita saber cómo autenticarse y acceder a esos servicios. Ahí es donde entran en juego las Service Connections.
En esencia, una Service Connection almacena la información de autenticación y autorización necesaria para conectar Azure DevOps con:
Otros servicios web y APIs: Utilizando diferentes métodos de autenticación como tokens, nombres de usuario y contraseñas, certificados, etc.
Proveedores de Nube: Como Azure (Azure Resource Manager, Azure Container Registry, Azure App Service, etc.), AWS, Google Cloud Platform.
Sistemas de Control de Versiones: Como GitHub, Bitbucket (aunque generalmente se configuran directamente como “Conexiones de Repositorio”, las Service Connections pueden ser necesarias para ciertas integraciones).
Servicios de Orquestación y Contenedores: Como Kubernetes, Docker Hub.
Herramientas de Gestión de Servicios de TI: Como ServiceNow.
Servidores Remotos: A través de SSH.
Esto significa que la seguridad no es algo que se “agrega” al final, sino que está integrada desde el inicio, permitiendo detectar y corregir vulnerabilidades mucho antes de que el software llegue al usuario final.
¿Cómo crear un service connections?
Ingresar a Azure DevOps, Project settings>service connections>New service connections

En este caso vamos a seleccionar Azure resource Manager

Conexión de Servicio de Azure Resource Manager (ARM):
Esta conexión se utiliza para interactuar con la capa de administración de Azure. Esto incluye la creación, modificación, eliminación y gestión de los propios recursos de Azure, como máquinas virtuales, App Services, bases de datos, redes virtuales, etc.
Crear service connection Azure container Registry (ACR):
Esta conexión se utiliza específicamente para autenticarse y acceder a tu registro de contenedores de Azure (ACR). Su función principal es permitir que Azure DevOps pueda hacer push a imágenes de Docker a tu ACR y pull (descargar) imágenes desde tu ACR para desplegarlas en otros servicios como Azure Kubernetes Service (AKS), Azure Container Instances (ACI) o Azure App Service (para contenedores).
