Información general sobre Cloud Deploy

Cloud Deploy es un servicio gestionado que automatiza el envío de tus aplicaciones a una serie de entornos de destino en una secuencia de promoción determinada. Cuando quieras implementar la aplicación actualizada, crea una versión, cuyo ciclo de vida se gestiona mediante una pipeline de lanzamiento.

Cómo funciona una canalización de Cloud Deploy

El flujo de trabajo de entrega de Cloud Deploy contiene la siguiente información:

  • Un nombre, que se usa para hacer referencia a la canalización de entrega, y una descripción.

  • La secuencia de promoción, que describe el orden en el que se debe implementar en los destinos configurados.

  • También puedes añadir etiquetas y anotaciones.

  • También puede incluir las definiciones de los objetivos.

Los destinos se pueden definir en el mismo archivo de configuración de la canalización de entrega o en uno o varios archivos independientes. Varias canalizaciones de distribución pueden usar el mismo objetivo u objetivos, pero un objetivo determinado solo se puede usar una vez en una canalización de distribución.

Proceso de entrega de Cloud Deploy

A continuación, se describe lo que ocurre en un escenario de entrega continua sencillo de Cloud Deploy.

  1. Puedes definir tu pipeline de entrega en un archivo de configuración YAML.

    Este archivo de configuración define la secuencia de promoción en la que se desplegará tu aplicación en una serie de destinos.

    También necesitas una configuración de Skaffold, que Cloud Deploy necesita para realizar operaciones de renderización y despliegue.

  2. Puedes definir los objetivos en el archivo de configuración de la canalización o en uno o varios archivos independientes.

  3. Registras tu canal de procesamiento en el servicio Cloud Deploy.

    Ahora que el servicio conoce tu aplicación, gestiona la implementación en los destinos según la secuencia de promoción que hayas definido.

  4. La salida de tu proceso de integración continua incluye una llamada a Cloud Deploy para iniciar tu flujo de procesamiento de entrega.

    Esta llamada crea un recurso release que representa el manifiesto renderizado de cada destino. Cada uno de ellos se genera mediante la fuente de renderización proporcionada, skaffold.yaml y referencias a imágenes de contenedor específicas que se van a desplegar. En esta primera llamada para crear una versión, Cloud Deploy crea automáticamente un recurso rollout, que asocia la versión con el primer entorno de destino. En función de ese lanzamiento, tu aplicación se desplegará en el primer destino.

    Puedes usar cualquier herramienta de integración continua siempre que genere una o varias imágenes de contenedor para proporcionárselas a tu canal de distribución de Cloud Deploy.

    Además, la llamada para crear una versión e invocar una canalización de lanzamiento no tiene por qué proceder de la herramienta de integración continua. Puede proceder de una secuencia de comandos o de cualquier sistema que responda a la finalización del proceso de integración continua.

  5. Cuando quieras desplegar la aplicación en el siguiente destino, llama a Cloud Deploy para promocionarla.

    En cada caso, la llamada para invocar la promoción hace que Cloud Deploy cree un nuevo lanzamiento.

  6. La promoción continúa en todos los objetivos de la secuencia de la promoción. El último es prod (o el nombre que uses para el objetivo final para poner la aplicación en producción).

    El proceso de creación y promoción de versiones se describe con más detalle en el artículo Arquitectura de servicio de Cloud Deploy.

Durante la ejecución de la canalización, Cloud Deploy recoge métricas y detalles de auditoría.

Promoción

Promocionar una versión significa implementarla en el siguiente destino de la secuencia de promoción definida en tu canalización. La primera llamada a Cloud Deploy crea un release y, a continuación, un recurso rollout que se usa para implementar en el primer destino de la secuencia de promoción. Cada llamada posterior para promocionar la versión da como resultado un lanzamiento a la siguiente versión de destino.

Aprobaciones

Puede especificar que se necesite una aprobación para promocionar cualquier destino. Por ejemplo, puede que quieras requerir aprobación para promocionar contenido en un destino de producción. Para requerir aprobación para un objetivo, define la propiedad requireApproval en la definición del objetivo.

