Utilizza una pipeline CI/CD per i flussi di lavoro di elaborazione dati

Last reviewed 2024-06-27 UTC

Questo documento descrive come configurare un'integrazione continua o una pipeline di deployment (CI/CD) per l'elaborazione dei dati mediante l'implementazione di metodi CI/CD con i prodotti gestiti su Google Cloud. Data scientist e gli analisti possono adattare le metodologie delle pratiche CI/CD per aiutare l'alta qualità, la manutenibilità e l'adattabilità dei processi dei dati e per i flussi di lavoro. I metodi che puoi applicare sono i seguenti:

  • Controllo della versione del codice sorgente.
  • Creazione, test e deployment automatici delle app.
  • Isolamento e separazione dell'ambiente dalla produzione.
  • Procedure replicabili per la configurazione dell'ambiente.

Questo documento è rivolto a data scientist e analisti che creano job di elaborazione dati ricorrenti per contribuire a strutturare la loro ricerca e sviluppo (R&D) in modo da gestire in modo sistematico e automatico i carichi di lavoro di elaborazione dati.

Architettura

Il seguente diagramma mostra una visualizzazione dettagliata dei passaggi della pipeline CI/CD.

Diagramma dell'architettura della pipeline CI/CD.

I deployment negli ambienti di test e produzione vengono separate in due diverse pipeline di Cloud Build: un test e pipeline di produzione.

Nel diagramma precedente, la pipeline di test è costituita dai seguenti passaggi:

  1. Uno sviluppatore esegue il commit delle modifiche al codice in Cloud Source Repositories.
  2. Le modifiche al codice attivano una build di test in Cloud Build.
  3. Cloud Build crea il file JAR a esecuzione automatica e ne esegue il deployment il bucket JAR di test su Cloud Storage.
  4. Cloud Build esegue il deployment dei file di test nei bucket dei file di test di archiviazione ideale in Cloud Storage.
  5. Cloud Build imposta la variabile in Cloud Composer in modo da fare riferimento al file JAR appena disegnato.
  6. Cloud Build testa il flusso di lavoro di elaborazione dei dati Directed Acyclic Graph (DAG) e lo esegue nel bucket Cloud Composer su Cloud Storage.
  7. Il file DAG del flusso di lavoro viene disegnato in Cloud Composer.
  8. Cloud Build attiva l'esecuzione del flusso di lavoro di elaborazione dei dati appena disegnato.
  9. Una volta superato il test di integrazione del flusso di lavoro di elaborazione dei dati, viene pubblicato su Pub/Sub un messaggio contenente un riferimento all'ultimo JAR autoeseguibile (ottenuto dalle variabili Airflow) nel campo dei dati del messaggio.

Nel diagramma precedente, la pipeline di produzione è composta da quanto segue passaggi:

  1. La pipeline di deployment in produzione viene attivata quando un messaggio viene pubblicato in un argomento Pub/Sub.
  2. Uno sviluppatore approva manualmente la pipeline di deployment in produzione e viene eseguita la build.
  3. Cloud Build copia il file JAR a esecuzione automatica più recente dal di test del bucket JAR nel bucket JAR di produzione su Cloud Storage.
  4. Cloud Build testa il DAG del flusso di lavoro di elaborazione dei dati di produzione e ne esegue il deployment nel bucket Cloud Composer su Cloud Storage.
  5. Il file DAG del flusso di lavoro di produzione viene disegnato in Cloud Composer.

In questo documento sull'architettura di riferimento, il flusso di lavoro di elaborazione dei dati di produzione viene eseguito il deployment nello stesso ambiente Cloud Composer del test per ottenere una visione consolidata di tutti i flussi di lavoro di elaborazione dati. Ai fini di questa architettura di riferimento, gli ambienti sono separati utilizzando diversi bucket Cloud Storage per contenere i dati di input e output.

Per separare completamente gli ambienti, sono necessari più elementi Cloud Composer ambienti creati in progetti diversi, che per impostazione predefinita sono separati tra loro. Questa separazione aiuta a proteggere l'ambiente di produzione. Questo approccio esula dall'ambito di questo tutorial. Per saperne di più su come accedere alle risorse in più progetti Google Cloud, consulta Impostazione delle autorizzazioni per gli account di servizio.

Il flusso di lavoro di elaborazione dei dati

Le istruzioni per l'esecuzione dell'elaborazione dei dati da parte di Cloud Composer sono definiti in un DAG scritto in Python. Nel DAG, tutti i passaggi del flusso di lavoro di elaborazione dei dati sono definiti insieme alle dipendenze tra di loro.

La pipeline CI/CD esegue automaticamente il deployment della definizione del DAG da Cloud Source Repositories a Cloud Composer in ogni build. Questo processo garantisce che Cloud Composer è sempre aggiornato con la definizione più recente di flussi di lavoro senza alcun intervento umano.

Nella definizione del DAG per l'ambiente di test, viene definito un passaggio di test end-to-end oltre al flusso di lavoro di elaborazione dei dati. Il passaggio del test aiuta ad assicurare che del flusso di lavoro di elaborazione dati.

Il flusso di lavoro di elaborazione dei dati è illustrato nel seguente diagramma.

Il flusso di lavoro di elaborazione dei dati in quattro fasi.

Il flusso di lavoro di elaborazione dei dati è costituito dai seguenti passaggi:

  1. Eseguire il processo dei dati WordCount in Dataflow.
  2. Scarica i file di output dal processo WordCount. Il processo WordCount genera tre file:

    • download_result_1
    • download_result_2
    • download_result_3
  3. Scarica il file di riferimento, denominato download_ref_string.

  4. Verifica il risultato rispetto al file di riferimento. Questo test di integrazione aggrega tutti e tre i risultati e confronta i risultati aggregati con file di riferimento.

  5. Pubblica un messaggio in Pub/Sub dopo che il test di integrazione superato.

Utilizzo di un framework di orchestrazione delle attività come Cloud Composer per la gestione il flusso di lavoro di elaborazione dei dati aiuta ad alleviare la complessità del un flusso di lavoro di machine learning.

Ottimizzazione dei costi

In questo documento vengono utilizzati i seguenti componenti fatturabili di Google Cloud:

Passaggi successivi