Uso de anillos de implementación con versiones de extensión

Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2019

Con los anillos de implementación, puede implementar y validar gradualmente los cambios en la extensión en producción, al tiempo que limita el efecto en los usuarios.

No se recomienda implementar en todos los entornos de producción al mismo tiempo, lo que expone a todos los usuarios a los cambios. Una implementación gradual expone a los usuarios a los cambios a lo largo del tiempo, validando los cambios en producción con menos usuarios.

En la tabla siguiente se muestran las diferencias de las áreas afectadas cuando se usan anillos frente a anillos sin anillos.

Sin anillos Área afectada Con anillos
Manual y propenso a errores Build Automatizado y coherente
Manual y propenso a errores Versión Automatizado y coherente
horas Tiempo de compilación (TTB) Segundos
Días Hora de lanzamiento (TTR) Minutos
Llamada desde el usuario Detección de problemas Proactivo
Días a semanas Solución del problema Minutos a días

Para más información, consulte Configuración de las canalizaciones de versión para implementaciones seguras.

Requisitos previos

  • Revise canalizaciones de CI/CD y Aprobaciones para obtener documentación detallada de canalizaciones y las características de aprobación de las versiones.

Asignación de tipos de usuario

Determine qué usuarios son más adecuados para cada tipo de usuario. Comunique la oportunidad de proporcionar comentarios y los niveles de riesgo en cada nivel, ya que es fundamental establecer expectativas y garantizar el éxito. En el ejemplo siguiente, los usuarios se dividen en tres grupos en producción:

  • Canaries: pruebe voluntariamente las características tan pronto como estén disponibles.
  • Usuarios pioneros: versiones preliminares voluntarias, consideradas más refinadas que los bits controlados.
  • Usuarios: consumen los productos, después de pasar a través de canarios y usuarios pioneros.

Anillos de usuario

Asignación de la topología

Asigne la topología de la extensión al modelo de implementación en anillo para limitar el impacto del cambio en los usuarios y proporcionar valor. En el caso de nuestras extensiones de comunidad de código abierto, principalmente usamos la implementación basada en anillos para exponer progresivamente una nueva versión a usuarios controlados, pioneros y usuarios.

En el nivel de aplicación, la composición de las extensiones de Azure DevOps es fácil de digestar, escalar e implementar de forma independiente.

Cada extensión realiza las siguientes tareas:

  • Tiene uno de más archivos web y de script
  • Interfaces con el cliente principal
  • Interfaces con el cliente REST y las API REST
  • Conserva el estado en la memoria caché o el almacenamiento resistente.

Exposición progresiva de la capa de aplicación

En el nivel de infraestructura, las extensiones se publican en Marketplace. Una vez que instale la extensión en su organización, se hospeda en el portal del servicio Azure DevOps, con el estado persistente en Azure Storage o en el almacenamiento de datos de extensión.

Exposición progresiva del nivel de infraestructura

La topología de extensión es perfectamente adecuada para el modelo de implementación de anillo y para publicar la extensión en cada anillo de implementación:

  • Una versión de desarrollo privada para el anillo controlado
  • Una versión preliminar privada para el anillo de adopción temprana
  • Una versión de producción pública para el anillo de usuarios

Sugerencia

Publique la extensión como privada para controlar la exposición a los usuarios invitados.

Mover los cambios a través de anillos de implementación

Consulte el siguiente flujo de ejemplo de movimiento de cambios a través de anillos de implementación.

Use la extensión Azure DevOps Developer Tools Build Tasks para empaquetar y publicar extensiones en Marketplace.

