Panoramica di Google Cloud Deploy

Mantieni tutto organizzato con le raccolte Salva e classifica i contenuti in base alle tue preferenze.

Google Cloud Deploy è un servizio gestito che automatizza la distribuzione delle tue applicazioni in una serie di ambienti target in una sequenza di promozione definita. Se vuoi eseguire il deployment dell'applicazione aggiornata, devi creare una release, il cui ciclo di vita è gestito da una pipeline di distribuzione.

Come funziona una pipeline Google Cloud Deploy

La pipeline di distribuzione di Google Cloud Deploy contiene le seguenti informazioni:

  • Un nome che utilizzi quando fai riferimento alla pipeline di distribuzione e una descrizione.

  • Sequenza di promozione, che descrive l'ordine in cui eseguire il deployment nei target configurati.

  • (Facoltativo) Etichette e annotazioni.

  • Facoltativamente, sono le definizioni stesse del target.

I target possono essere definiti nello stesso file di configurazione della pipeline di distribuzione oppure in uno o più file separati. Più pipeline di distribuzione possono utilizzare lo stesso target o lo stesso target, ma un determinato target può essere utilizzato solo una volta in una determinata pipeline di distribuzione.

Il processo di distribuzione di Google Cloud Deploy

Di seguito è riportata una descrizione di ciò che accade in un semplice scenario di distribuzione continua di Google Cloud Deploy.

  1. Puoi definire la pipeline di distribuzione in un file di configurazione YAML.

    Questo file di configurazione definisce la sequenza di promozione in cui eseguire il deployment dell'applicazione in una serie di target.

    Devi anche disporre di una configurazione per Skaffold, necessaria a Google Cloud Deploy per eseguire le operazioni di rendering e deployment.

  2. Puoi definire i target nel file di configurazione della pipeline oppure in uno o più file separati.

  3. Registra la tua pipeline con il servizio Google Cloud Deploy.

    Ora che il servizio è a conoscenza della tua applicazione, gestisce il deployment nei target in base alla sequenza di promozione che hai definito.

  4. L'output del tuo processo CI include una chiamata a Google Cloud Deploy per avviare la pipeline di distribuzione.

    Questa chiamata crea una risorsa release, che rappresenta il manifest sottoposto a rendering per ogni destinazione, ognuno dei quali viene generato utilizzando l'origine del rendering fornita, skaffold.yaml e i riferimenti a immagini container specifiche di cui eseguire il deployment. Per la prima chiamata a creare una release, Google Cloud Deploy crea automaticamente una risorsa rollout, che associa la release al primo ambiente di destinazione. In base a questa implementazione, il deployment dell'applicazione viene eseguito nel primo target.

    Puoi utilizzare qualsiasi strumento CI purché fornisca una o più immagini container da fornire alla pipeline di distribuzione di Google Cloud Deploy.

    Inoltre, la chiamata per creare una release e richiamare una pipeline di distribuzione non deve provenire dallo strumento CI. Può provenire da uno script o da qualsiasi sistema che risponda al completamento del processo di CI.

  5. Quando è tutto pronto per il deployment della tua applicazione al target successivo, chiama Google Cloud Deploy per promuoverla.

    In ogni caso, la chiamata a richiamare la promozione fa sì che Google Cloud Deploy crei una nuova implementazione.

  6. La promozione continua tramite tutti i target nella sequenza di promozioni, l'ultimo dei quali è prod (o qualsiasi nome utilizzato per il target finale per mettere in produzione l'applicazione).

    Il processo di creazione e promozione delle release è descritto più dettagliatamente nell'architettura del servizio Google Cloud Deploy.

Durante l'esecuzione della pipeline, Google Cloud Deploy raccoglie le metriche e i dettagli di controllo.

Promozione

Per promuovere una release devi eseguirne il deployment nel target successivo della sequenza di promozioni definita nella pipeline. La prima chiamata a Google Cloud Deploy crea una risorsa release, quindi una risorsa rollout che viene utilizzata per il deployment nel primo target nella sequenza di promozione. Ogni chiamata successiva per promuovere la release genera un'implementazione nel target successivo.

Approvazioni

Puoi specificare che sia necessaria un'approvazione per la promozione a qualsiasi target. Ad esempio, potresti voler richiedere l'approvazione per la promozione in un target di produzione. Per richiedere l'approvazione per un target, imposta la proprietà requireApproval nella definizione del target.

