Sviluppare applicazioni basate su container su Google Kubernetes Engine (GKE) può essere impegnativo quando ci sono decine di pipeline su più ambienti. Ed è qui che entra in gioco Google Cloud Deploy!
Cos'è Google Cloud Deploy?
Google Cloud Deploy è una soluzione di continuous delivery completamente gestita, scalabile e semplificata per GKE. Automatizza la distribuzione delle applicazioni in più ambienti target tramite una sequenza di promozione definita. Con Google Cloud Deploy puoi costruire pipeline CI/CD affidabili che automatizzano i job di build, deploy e render. Una pipeline Cloud Deploy include informazioni come il nome (usato per fare riferimento alla pipeline), la sequenza di promozione (usata per definire l'ordine di distribuzione ai target) e i target (informazioni opzionali). Inoltre, si integra facilmente con strumenti popolari come Gitlab CI, Jenkins, ecc. È accessibile tramite CLI e API e porta Skaffold (uno strumento da riga di comando che facilita lo sviluppo continuo per applicazioni native di Kubernetes) nelle tue pipeline, migliorandone l'affidabilità.
Casi d'Uso di Google Cloud Deploy
Alcuni dei principali casi d'uso di Google Cloud Deploy sono i seguenti:
Continuous Delivery Semplificata: Cloud Deploy è molto utile per avere una continuous delivery semplice ed efficace su Google Kubernetes Engine (GKE). Puoi creare release e avanzarle attraverso gli ambienti, come test, produzione e staging. Inoltre, la sua API, CLI o console web possono essere usate per eseguire rollback e promozioni delle release in un unico passaggio.
Soluzione Integrata: Cloud Deploy è una piattaforma di deployment GKE strettamente integrata. È preintegrata con Cloud Audit Logs, Cloud Logging e IAM. In questo modo è efficace per ottenere tracciabilità con Cloud Audit Logs, monitorare gli eventi di release con Cloud Logging e bloccare le progressioni delle release tramite IAM.
Scalabile e Completamente Gestita: Cloud Deploy è un servizio completamente gestito, il che significa nessuna costosa infrastruttura da configurare e mantenere per la pipeline CD su GKE. Può scalare i processi CD in modo fluido e garantirne la gestione tramite una semplice configurazione dichiarativa. Aiuta anche ad avere una vista centralizzata di tutte le pipeline!
Un esempio di deployment
Vediamo come funziona Google Cloud Deploy imparando a registrare una delivery pipeline. Per registrare la delivery pipeline, devi eseguire gcloud beta deploy apply per ogni file di configurazione della pipeline. Quindi il comando per registrare la delivery pipeline con Cloud Deploy inclusi i suoi target (il cluster specifico e la sua configurazione in cui distribuire l'applicazione) è il seguente (i flag --region e --project sono opzionali):
gcloud beta deploy apply --file=PIPELINE_CONFIG \
--region=LOCATION \
--project=PROJECTLa struttura di un file clouddeploy.yaml è la seguente:
apiVersion: deploy.cloud.google.com/v1beta1
kind: DeliveryPipeline
metadata:
name:
annotations:
labels:
description:
serialPipeline:
stages:
- targetId:
profiles: []
- targetId:
profiles: []
---
apiVersion: deploy.cloud.google.com/v1beta1
kind: Target
metadata:
name:
annotations:
labels:
description:
requireApproval:
gke:
cluster: projects/[project_name]/locations/[location]/clusters/[cluster_name]
executionConfigs:
- privatePool:
workerPool:
serviceAccount:
artifactStorage:
usages:
- [RENDER | DEPLOY]
- defaultPool:
serviceAccount:
artifactStorage:
usages:
- [RENDER | DEPLOY]
---Per saperne di più su come utilizzare Google Cloud Deploy, visita la sua guida ufficiale.
Riepilogo
Quando si tratta di semplificare la continuous delivery su Google Kubernetes Engine (GKE), Google Cloud Deploy rappresenta una scelta ideale per le organizzazioni. Essendo un servizio completamente gestito, facilmente scalabile e integrabile, rende le release e i deployment un processo efficiente e fluido.
lucavallin



