El modelo de implementación azul-verde utiliza dos hosts de Docker que implementa y configura de manera idéntica en un clúster de Kubernetes. Con el modelo de implementación azul-verde, se reduce el periodo de inactividad que puede producirse en el entorno cuando las canalizaciones de Code Stream implementan las aplicaciones.
Cada una de las instancias de azul y verde del modelo de implementación tiene un objetivo diferente. Solo una instancia a la vez acepta el tráfico activo que implementa la aplicación y cada instancia acepta ese tráfico en momentos específicos. La instancia azul recibe la primera versión de la aplicación y la instancia verde recibe la segunda.
El equilibrador de carga del entorno azul-verde determina la ruta que toma el tráfico activo al implementar la aplicación. Al utilizar el modelo azul-verde, el entorno permanece operativo, los usuarios no experimentan ningún periodo de inactividad y la canalización integra e implementa la aplicación en el entorno de producción de forma continua.
La canalización que crea en Code Stream representa el modelo de implementación azul-verde en dos etapas. Una etapa es para el desarrollo y la otra etapa para la producción.
El área de trabajo de canalización de Code Stream admite Docker y Kubernetes para tareas de integración continua y tareas personalizadas.
Para obtener información sobre la configuración del área de trabajo, consulte Configurar el área de trabajo de la canalización.
Tipo de tarea | Tarea |
---|---|
Kubernetes | Cree un espacio de nombres para la implementación azul-verde. |
Kubernetes | Cree una clave secreta para Docker Hub. |
Kubernetes | Cree el servicio utilizado para implementar la aplicación. |
Kubernetes | Cree la implementación azul. |
Sondeo | Compruebe la implementación azul. |
Kubernetes | Elimine el espacio de nombres. |
Tipo de tarea | Tarea |
---|---|
Kubernetes | La instancia verde obtiene los detalles del servicio de la azul. |
Kubernetes | Obtenga los detalles del conjunto de réplicas verde. |
Kubernetes | Cree la implementación verde y use la clave secreta para extraer la imagen del contenedor. |
Kubernetes | Actualice el servicio. |
Sondeo | Compruebe que la implementación se haya completado correctamente en la URL de producción. |
Kubernetes | Finalice la implementación azul. |
Kubernetes | Elimine la implementación azul. |
Para implementar la aplicación en su propio modelo de implementación azul-verde, cree una canalización en Code Stream que incluya dos etapas. La primera etapa incluye las tareas azules que implementan la aplicación en la instancia azul, mientras que la segunda incluye tareas verdes que implementan la aplicación en la instancia verde.
Puede crear la canalización mediante la plantilla de canalización inteligente de CICD. La plantilla crea automáticamente las etapas y las tareas de la canalización e incluye las selecciones de implementación.
Si crea canalización de forma manual, debe planificar las etapas de la canalización. Para ver un ejemplo, consulte Planificar una compilación nativa de CICD en Code Stream antes de agregar tareas manualmente.
En este ejemplo, se utiliza la plantilla de canalización inteligente de CICD para crear la canalización azul-verde.
Requisitos previos
- Compruebe que puede acceder a un clúster de Kubernetes operativo en AWS.
- Asegúrese de que ha configurado un entorno de implementación azul-verde y que las instancias de azul y verde son idénticas.
- Cree un endpoint de Kubernetes en Code Stream que implemente la imagen de la aplicación en el clúster de Kubernetes en AWS.
- Familiarícese con la plantilla de canalización inteligente de CICD. Consulte Planificar una compilación nativa de CICD en Code Stream antes de usar la plantilla de canalización inteligente.
Procedimiento
Resultados
Enhorabuena. Utilizó la plantilla de canalización inteligente para crear una canalización que implementa la aplicación en las instancias azul-verde en el clúster de producción de Kubernetes en AWS.
Ejemplo: Ejemplo de código de YAML para algunas tareas de implementación azul-verde
El código de YAML que aparece en las tareas de canalización de Kubernetes para la implementación azul-verde puede ser similar a los siguientes ejemplos que crean el Espacio de nombres, el Servicio y la Implementación. Si necesita descargar una imagen de un repositorio privado, el archivo YAML debe incluir una sección con el secreto de configuración de Docker. Consulte la parte de CD de Planificar una compilación nativa de CICD en Code Stream antes de usar la plantilla de canalización inteligente.
Después de que la plantilla de canalización inteligente cree la canalización, puede modificar las tareas según sea necesario para su propia implementación.
Código de YAML para crear un espacio de nombres de ejemplo:
apiVersion: v1 kind: Namespace metadata: name: codestream-82855 namespace: codestream-82855
Código de YAML para crear un servicio de ejemplo:
apiVersion: v1 kind: Service metadata: labels: app: codestream-demo name: codestream-demo namespace: bluegreen-799584 spec: minReadySeconds: 0 ports: - port: 80 selector: app: codestream-demo tier: frontend type: LoadBalancer
Código de YAML para crear una implementación de ejemplo:
apiVersion: extensions/v1 kind: Deployment metadata: labels: app: codestream-demo name: codestream-demo namespace: bluegreen-799584 spec: minReadySeconds: 0 replicas: 1 selector: matchLabels: app: codestream-demo tier: frontend template: metadata: labels: app: codestream-demo tier: frontend spec: containers: - image: ${input.image}:${input.tag} name: codestream-demo ports: - containerPort: 80 name: codestream-demo imagePullSecrets: - name: jfrog-2 minReadySeconds: 0
Qué hacer a continuación
Para obtener más información sobre cómo puede usar Code Stream, consulte Tutoriales para usar Code Stream.
Para revertir una implementación, consulte Cómo revertir una implementación en Code Stream.
Para obtener más referencias, consulte Más recursos para desarrolladores y administradores de Code Stream.