Quando una destinazione richiede l'approvazione, Google Cloud Deploy genera un messaggio Pub/Sub che può essere utilizzato da un sistema integrato. Ad esempio, un sistema di gestione delle richieste di assistenza potrebbe iscriversi al messaggio per avviare un flusso di lavoro di approvazione.

Consulta Richiedere l'approvazione per ulteriori informazioni sulle promozioni e sulla relativa gestione.

Notifiche

Google Cloud Deploy fornisce notifiche Pub/Sub per i seguenti eventi:

  • Rendering: inizio, successo ed errore
  • Deployment: inizio, operazione riuscita ed errore
  • È necessaria un'approvazione
  • Approvazione approvata
  • Approvazione rifiutata

Google Cloud Deploy utilizza un argomento Pub/Sub per inviare queste notifiche.

Per ulteriori dettagli, consulta Utilizzo delle notifiche con la pipeline.

Rollback

Google Cloud Deploy supporta il rollback dell'applicazione di cui è stato eseguito il deployment in qualsiasi destinazione. Un rollback in Google Cloud Deploy prevede l'attivazione di un'implementazione rispetto all'ultima release di cui è stato eseguito il deployment. La nuova implementazione utilizza gli stessi parametri usati nel deployment riuscito.

Per ulteriori dettagli, consulta Rollback di un deployment.

Informazioni su Skaffold e Google Cloud Deploy

Google Cloud Deploy utilizza Skaffold per il rendering, il deployment e la verifica. Con Skaffold puoi anche connettere facilmente il tuo loop di sviluppo locale a una pipeline di distribuzione continua di Google Cloud Deploy.

Per scoprire di più su come Google Cloud Deploy si integra con Skaffold, consulta la panoramica di Skaffold.

Google Cloud Deploy con altri strumenti Google Cloud

Google Cloud Deploy supporta quasi tutti gli strumenti a monte in una pipeline CI/CD. In altre parole, puoi utilizzare qualsiasi ambiente di sviluppo, repository di codice sorgente, sistema di integrazione continua (CI) e repository di artefatti.

A valle, Google Cloud Deploy esegue il deployment solo su Google Kubernetes Engine.

Se utilizzavi principalmente strumenti Google Cloud, il flusso da sorgente a produzione avrebbe il seguente aspetto:

  1. Utilizza Cloud Code per creare l'origine dell'applicazione.

    Cloud Code estende diversi IDE popolari (VS Code, IntelliJ, Cloud Shell) per facilitare la creazione e il deployment delle applicazioni su Google Cloud.

  2. Utilizza Skaffold per gestire il loop di sviluppo locale.

    Google Cloud Deploy utilizza Skaffold, tramite Cloud Build, per eseguire il rendering e il deployment dei manifest. Questa integrazione significa che devi gestire un file skaffold.yaml, ma non significa che tu debba includere parte di Skaffold nel flusso di sviluppo locale. ma puoi sfruttarlo per lo sviluppo continuo.

  3. Creare la tua applicazione utilizzando Cloud Build.

    Cloud Build consente di configurare una pipeline CI che può essere attivata da un commit nel repository di codice sorgente. L'output da Cloud Build sarà artefatti che includono immagini container di cui è possibile eseguire il deployment. Puoi aggiungere una chiamata a Google Cloud Deploy per creare una release e richiamare la pipeline di distribuzione.

  4. Archivia gli artefatti in Artifact Registry.

    Google Cloud Deploy recupera l'immagine o le immagini container da Artifact Registry, che consente di archiviare centralmente gli artefatti e le dipendenze.

  5. Configura la tua pipeline di distribuzione in Google Cloud Deploy per acquisire l'immagine container ed eseguirne il deployment in una progressione di n destinazioni.

    Ciascuno di questi target identificati nella pipeline di distribuzione rappresenta un cluster GKE o un cluster Anthos in cui viene eseguito il deployment dell'applicazione.

  6. Gestisci la tua applicazione su GKE o Anthos.

    GKE è l'ambiente gestito da Google Cloud per l'esecuzione di applicazioni containerizzate su Kubernetes.

    Anthos fornisce un'esperienza coerente di sviluppo e operazioni per ambienti cloud e on-premise.

  7. Monitora le prestazioni della tua applicazione utilizzando la suite operativa di Google Cloud.

    La Suite operativa di Google Cloud offre il monitoraggio e il logging integrati per la tua applicazione.

Passaggi successivi