Arquitectura del servicio de Google Cloud Deploy

En este documento, se describen las relaciones entre Google Cloud Deploy y los sistemas externos con los que trabaja para implementar tus aplicaciones. Estos sistemas son otros servicios de Google Cloud y herramientas de terceros.

La vista de alto nivel

En el siguiente diagrama, se muestran las relaciones entre Google Cloud Deploy y los sistemas independientes de los que depende.

Relaciones entre los componentes de Cloud Deploy

Como se muestra en este diagrama, Google Cloud Deploy interactúa con los siguientes sistemas:

  • Tu sistema de CI

    Google Cloud Deploy admite la mayoría de las herramientas de CI, siempre que un resultado de tu proceso de CI pueda llamarse a la API o la CLI de Google Cloud Deploy para crear una versión.

  • Cloud Build

    Google Cloud Deploy llama a Cloud Build para procesar los manifiestos e implementar en el entorno de ejecución de destino.

  • Skaffold

    Google Cloud Deploy usa Skaffold a través de Cloud Build para procesar e implementar tus manifiestos, lo que permite implementar tu aplicación.

  • Cloud Storage

    Google Cloud Deploy almacena los orígenes de renderización y los manifiestos procesados en un bucket de Cloud Storage.

  • Google Cloud's operations suite y Cloud Audit Logs

    Google Cloud's operations suite recopila y pone a disposición los datos de registro para Google Cloud Deploy.

    Consulta también Registro de auditoría.

  • Pub/Sub

    Google Cloud Deploy publica mensajes para varios temas de Pub/Sub. Puedes usar este servicio para integrar en flujos de trabajo externos, pruebas y otros sistemas relacionados.

    Consulta Suscribirse a las notificaciones de implementación de Google Cloud para obtener más información.

  • Entorno de ejecución de destino

    Google Cloud Deploy usa skaffold apply, a través de Cloud Build, para implementar tus aplicaciones en tu entorno de ejecución de destino (GKE).

Cómo encajan juntos para entregar tu versión

En esta sección, se describe cómo interactúa Google Cloud Deploy con los componentes enumerados en este documento para automatizar la entrega de tu aplicación como una versión.

  1. Tu sistema de CI invoca una canalización de entrega de Google Cloud Deploy.

    El proceso de CI llama a Google Cloud Deploy mediante la CLI o la API para crear una versión nueva y pasar los artefactos de compilación o las referencias a imágenes.

    Para obtener más información sobre la integración del sistema de CI, consulta Integra Google Cloud Deploy en otros sistemas.

  2. Cuando se crea una versión nueva, Google Cloud Deploy realiza las siguientes acciones:

    1. Almacena una instancia de la canalización de entrega como parte de la versión.

      La instancia de canalización no se modifica para esta versión, incluso si se cambia la configuración de la canalización de entrega. Consulta Instancias de canalización por versión para obtener más información.

      Además, la versión de Skaffold se almacena como parte de la versión.

    2. Llama a Cloud Build, que obtiene la fuente de procesamiento de Skaffold desde Cloud Storage.

      Google Cloud Deploy almacena la fuente de procesamiento en el bucket de Cloud Storage predeterminado o alternativo.

    3. Llama a skaffold diagnose (mediante la versión de Skaffold almacenada en la creación de la versión) para generar un manifiesto efectivo único.

    4. Llama a skaffold render para procesar el manifiesto con las imágenes o los artefactos de compilación proporcionados.

      Google Cloud Deploy sustituye los nombres de imagen en spec.templates.spec.containers.image por las rutas de imagen completas (incluidos los resúmenes o las etiquetas) proporcionadas en el comando gcloud deploy releases create o en un archivo de artefactos de compilación al que se hace referencia mediante ese comando.

      Google Cloud Deploy almacena el manifiesto procesado en el bucket de Cloud Storage predeterminado o alternativo.

      Google Cloud Deploy realiza estas acciones con el entorno de ejecución predeterminado o alternativo.

    5. Cuando se invoca Google Cloud Deploy desde la CLI para crear una versión, se crea y, luego, se implementa de forma automática en el primer destino, mediante una llamada a skaffold apply.

      El proceso de implementación en el primer objetivo es el mismo que para las promociones, como se describe en el paso siguiente.

  3. Cuando es momento de promover la versión al siguiente destino, Cloud Build recupera el manifiesto específico del destino de Cloud Storage. Luego, Cloud Build invoca skaffold apply para aplicar el manifiesto procesado al entorno de ejecución de destino especificado.

    Si el objetivo requiere aprobación, puedes aprobar o rechazar la CLI a través de Console o usar Console.

    Además, Google Cloud Deploy genera un mensaje de Pub/Sub al que puedes suscribirte para iniciar un flujo de trabajo de aprobación de forma automática.

    Google Cloud Deploy usa la versión de Skaffold y la instancia de canalización asociadas con esta versión, y realiza este paso en el entorno de ejecución predeterminado o personalizado.

    Este proceso se aplica a las promociones y a las reversiones y reimplementaciones.

  4. En las operaciones de implementación de Google Cloud, el servicio publica notificaciones en varios temas de Pub/Sub (por ejemplo, cuando un lanzamiento requiere aprobación).

    Esta y otras integraciones se describen con más detalle en Integra Google Cloud Deploy en sistemas externos.

  5. Durante la operación de implementación de Google Cloud, el servicio escribe registros de la plataforma yRegistros de auditoría a Google Cloud's operations suite y a los registros de auditoría de Cloud.

A través de todos estos pasos, el control de flujo y el acceso a los recursos están restringidos mediante la Identity and Access Management.

¿Qué sigue?