Cómo hacer la implementación de Kubernetes Blue Green

Cómo hacer la implementación de Kubernetes Blue Green
En este artículo, hablaremos sobre las implementaciones de color verde azulado de Kubernetes y por qué usarlas es la mejor opción. Kubernetes es, sin duda, la plataforma ideal para las implementaciones de color verde azulado. Por ejemplo, podríamos usar la plataforma para implementar la aplicación, cambiar el tráfico del usuario y luego eliminar el entorno azul después de crear dinámicamente el verde. Podemos usar Kubernetes para administrar todo el proceso de color verde azulado con una sola herramienta. Kubernetes ha aumentado significativamente la estandarización, pero su entorno dinámico requiere una adaptación continua. Entonces, comencemos discutiendo cómo se usa Kubernetes para construir implementaciones.

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:

  1. El color indica la versión actual de la aplicación (E.G Azul)
  2. Se utilizan nuevas vainas para la implementación y está etiquetada en el nuevo color (i.mi., verde)
  3. Aunque ambas versiones están disponibles simultáneamente, el servicio Kubernetes todavía apunta a la versión anterior/azul, por lo tanto, no todos los usuarios del sistema aún han sido conscientes del cambio.
  4. En la nueva versión, se pueden realizar muchas pruebas sin afectar a los clientes actuales.
  5. El servicio Kubernetes se cambia y ahora apunta a la nueva versión después de un período definido por el usuario. Ahora, la nueva capacidad está disponible para todos los usuarios activos sin interrupciones.

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.