Estrategia de implementación verde azul en Kubernetes
También se conoce como un método de implementación de "tiempo de inactividad cero" porque, en este tipo de proceso, K8s produce una nueva POD en un nuevo entorno junto con una implementación existente en lugar de eliminar o reemplazar un POD existente.
Este enfoque de implementación permite la operación concurrente de dos entornos de producción idénticos. Uno es el entorno de producción que actualmente está en uso. Hace que cada tráfico de usuarios se indique como azul. Su clon en el otro entorno está vacante (verde). La configuración de la aplicación es utilizada por ambos.
La nueva versión de la aplicación se configura en una configuración verde y se pone a prueba en términos de rendimiento y funcionalidad. El tráfico de aplicaciones se desvía de azul a verde después de que los resultados de las pruebas tienen éxito. La nueva producción es entonces verde.
¿Cuál es el proceso de implementación verde azul en Kubernetes??
En Kubernetes, el proceso de implementación verde azulado es el siguiente:
Examinemos el proceso completo de implementación azul-verde con más detalle. Imagine que actualmente estamos usando la versión 1 de un programa, que se muestra en azul. Utilizamos implementaciones y vainas para ejecutar aplicaciones en Kubernetes. En la figura a continuación, puede ver la implementación azul en la que se usa la "versión 1". 'Pod 1', 'Pod 2' y 'Pod 3' también se pueden ver dentro del despliegue.
La siguiente versión, designada "Versión 2", se prepara para su uso. Por lo tanto, estamos desarrollando una nueva configuración de producción llamada Green (ver figura a continuación).
Resulta que en Kubernetes, simplemente necesitamos especificar una nueva implementación; La plataforma hace el resto. Debido a la operación normal continua del entorno azul, los usuarios aún desconocen la alteración. No notarán ningún cambio hasta que giremos el azul al tráfico verde.
Solo se sabe que los desarrolladores que disfrutan de asumir riesgos prueban la producción. Pero en este lugar, cualquiera puede hacer eso sin tener ningún peligro. En el mismo clúster de Kubernetes que el azul, podemos probar el verde a nuestra comodidad.
La versión 1 está en modo de espera, como se muestra a continuación. Mientras que, la versión 2 está activa en el verde. Vea la figura a continuación para comprender mejor este concepto. Aquí, puede ver que la implementación verde se pone a funcionar ahora. Todos los recursos utilizados por la implementación azul ahora son utilizados por la implementación verde. Puedes ver que no está sucediendo nada en la implementación azul.
Una vez que los usuarios se han cambiado de azul a verde y estamos satisfechos con el resultado, podemos eliminar el azul para liberar recursos. En la figura a continuación, solo puede ver que la implementación verde funcione con éxito.
Las implementaciones de color verde azulado son difíciles, como es de esperar. Tenemos que administrar la red mientras hacemos malabares con dos implementaciones a la vez. Afortunadamente, Kubernetes simplifica enormemente el proceso. Sin embargo, debemos hacer todo lo posible para automatizar el ciclo de liberación.
Actualización Despliegue verde azul
Se necesita más tiempo para terminar una implementación de color verde azulado que una actualización ordinaria. Esto se debe a que tuvimos que configurar los nuevos grupos y reinstalar todas nuestras aplicaciones; y se necesitan más fondos para actualizaciones. Como resultado, donde es factible, favorecemos una actualización estándar. El método de implementación azul verde se puede usar para actualizar algunas versiones o para aumentar nuestra confianza en las actualizaciones que incluyen cambios de ruptura. Debemos analizar cuidadosamente todos loselogs de los componentes que se actualizarán para determinar si existen cambios de ruptura.
Ventajas del uso de implementaciones de color verde azulado
Al desplegar en la producción, el empleo de esta estrategia tiene muchas ventajas.
Menos tiempo de inactividad
Antes de que un sistema se conecte, las implementaciones siempre requieren algo de tiempo. Blue Green nos brinda la capacidad de desplegar en producción y dirigir el tráfico a la nueva implementación una vez que está operativa y en vivo. Como resultado, no habrá tiempo de inactividad para los usuarios.
Reversión inmediata
Si el entorno azul en este escenario es el defectuoso, podemos redirigir todo nuestro tráfico al entorno verde, que tendrá la versión estable más reciente. También podemos permitir a nuestros desarrolladores resolver cualquier defecto en el lanzamiento más reciente. Una vez que el error haya sido reparado, el tráfico volverá a ser redirigido y se volverá a la implementación a Blue.
No afectar a los usuarios
Su usuario ni siquiera será consciente de que una implementación falló si lo hace.
Conclusión
Las implementaciones son una de las fases más cruciales del ciclo de vida del desarrollo de software, por lo que cada actividad dedicada a ellas debe considerarse y probarse cuidadosamente para asegurarse de que sea el ajuste ideal para la arquitectura y operaciones de nuestro sistema. Tenemos implementaciones verdes azules especialmente cubiertas en esta publicación. Uno de los métodos potenciales para implementar una aplicación para la producción es este. Como cualquier otro enfoque, tiene sus inconvenientes propios. Hemos discutido dicho tema en detalle y representación gráfica para ayudarlo a comprenderlo mejor.