Integración de DevTest Labs y canalizaciones de CI/CD de DevOps
DevOps es una metodología de desarrollo de software que integra el desarrollo de software (Dev) con las operaciones (Ops) del sistema. El sistema ofrece nuevas características de software, actualizaciones y correcciones que se alinean con los objetivos empresariales.
La metodología de DevOps también abarca lo siguiente:
- Diseño de nuevas características basadas en objetivos, patrones de uso y comentarios de los clientes.
- Corrección, recuperación y protección del sistema cuando se producen problemas.
Un componente de la metodología de DevOps es la canalización de integración continua (CI) y entrega continua (CD). Una canalización de CI/CD mueve información, código y recursos de una confirmación de control de código fuente mediante una serie de pasos para generar el sistema. Los pasos incluyen la compilación, la prueba y la versión.
Puede usar Azure DevTest Labs en canalizaciones de CI/CD. En este artículo se describe el uso de DevTest Labs en canalizaciones de compilación y versión de CI/CD en un entorno empresarial.
Ventajas de DevTest Labs en flujos de trabajo de DevOps
Un laboratorio debe centrarse en un equipo que trabaja en un área de características. Este enfoque común permite cambios más rápidos al tiempo que limita los efectos negativos a un grupo más reducido. Los cambios o problemas se suceden en el entorno de laboratorio, sin afectar a nada más.
El enfoque común admite el uso compartido de recursos específicos del área, como herramientas, scripts o plantillas de Azure Resource Manager (ARM). Los desarrolladores pueden usar recursos compartidos para crear máquinas virtuales (VM) con todo el código, las herramientas y la configuración que necesitan. Las plantillas de ARM crean máquinas virtuales de laboratorio y entornos de laboratorio con los recursos de Azure adecuados. Las plantillas crean recursos de forma dinámica o mediante la creación de imágenes base con personalizaciones.
Por ejemplo, considere un escenario en el que el producto es un sistema independiente que se instala en la máquina de un cliente. DevTest Labs puede crear máquinas virtuales de laboratorio que tengan instalado software, artefactos y configuraciones de cliente, para realizar pruebas rápidas de código de bucle interno.
Estas son algunas de las ventajas de usar de laboratorios en flujo de trabajo de DevOps:
Acceso centrado: el uso de un laboratorio como componente asocia un ecosistema específico a personas concretas. Normalmente, a un equipo o grupo que trabaja en un área común o una característica específica se le asigna un laboratorio.
Replicación de infraestructura en la nube: un desarrollador puede configurar rápidamente un ecosistema de desarrollo que incluya una máquina virtual para desarrolladores con código fuente y herramientas. Un desarrollador también puede crear un entorno prácticamente idéntico a la configuración de producción, para un desarrollo de bucle interno más rápido.
Entornos de preproducción: un laboratorio de la canalización de CI/CD puede ejecutar varios entornos o máquinas de preproducción diferentes al mismo tiempo, para pruebas asincrónicas. Puede implementar y administrar diferentes infraestructuras de soporte técnico y crear agentes en un laboratorio.
Uso de laboratorios en canalizaciones de CI/CD
La canalización de CI/CD es un componente crítico de DevOps. La canalización integra el código de la solicitud de incorporación de cambios de un desarrollador con el código existente y lo implementa en el ecosistema de producción. Para la integración de DevTest Labs, no todos los recursos deben estar en un laboratorio. Por ejemplo, podría configurar un host de Jenkins fuera del laboratorio para un recurso más persistente. Estos son algunos ejemplos específicos de la integración de laboratorios en la canalización de CI/CD.
Compilar
La canalización de compilación crea un paquete de componentes para probarlos de forma conjunta y entregarlos a la versión. La creación dinámica de infraestructura permite un mayor control. Los laboratorios pueden formar parte de la canalización de compilación como ubicaciones para los agentes de compilación y otros recursos de soporte técnico. DevTest Labs puede restringir el acceso al laboratorio, lo que aumenta la seguridad de los agentes de compilación y reduce la posibilidad de daños accidentales.
Con la capacidad de tener varios entornos en un laboratorio, cada compilación se puede ejecutar de forma asincrónica. El identificador de compilación forma parte de la información del entorno que identifica de forma única los recursos de una compilación específica.
Prueba
Una canalización de CI/CD puede automatizar la creación de recursos de DevTest Labs como máquinas virtuales y entornos para pruebas manuales y automatizadas. La canalización usa artefactos de información de compilación o fórmulas para crear máquinas virtuales con diferentes configuraciones de prueba personalizadas.
Release
El proceso de versión puede usar DevTest Labs para la comprobación antes de implementar el código. El proceso es similar a las pruebas. Los recursos de producción no se deben implementar en DevTest Labs.
Personalización
Azure Pipelines, un componente de Azure DevOps Services, tiene tareas existentes para manipular máquinas virtuales y entornos dentro de laboratorios específicos. Azure Pipelines es una manera de administrar la canalización de CI/CD. Puede integrar un laboratorio en cualquier sistema que admita llamadas a las API REST, la ejecución de scripts de PowerShell o el uso de la CLI de Azure.
Algunos administradores de canalización de CI/CD tienen complementos de código abierto existentes que pueden administrar recursos de Azure y DevTest Labs. Es posible que tenga que usar scripting personalizado para ajustarse a las necesidades de la canalización. Al ejecutar una tarea, use una entidad de servicio con el rol adecuado, normalmente el de Colaborador, para acceder al laboratorio.