Architettura dell'ambiente

Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1

Questa pagina descrive l'architettura degli ambienti Cloud Composer.

Configurazioni dell'architettura dell'ambiente

Gli ambienti Cloud Composer 1 possono avere le seguenti configurazioni di architettura:

Progetti dei clienti e dei tenant

Quando crei un ambiente, Cloud Composer distribuisce le risorse dell'ambiente tra un tenant e un progetto del cliente:

  • Il progetto cliente è un progetto Google Cloud in cui crei i tuoi ambienti. Puoi creare più di un ambiente in un singolo progetto del cliente.

Progetto tenant è un progetto tenant gestito da Google. Il progetto tenant fornisce un controllo dell'accesso unificato e un ulteriore livello di sicurezza dei dati per il tuo ambiente. Ogni ambiente Cloud Composer ha il proprio progetto tenant.

Componenti dell'ambiente

Un ambiente Cloud Composer è costituito da componenti dell'ambiente.

Un componente dell'ambiente è un elemento di un'infrastruttura Airflow gestita che viene eseguita su Google Cloud, all'interno del tuo ambiente. I componenti dell'ambiente vengono eseguiti nel tenant o nel progetto del cliente del tuo ambiente.

Cluster dell'ambiente

Il cluster dell'ambiente è un cluster Google Kubernetes Engine in modalità Standard native per VPC o basato su route del tuo ambiente:

Per impostazione predefinita, Cloud Composer attiva gli upgrade automatici dei nodi e la riparazione automatica dei nodi per proteggere il cluster del tuo ambiente dalle vulnerabilità di sicurezza. Queste operazioni vengono eseguite durante i periodi di manutenzione specificati per il tuo ambiente.

Bucket dell'ambiente

Il bucket dell'ambiente è un bucket Cloud Storage che archivia DAG, plug-in, dipendenze dei dati e log di Airflow. Il bucket dell'ambiente si trova nel progetto del cliente.

Quando carichi i file DAG nella cartella /dags del bucket del tuo ambiente, Cloud Composer sincronizza i DAG con i componenti Airflow del tuo ambiente.

Server web Airflow

Il server web Airflow esegue la UI di Airflow del tuo ambiente.

In Cloud Composer 1, il server web Airflow viene eseguito nel progetto tenant del tuo ambiente.

Il server web Airflow è integrato con Identity-Aware Proxy. Cloud Composer nasconde i dettagli dell'integrazione IAP e fornisce l'accesso al server web in base alle identità utente e alle associazioni dei criteri IAM definite per gli utenti.

In Cloud Composer 1, il server web Airflow viene eseguito su un account di servizio diverso rispetto ai worker e agli scheduler Airflow. L'account di servizio per il server web viene generato automaticamente durante la creazione dell'ambiente e deriva dal dominio del server web. Ad esempio, se il dominio è example.appspot.com, l'account servizio è example@appspot.gserviceaccount.com.

Database Airflow

Il database Airflow è un'istanza Cloud SQL che viene eseguita nel progetto tenant del tuo ambiente. Ospita il database dei metadati Airflow.

Per proteggere le informazioni sensibili relative a connessioni e flussi di lavoro, Cloud Composer consente l'accesso al database solo al service account del tuo ambiente.

Altri componenti di Airflow

Altri componenti Airflow eseguiti nel tuo ambiente sono:

  • Gli scheduler di Airflow analizzano i file di definizione dei DAG, pianificano le esecuzioni dei DAG in base all'intervallo pianificato e accodano le attività per l'esecuzione da parte dei worker di Airflow. In Cloud Composer 1, i processori DAG Airflow vengono eseguiti come parte dei componenti dello scheduler.

  • I worker di Airflow eseguono le attività pianificate dagli scheduler di Airflow.

Architettura dell'ambiente IP pubblico

Risorse dell'ambiente Cloud Composer con IP pubblico nel progetto del tenant e nel progetto del cliente
Figura 1. Architettura dell'ambiente IP pubblico (fai clic per ingrandire)