Cuando un destino requiere aprobación, Cloud Deploy genera un mensaje de Pub/Sub que puede consumir un sistema integrado. Por ejemplo, un sistema de incidencias podría suscribirse al mensaje para iniciar un flujo de trabajo de aprobación.

Consulte Requerir aprobación para obtener más información sobre las promociones y cómo gestionar su aprobación.

Notificaciones

Cloud Deploy proporciona notificaciones de Pub/Sub para los siguientes eventos:

  • Renderización: inicio, éxito y error
  • Implementación: inicio, éxito y error
  • Aprobación obligatoria
  • Aprobación aprobada
  • Aprobación rechazada

Cloud Deploy usa un tema de Pub/Sub para enviar estas notificaciones.

Consulta más información en Usar notificaciones de Cloud Deploy.

Restauraciones

Cloud Deploy admite la reversión de la aplicación desplegada en cualquier destino. Una restauración en Cloud Deploy consiste en activar un lanzamiento en la última versión desplegada correctamente. La nueva implementación usa los mismos parámetros que se usaron en esa implementación correcta.

Consulta más información en el artículo Revertir una implementación.

Acerca de Skaffold y Cloud Deploy

Cloud Deploy usa Skaffold para las operaciones de renderizado, despliegue y verificación. Con Skaffold, también puedes conectar fácilmente tu bucle de desarrollo local a una canalización de entrega continua de Cloud Deploy.

Para obtener más información sobre cómo se integra Cloud Deploy con Skaffold, consulta la descripción general de Skaffold.

Cloud Deploy con otras Google Cloud herramientas

Cloud Deploy admite casi cualquier herramienta upstream en una canalización de CI/CD. Es decir, puedes usar cualquier entorno de desarrollo y repositorio de código fuente, cualquier sistema de integración continua y cualquier repositorio de artefactos.

Más adelante, Cloud Deploy se despliega en Google Kubernetes Engine, Cloud Run y GKE Enterprise.

Si has usado principalmente Google Cloud herramientas, tu flujo de origen a producción sería el siguiente:

  1. Usa Cloud Code para crear el origen de tu aplicación.

    Cloud Code amplía varios IDEs populares (VS Code, IntelliJ y Cloud Shell) para facilitar la creación de aplicaciones que se puedan desplegar y ejecutar enGoogle Cloud.

  2. Usa Skaffold para gestionar tu bucle de desarrollo local.

    Cloud Deploy usa Skaffold a través de Cloud Build para renderizar y desplegar tus archivos de manifiesto. Esta integración significa que debes mantener un archivo skaffold.yaml, pero no implica que tengas que incluir Skaffold en tu flujo de desarrollo local. Sin embargo, puedes aprovecharla para desarrollar continuamente.

  3. Compila tu aplicación con Cloud Build.

    Cloud Build te permite configurar una canalización de integración continua que se puede activar a partir de una confirmación en tu repositorio de código fuente. El resultado de Cloud Build serán artefactos, incluidas imágenes de contenedor implementables. Puedes añadir una llamada a Cloud Deploy para crear una versión e invocar tu canalización de distribución.

  4. Almacena tus artefactos en Artifact Registry.

    Cloud Deploy obtiene la imagen o las imágenes de contenedor de Artifact Registry, que te permite almacenar de forma centralizada artefactos y dependencias.

  5. Configura tu flujo de procesamiento de entrega en Cloud Deploy para que tome la imagen de contenedor y la despliegue en una progresión de n destinos.

    Cada uno de los destinos identificados en tu canal de distribución representa un clúster de GKE, Cloud Run o un clúster de GKE en el que se despliega tu aplicación.

  6. Gestiona tu aplicación en GKE, Cloud Run o GKE Enterprise.

    GKE es el Google Cloud entorno gestionado para ejecutar aplicaciones en contenedores en Kubernetes.

    Con Cloud Run, puedes ejecutar contenedores en un entorno sin servidor.

    GKE Enterprise ofrece una experiencia de desarrollo y operaciones coherente para entornos en la nube y on-premise.

  7. Monitoriza el rendimiento de tu aplicación con Google Cloud Observability.

    Google Cloud Observability ofrece monitorización y registro integrados para tu aplicación.

Siguientes pasos