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 un caso práctico de entrega continua de Cloud Deploy.
El pipeline de distribución se define 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 para Skaffold, que Cloud Deploy necesita para realizar operaciones de renderizado y despliegue.
Puedes definir los objetivos en el archivo de configuración de la canalización o en uno o varios archivos independientes.
Registra tu canal con 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.
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
releaseque representa el manifiesto renderizado de cada destino. Cada uno de ellos se genera mediante el origen de renderización proporcionado, 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 recursorollout, 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 distribución 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.
Cuando quieras desplegar tu 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.
La promoción continúa en todos los destinos de la secuencia de promoción, el último de los cuales es
prod(o el nombre que uses para el destino 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 del flujo de trabajo, Cloud Deploy recoge métricas y detalles de auditoría.
Promoción
Promocionar una versión
es implementarla en el siguiente destino de la secuencia de promoción definida en tu
pipeline. 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 contenido en 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 sobre cómo usar las 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. El nuevo lanzamiento usa los mismos parámetros que se usaron en ese despliegue correcto.
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 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 Cloud Run y Google Kubernetes Engine, incluidos los clústeres adjuntos de GKE.
Si has usado principalmente herramientas de Google Cloud , tu flujo de origen a producción sería el siguiente: