Implementa en varios destinos al mismo tiempo

Con Cloud Deploy, puedes implementar en un destino que esté configurado para representan varios destinos, y tu aplicación se implementa en ellos paralelas (simultáneamente). El destino que identificas como etapa en tu canalización es llamado múltiples objetivos, y los destinos que comprenden varios destinos se denominan destinos secundarios.

Puedes usar la implementación paralela con cualquier tipo de destino que Cloud Deploy admite, incluidos Google Kubernetes Engine, Cloud Run y GKE Enterprise.

¿Por qué implementar en paralelo?

Puedes usar la implementación en paralelo, por ejemplo, para implementar tu aplicación múltiples objetivos de producción. En este caso, no es necesario que implementes objetivo en sucesión, porque no hay progresión (por ejemplo, de dev a de etapa de pruebas a producción).

Esta implementación paralela puede ser parte de una canalización de entrega normal progresión:
dev -> staging -> prod [prod1, prod2, prod3, prod4, ...]

Recursos de Cloud Deploy que se usan para implementaciones en paralelo

La implementación en paralelo usa la siguiente infraestructura especializada recursos:

  • varios destinos

    Un destino múltiple es aquel que se configura con la propiedad multiTarget. en el nivel superior del YAML de configuración de destino y, en lugar de hacer referencia al de entorno de ejecución o servicio, hace referencia a uno o más destinos, con multiTarget.targetIds

  • Destinos secundarios

    Un destino secundario es cualquier objetivo al que hace referencia un destino múltiple, como multiTarget.targetIds. El elemento secundario también debe hacer referencia a un tipo de destino compatible (Google Kubernetes Engine, GKE Enterprise o Cloud Run.

  • Lanzamientos del control

    Un lanzamiento del controlador es un lanzamiento que corresponde al multidestino.

    Consulta Limitaciones para obtener más información sobre lo que puedes y no puedes hacer con el lanzamiento del controlador.

  • Lanzamientos secundarios

    Consulta Limitaciones para obtener más información sobre lo que puedes y no puedes hacer con un lanzamiento secundario.

Configura la implementación paralela

Configurar una implementación paralela consiste en definir un destino múltiple y la cantidad de destinos secundarios que necesitas (hasta el límite). Objetivo son las mismas que las de todos los destinos, excepto por los siguientes:

  • Los destinos múltiples incluyen la propiedad multiTarget.
  • Los destinos secundarios no incluyen la propiedad multiTarget, pero se hace referencia a ellos del destino múltiple con la propiedad multiTarget.targetIds.
  • Puedes configurar los destinos múltiples para su aprobación, pero no los destinos secundarios. que no pueden incluir requireApproval:true.

Los destinos múltiples y secundarios pueden incluir entorno de ejecución parámetros de configuración. Si un destino secundario no especifica un entorno de ejecución, heredará el que se define en la definición de varios destinos o el predeterminado. Consulta Implementación en paralelo y entornos de ejecución para obtener más información.

Configura el destino múltiple

Un destino múltiple es un objetivo único que se identifica como una etapa de tu publicación pero que apunta a uno o más destinos secundarios.

La configuración de varios destinos incluye la propiedad multiTarget. R los destinos múltiples no pueden tener las propiedades gke, run ni anthosCluster. La configuración de un destino múltiple es la misma, independientemente del entorno de ejecución la implementación.

En el YAML de tu canalización de entrega o en un archivo YAML independiente, crea la definición de destino básica, que incluya multiTarget:

apiVersion: deploy.cloud.google.com/v1
kind: Target
metadata:
 name: TARGET_NAME
description: TARGET_DESCRIPTION
multiTarget:
 targetIds: [ CHILD_TARGET1, CHILD_TARGET2, CHILD_TARGETn ]

En este YAML...

  • TARGET_NAME es el nombre de este destino múltiple, que es usado en la definición de la canalización de entrega stages.targetId.

  • CHILD_TARGET1, CHILD_TARGET2,...CHILD_TARGETn son las los nombres de los destinos secundarios en los que se implementan estos destinos múltiples. Cada nombre corresponde a la propiedad name en la definición del destino secundario.

La presencia de la propiedad multiTarget.targetIds hace que este destino sea un con varios destinos.

Configura los destinos secundarios

Por cada objetivo identificado como secundario en tu configuración de varios destinos, configura otro como objetivo secundario:

En tu YAML de canalización de entrega o en un archivo YAML, crea la definición de destino básica:

GKE

apiVersion: deploy.cloud.google.com/v1
kind: Target
metadata:
 name: CHILD_TARGET1
description: TARGET_DESCRIPTION
gke:
 cluster: projects/PROJECT_ID/locations/REGION/clusters/CLUSTER_NAME

En este YAML...

  • CHILD_TARGET1 es el nombre de este destino secundario. El de destino corresponde a un miembro de la lista de objetivos del La propiedad multiTarget.targetIds en la definición de varios destinos.

  • El valor de la propiedad gke.cluster es el nombre del recurso del clúster. al que hace referencia este destino, incluido el ID del proyecto, la región y el clúster de la fuente de datos.

Este destino se configura de la misma manera que un objetivo de GKE estándar. Lo único que hace de este un destino secundario es que La propiedad multiTarget.targetIds en el destino múltiple.

Cloud Run

apiVersion: deploy.cloud.google.com/v1
kind: Target
metadata:
 name: CHILD_TARGET1
description: TARGET_DESCRIPTION
run:
 location: projects/PROJECT_ID/locations/REGION

En este YAML...

  • CHILD_TARGET1 es el nombre de este destino secundario. El de destino corresponde a un miembro de la lista de objetivos del La propiedad multiTarget.targetIds en la definición de varios destinos.

  • El valor de la propiedad run.location es el nombre del recurso de la servicio de Cloud Run al que hace referencia este destino, incluidas las el ID del proyecto y la región.

Este destino se configura de la misma manera que una instancia de Cloud Run estándar objetivo. Lo único que hace de este un destino secundario es que se hace referencia por la propiedad multiTarget.targetIds en varios destinos.

GKE Enterprise

apiVersion: deploy.cloud.google.com/v1
kind: Target
metadata:
 name: CHILD_TARGET1
description: TARGET_DESCRIPTION
anthosCluster:
 membership: projects/PROJECT_ID/locations/global/memberships/MEMBERSHIP_NAME

En este YAML...

Este destino está configurado de la misma manera que una GKE Enterprise estándar objetivo. Lo único que hace de este un destino secundario es que se hace referencia por la propiedad multiTarget.targetIds en varios destinos.

Pasa parámetros de implementación a los destinos

Puedes diferenciar las segmentaciones secundarias si incluyes parámetros en tus el manifiesto y los valores en la definición de tu canalización de entrega. Esos valores pueden ser se aplican por separado al manifiestos separados, según la coincidencia de etiquetas en los destinos correspondientes.

Por ejemplo, podrías querer una cantidad diferente de réplicas para cada elemento secundario objetivo. Para ello, debes incluir los parámetros y valores en la la progresión de la canalización, junto con etiquetas en los destinos secundarios para que coincidan con cada par de valor del parámetro.

Obtén más información sobre los parámetros de implementación.

Crea la versión

Con objetivos múltiples y secundarios configurados, crear la canalización de entrega y los recursos de destino y, luego, crear una versión, como de costumbre.

El ciclo de vida de la canalización de entrega es el mismo que y destinos de Cloud Deploy, excepto que cuando llega a de destino con múltiples destinos, Cloud Deploy crea un controlador para el destino múltiple y un lanzamiento secundario para implementar la aplicación para cada destino secundario.

Mensajes de Pub/Sub en respuesta a operaciones de Cloud Deploy para distinguir entre lanzamientos de controladores y lanzamientos secundarios.

Limitaciones

  • Un destino múltiple no puede tener más de 50 destinos secundarios.

  • Todos los destinos secundarios de un único destino múltiple deben tener el mismo entorno de ejecución. (por ejemplo, todos GKE o GKE Enterprise).

  • En una canalización de entrega, un destino secundario solo puede tener un elemento superior con varios destinos.

  • Un destino múltiple no puede carecer de elementos secundarios ni puede hacer referencia a sí mismo ni a otro. como destinos secundarios.

  • No puedes usar un destino secundario más de una vez en una sola canalización de entrega. pero puedes reutilizarlos en una canalización diferente.

  • Los grupos predeterminados tienen de simultaneidad, pero los grupos privados no.

    Cuando se implementa en un destino múltiple, todos los lanzamientos secundarios se implementan en la misma hasta el límite de simultaneidad de Cloud Build. Si tienes más orientaciones secundarias que esa límite, los trabajos de implementación para algunos destinos no se ejecutarán hasta que otros finalicen, lo que significa que Cloud Deploy no se implementa en todos los destinos secundarios en el mismo tiempo, en este caso.

    Además, si los destinos incluyen tareas de verificación, es posible que uno o más de esos trabajos de verificación comiencen antes del se implementó en todos los destinos secundarios.

    Si necesitas realizar implementaciones de forma simultánea en más destinos que los límites especificadas en la documentación de Cloud Build, tienes dos opciones:

Implementación en paralelo y entornos de ejecución

Cada destino se puede configurar para usar un entorno de ejecución no predeterminado.

  • Si el destino múltiple tiene un entorno de ejecución no predeterminado, todos los destinos secundarios con el entorno de ejecución predeterminado, hereda el no predeterminado del varios destinos

  • Si el destino múltiple usa el entorno de ejecución predeterminado, cualquier destino secundario configurada con un entorno de ejecución no predeterminado, usa ese no predeterminada.

Estas reglas facilitan la propagación de entornos de ejecución a destinos secundarios de un destino múltiple, para que no tengas que definir ni cambiar la ejecución para cada destino secundario y, al mismo tiempo, te permite personalizar de ejecución para uno o más destinos secundarios, en caso de que lo necesites.

Consulta Usa los entornos de ejecución de Google Cloud Deploy para obtener más información sobre los entornos de ejecución en Cloud Deploy.

Revierte una implementación paralela

Si necesitas revertir un objeto Deployment desde múltiples destinos paralelos, Revierte el destino múltiple, como se describe en Revierte un objetivo.

Aprobaciones para la implementación en paralelo

Al igual que con cualquier destino, puedes configurar tu implementación paralela para que requiera aprobaciones. Sin embargo, con la implementación paralela, solo puedes configurar la aprobación en el con varios destinos. La aprobación o el rechazo afectan a todos los objetivos secundarios en conjunto.

Ver la implementación paralela en la consola de Google Cloud

Puedes ver los detalles de los destinos secundarios y múltiples, el controlador lanzamiento y lanzamientos secundarios en la consola de Google Cloud.

Cuando veas la lista de destinos de una canalización de entrega determinada, en la sección Publicación En los detalles de la canalización, se muestran los destinos múltiples, pero no los destinos secundarios. Sin embargo, cuando ves los detalles de la versión, puedes ver el lanzamiento del controlador y los lanzamientos secundarios. También puedes ver los lanzamientos secundarios y del controlador en el Pestaña Lanzamientos en la página de detalles de la canalización de entrega.

En el Inspector de versiones, puedes ver y diferenciar manifiestos renderizados para lanzamientos secundarios.

Usa la implementación paralela con una estrategia de implementación

Puedes implementar en paralelo cuando usas un estrategia de implementación de versiones canary. Consulta Usa la implementación paralela con una estrategia de implementación de versiones canary para obtener más información.

¿Qué sigue?