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 ai data scientist e agli analisti che creano in esecuzione di job di elaborazione dati per strutturare le attività di ricerca e sviluppo di ricerca e sviluppo, per gestire in modo sistematico e automatico i carichi di lavoro di elaborazione dei dati.

Architettura

Il seguente diagramma mostra una vista 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 consiste nei 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 su fare riferimento al file JAR appena distribuito.
  6. Cloud Build testa il flusso di lavoro di elaborazione dati Grafo diretto aciclico (DAG) e ne esegue il deployment nel bucket Cloud Composer di archiviazione ideale in Cloud Storage.
  7. Viene eseguito il deployment del file DAG del flusso di lavoro in Cloud Composer.
  8. Cloud Build attiva l'elaborazione dei dati appena di cui è stato eseguito il deployment del flusso di lavoro per l'esecuzione.
  9. Quando il test di integrazione del flusso di lavoro di elaborazione dati è stato superato, viene visualizzato un messaggio pubblicata in Pub/Sub, che contiene un riferimento JAR a esecuzione automatica (ottenuta dalle variabili Airflow) nel codice .

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

  1. La pipeline di deployment di produzione viene attivata alla pubblicazione di un messaggio 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. Viene eseguito il deployment del file DAG del flusso di lavoro di produzione 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. Per agli scopi di questa architettura di riferimento, gli ambienti sono separati mediante Bucket Cloud Storage per contenere i dati di input e di output.

Per separare completamente gli ambienti, sono necessari più elementi Cloud Composer di ambienti creati in progetti diversi, che per impostazione predefinita sono separati tra loro. Questa separazione aiuta a proteggere l'ambiente di produzione. Questo non rientra nell'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 il flusso di lavoro di elaborazione dei dati viene definito insieme alle dipendenze che li rappresentano.

La pipeline CI/CD esegue automaticamente il deployment della definizione di DAG da 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 eseguita una fase di test end-to-end definita in aggiunta 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 diagramma seguente.

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

Il flusso di lavoro di elaborazione dei dati prevede i seguenti passaggi:

  1. Eseguire il processo dei dati WordCount in Dataflow.
  2. Scarica i file di output dal processo WordCount. Conteggio parole processo produce 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 confrontandolo con il 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 nel tuo flusso di lavoro.

Ottimizzazione dei costi

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

Deployment

Per eseguire il deployment di questa architettura, Esegui il deployment di una pipeline CI/CD per i flussi di lavoro di elaborazione dati.

Passaggi successivi