In un'architettura di ambiente IP pubblico per Cloud Composer 1:

  • Il progetto tenant ospita un'istanza Cloud SQL, lo spazio di archiviazione Cloud SQL e un'istanza App Engine Flex che esegue il server web Airflow.
  • Il progetto del cliente ospita tutti gli altri componenti dell'ambiente.
  • I programmatori e i worker di Airflow nel progetto del cliente comunicano con il database Airflow tramite istanze proxy Cloud SQL situate nel progetto del cliente.
  • Il server web Airflow nel progetto tenant comunica con il database Airflow tramite un'istanza proxy Cloud SQL nel progetto tenant.

Architettura dell'ambiente IP privato

Risorse dell'ambiente Cloud Composer con IP privato nel progetto del tenant e nel progetto del cliente
Figura 2. Architettura dell'ambiente IP privato (fai clic per ingrandire)

In un'architettura di ambiente IP privato:

  • Il progetto tenant ospita un'istanza Cloud SQL, lo spazio di archiviazione Cloud SQL e due istanze App Engine che eseguono il server web Airflow.
  • Il progetto del cliente ospita tutti gli altri componenti dell'ambiente.
  • Gli scheduler e i worker di Airflow si connettono al database Airflow tramite il processo HAProxy nel cluster dell'ambiente.
  • Il processo HAProxy esegue il bilanciamento del carico del traffico verso l'istanza Cloud SQL tra due istanze Cloud SQL Proxy situate nel progetto del tenant. Gli ambienti IP privati utilizzano due istanze di Cloud SQL Proxy perché il progetto del cliente non accede direttamente al database a causa di limitazioni della rete. Sono necessarie due istanze per garantire che i componenti del tuo ambiente abbiano sempre accesso al database.

IP privato con DRS

Risorse dell'ambiente Cloud Composer con IP privato e DRS nel progetto tenant e nel progetto del cliente (fai clic per ingrandire)
Figura 3. Architettura dell'ambiente IP privato (fai clic per ingrandire)

Se nel progetto è attiva la policy dell'organizzazione di condivisione con restrizioni al dominio (DRS), Cloud Composer utilizza l'architettura dell'ambiente IP privato con DRS.

Nell'architettura dell'ambiente IP privato con DRS:

  • Il progetto tenant ospita un'istanza Cloud SQL, lo spazio di archiviazione Cloud SQL e due istanze App Engine che eseguono il server web Airflow.

  • Il progetto tenant ospita un bucket di un ambiente aggiuntivo. Il server web Airflow accede direttamente a questo bucket.

  • Il progetto del cliente ospita tutti gli altri componenti dell'ambiente.

  • Il progetto del cliente ospita la procedura di sincronizzazione dei bucket nel cluster dell'ambiente. Questo processo sincronizza due secchi dell'ambiente.

  • Gli scheduler e i worker di Airflow si connettono al database Airflow tramite il processo HAProxy nel cluster dell'ambiente.

  • Il processo HAProxy esegue il bilanciamento del carico del traffico verso l'istanza Cloud SQL tra due istanze Cloud SQL Proxy situate nel progetto del tenant. Gli ambienti IP privati utilizzano due istanze di Cloud SQL Proxy perché il progetto del cliente non accede direttamente al database a causa di limitazioni della rete. Sono necessarie due istanze per garantire che i componenti del tuo ambiente abbiano sempre accesso al database.

Integrazione con Cloud Logging e Cloud Monitoring

Cloud Composer si integra con Cloud Logging e Cloud Monitoring del tuo Google Cloud progetto, in modo da avere un unico punto di accesso per visualizzare i log di Airflow e DAG.

Cloud Monitoring raccoglie e importa metriche, eventi e metadati da Cloud Composer per generare approfondimenti tramite dashboard e grafici.

A causa della natura in streaming di Cloud Logging, puoi visualizzare immediatamente i log emessi dai componenti di Airflow anziché attendere che vengano visualizzati nel bucket Cloud Storage del tuo ambiente.

Per limitare il numero di log nel tuo Google Cloud progetto, puoi interrompere l'importazione di tutti i log. Non disattivare il logging.

Passaggi successivi