¿Qué es la entrega progresiva y cómo afecta a las arquitecturas de microservicios?

La entrega progresiva es una metodología de desarrollo que mejora la integración continua y la entrega continua (CI/CD) y permite la transformación DevOps. El objetivo de la entrega progresiva es obtener un mayor control sobre el desarrollo, la entrega y las versiones para poder enviar el código más rápidamente, al tiempo que se reduce el riesgo y se mejora la experiencia del usuario final. Pero, ¿qué es la entrega progresiva y cómo puede utilizarse en arquitecturas de microservicios? Responderemos a estas preguntas comunes y proporcionaremos consejos para implementar la entrega progresiva en su SDLC.

¿Qué es la entrega progresiva?

La entrega progresiva se centra en el control. Proporciona mecanismos para controlar la entrega automatizada y la liberación de nuevo código para que puedas practicar CI/CD de forma segura. La entrega progresiva implica controlar cuándo se liberan las nuevas características, quién puede liberarlas y a qué usuarios afectan las actualizaciones.

Los dos principios básicos de la entrega progresiva son:

1. Progresiones de liberación

Las progresiones de lanzamiento pueden limitar qué usuarios finales reciben actualizaciones, permitiendo un lanzamiento incremental de nuevas características. Pueden establecerse puertas o puntos de control para realizar pruebas y recoger comentarios. Además, estas barreras de seguridad pueden limitar el impacto de los problemas a un subgrupo más pequeño de usuarios en lugar de a toda la base de clientes. Por ejemplo, puede lanzar inicialmente una función al 5% de su población de usuarios mientras realiza pruebas y recoge opiniones de forma continua. Si todo va bien, podría aumentar gradualmente el radio de su lanzamiento al 10%, 20%, etc. Si se detectan o notifican problemas, se puede volver a una versión anterior hasta que se resuelvan. A continuación, puede volver a intentarlo y repetir la operación hasta que se haya implantado con éxito en todos los usuarios finales.

Relacionado:  ¿Es más difícil programar o ciberseguridad? Descubre la respuesta aquí

2. Delegación progresiva

La delegación progresiva traslada el control de una función a lo largo del ciclo de publicación a quien sea más responsable del resultado de la fase actual. Por ejemplo, durante la codificación, un ingeniero debería ser el propietario de la función. Cuando el código esté listo para su publicación, el ingeniero debe transferir la propiedad a alguien más cercano a los usuarios finales, como un gestor de producto.

La entrega progresiva permite a los equipos de DevOps aprovechar la velocidad de las herramientas automatizadas de entrega y despliegue sin afectar negativamente a la experiencia del cliente. También se puede utilizar para obtener un mayor control sobre los despliegues en arquitecturas de microservicios como Kubernetes.

Cómo utilizar la entrega progresiva en una arquitectura de microservicios

Hay un par de enfoques distintos para el despliegue progresivo de código en Kubernetes y otras arquitecturas de microservicios. Cada uno puede utilizarse por separado, pero a menudo se complementan cuando se utilizan juntos.

Mallas de servicios

Las mallas de servicio son similares a un despliegue azul-verde. Tienes la versión A de tu software, también conocida como la versión azul, que es la versión actual. Luego creas la versión B, también conocida como la versión verde, que es tu aplicación con la nueva característica o funcionalidad. Se utiliza una malla de servicios para dirigir a un pequeño subconjunto de usuarios (a menudo denominado «grupo canario») a la versión B, mientras que la mayoría de los usuarios siguen siendo dirigidos a la versión A. Suponiendo que la versión B supere todas las pruebas y genere comentarios positivos, la malla de servicios puede realizar un cambio de tráfico dirigiendo progresivamente a más y más usuarios a la nueva versión. Si las pruebas fallan o los usuarios informan de problemas, puede utilizar la malla de servicios para redirigir todo el tráfico a la versión antigua.

Relacionado:  Curso Google Ciberseguridad: Formación y Certificado en Ciberseguridad

Gestión de funciones

La gestión de características implica el uso de indicadores de características (también llamados «feature toggles») para limitar quién tiene acceso a una nueva versión. Antes de desplegar una nueva funcionalidad en un entorno de producción, se envuelve en un indicador de funcionalidad que identifica al grupo canario de usuarios permitidos. A continuación, diriges a tu grupo canario a esa función (quizás utilizando mallas de servicio), realizas tus pruebas canarias y recopilas comentarios. Si hay algún problema con esa nueva versión, un interruptor de desactivación puede poner el indicador de función en la posición «off», de modo que los usuarios ya no tengan acceso. Por otro lado, si la nueva función supera todas las pruebas y puntos de referencia, puedes seguir permitiendo progresivamente que cada vez más usuarios pasen por el indicador de función.

Uso de la entrega progresiva para liberar código más rápido y con mayor control

¿Qué es la entrega progresiva? Es una forma de desplegar nuevo código de forma automática y continua, manteniendo el control sobre cuándo, cómo y a quién se entrega. La entrega progresiva es especialmente beneficiosa para los equipos de DevOps que utilizan CI/CD para desplegar software en arquitecturas de microservicios como Kubernetes. Con las progresiones de lanzamiento y la delegación progresiva, puede mejorar el valor general de su producto garantizando que la velocidad de despliegue no afecte negativamente a su base de clientes.

Publicaciones Similares