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:
- Architettura IP pubblico
- Architettura IP privato con peering VPC
- Architettura IP privato con condivisione limitata dei domini
Progetti cliente e tenant
Quando crei un ambiente, Cloud Composer distribuisce le risorse dell'ambiente tra un progetto tenant e un progetto cliente:
Il progetto cliente è un progetto Google Cloud in cui crei i tuoi ambienti. Puoi creare più di un ambiente in un singolo progetto cliente.
Il progetto tenant è un progetto tenant gestito da Google e appartiene all'organizzazione Google.com. Il progetto tenant fornisce controllo dell'accessoo unificato e un ulteriore livello di sicurezza dei dati al 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 eseguito su Google Cloud, come parte del tuo ambiente. I componenti dell'ambiente vengono eseguiti nel tenant o nel progetto cliente dell'ambiente.
Cluster dell'ambiente
Il cluster dell'ambiente è un cluster Google Kubernetes Engine in modalità Standard VPC nativo o basato su route del tuo ambiente:
Per impostazione predefinita, Cloud Composer abilita 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 l'ambiente.
Bucket dell'ambiente
Il bucket dell'ambiente è un bucket Cloud Storage che archivia DAG, plug-in, dipendenze dei dati e log Airflow. Il bucket dell'ambiente si trova nel progetto del cliente.
Quando carichi i file DAG nella cartella /dags
del bucket dell'ambiente, Cloud Composer sincronizza i DAG con i componenti Airflow dell'ambiente.
Server web Airflow
Il server web di 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 di IAP e fornisce l'accesso al web server in base alle identità utente e alle associazioni di 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. Il 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 di 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 di metadati Airflow.
Per proteggere le informazioni sensibili su connessioni e flussi di lavoro, Cloud Composer consente l'accesso al database solo all'account di servizio del tuo ambiente.
Altri componenti Airflow
Gli altri componenti Airflow eseguiti nel tuo ambiente sono:
Gli scheduler Airflow analizzano i file di definizione 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
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 cliente ospita tutti gli altri componenti dell'ambiente.
- Gli scheduler e i worker Airflow nel progetto cliente comunicano con il database Airflow tramite istanze proxy Cloud SQL situate nel progetto cliente.
- Il server web Airflow nel progetto tenant comunica con il database Airflow tramite un'istanza proxy Cloud SQL che si trova nel progetto tenant.
Architettura dell'ambiente IP privato
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 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 bilancia il carico del traffico verso l'istanza Cloud SQL tra due istanze Cloud SQL Proxy che si trovano nel progetto tenant. Gli ambienti con IP privato utilizzano due istanze di Cloud SQL Proxy perché il progetto cliente non accede direttamente al database a causa delle limitazioni di rete. Sono necessarie due istanze per garantire che i componenti del tuo ambiente abbiano sempre accesso al database.
IP privato con DRS
Se il criterio dell'organizzazione per la condivisione con limitazioni del dominio (DRS) è attivato nel tuo progetto, Cloud Composer utilizza l'architettura dell'ambiente con 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 dell'ambiente aggiuntivo. Il web server Airflow accede direttamente a questo bucket.
Il progetto cliente ospita tutti gli altri componenti dell'ambiente.
Il progetto cliente ospita la procedura di sincronizzazione dei bucket nel cluster dell'ambiente. Questa procedura sincronizza due bucket 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 bilancia il carico del traffico verso l'istanza Cloud SQL tra due istanze Cloud SQL Proxy che si trovano nel progetto tenant. Gli ambienti con IP privato utilizzano due istanze di Cloud SQL Proxy perché il progetto cliente non accede direttamente al database a causa delle limitazioni di 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 progetto Google Cloud , in modo da avere un punto centrale 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.
Grazie alla natura di streaming di Cloud Logging, puoi visualizzare immediatamente i log emessi dai componenti Airflow anziché attendere che i log di Airflow vengano visualizzati nel bucket Cloud Storage del tuo ambiente.
Per limitare il numero di log nel tuo progetto Google Cloud , puoi interrompere l'importazione di tutti i log. Non disattivare il logging.