Anillos de extensión

  1. Un desarrollador del proyecto de extensión Countdown Widget confirma un cambio en el repositorio de GitHub .
  2. La confirmación desencadena una compilación de integración continua.
  3. La nueva compilación desencadena un desencadenador de implementación continua, que inicia automáticamente la implementación del entorno de Canaries .
  4. La implementación de Canaries publica una extensión privada en Marketplace y la comparte con organizaciones predefinidas. Solo los canarios se ven afectados por el cambio.
  5. La implementación de Canaries desencadena la implementación del entorno de adopción temprana. Una puerta de aprobación previa a la implementación requiere que cualquiera de los usuarios autorizados apruebe la versión. Aprobación previa a la implementación para el entorno de usuarios pioneros
  6. La implementación de Early Adopter publica una extensión privada en Marketplace y la comparte con organizaciones predefinidas. Tanto los canarios como los pioneros se ven afectados por el cambio.
  7. La implementación del usuario pionero desencadena la implementación del entorno Usuarios . Una puerta de aprobación previa a la implementación más estricta requiere que todos los usuarios autorizados aprueben la versión. Aprobación previa a la implementación para el entorno de usuario
  8. La implementación Usuarios publica una extensión pública en Marketplace. En esta fase, todos los usuarios que instalaron la extensión en su organización se ven afectados por el cambio.
  9. Es clave darse cuenta de que el efecto aumenta a medida que el cambio se mueve a través de los anillos. Exponer el cambio a los canarios y a los pioneros le ofrece dos oportunidades para validar los errores críticos de cambio y revisión antes de liberar a producción.

Supervisión de problemas

La supervisión y las alertas pueden ayudarle a detectar y mitigar problemas. Determine qué tipo de datos es importante, por ejemplo: problemas de infraestructura, infracciones y uso de características. Céntrese en alertas accionables para evitar que los usuarios los ignoren y falten problemas de alta prioridad.

Sugerencia

Comience con vistas de alto nivel de los datos, paneles visuales que puede ver desde lejos y explorar en profundidad, según sea necesario. Realice limpieza regular de sus vistas y quite todo el ruido. Un panel visual cuenta una historia mejor que una gran cantidad de correos electrónicos de notificación, a menudo filtrados y olvidados por reglas de correo electrónico.

Use Team Project Health y otras extensiones para crear información general sobre las canalizaciones, los tiempos de cliente potencial y ciclo, y recopilar otra información. En el panel de ejemplo, es evidente que hay 34 compilaciones correctas, 21 versiones correctas, 1 versión con error y 2 versiones en curso.

Panel de alto nivel en Azure DevOps

¿Hay alguna dependencia en las marcas de características?

No. A veces, es posible que necesite una determinada funcionalidad para implementarse como parte de una versión, pero no exponer inicialmente a los usuarios. Las marcas de características proporcionan un control específico de las características que se incluyen en el cambio. Por ejemplo, si no está totalmente seguro de una característica, puede usar marcas de características para ocultar la característica en uno o todos los anillos de implementación. Puede habilitar todas las características del anillo de canarios y ajustar un subconjunto para los primeros usuarios de adopción y producción, como se muestra en la siguiente imagen.

Marcas de característica

Para obtener más información, consulte Experimentación progresiva con marcas de características.

Preguntas más frecuentes

P: ¿Cómo sabe que se puede implementar un cambio en el siguiente anillo?

R: Debe tener una lista de comprobación coherente para los usuarios que aprueban una versión.

P: ¿Cuánto tiempo espera antes de insertar un cambio en el siguiente anillo?

No hay una duración fija ni un período de "esporádico". Depende del tiempo necesario para completar correctamente todas las validaciones de versión.

P: ¿Cómo administra una revisión?

R: El modelo de implementación de anillo le permite procesar una revisión como cualquier otro cambio. Cuanto antes detecta un problema, antes puede implementar una revisión sin ningún efecto en los anillos de bajada.

P: ¿Cómo se tratan las variables que abarcan entornos de versión compartida?

R: Consulte Variables de versión predeterminada y personalizada.

P: ¿Cómo puede administrar los secretos usados por la canalización?

R: Para proteger las claves criptográficas y otros secretos que usan las canalizaciones, consulte Azure Key Vault.