Managed Airflow (3ª gen.) | Managed Airflow (2ª gen.) | Managed Airflow (legacy 1ª gen.)
L'esecuzione di un'applicazione business-critical su Managed Airflow richiede che più parti si assumano responsabilità diverse. Sebbene non sia un elenco esaustivo, questo documento elenca le responsabilità sia di Google che del Cliente.
Responsabilità di Google
Rafforzamento e applicazione di patch ai componenti e all'infrastruttura sottostante dell'ambiente Managed Airflow, inclusi il cluster Google Kubernetes Engine, il database Cloud SQL (che ospita il database Airflow), Pub/Sub, Artifact Registry e altri elementi dell'ambiente. In particolare, questo include l'upgrade automatico dell'infrastruttura sottostante, inclusi il cluster GKE e l'istanza Cloud SQL di un ambiente.
Protezione dell'accesso agli ambienti Managed Airflow tramite l'integrazione controllo dell'accesso fornito da IAM, la crittografia dei dati at-rest per impostazione predefinita, la fornitura di una crittografia aggiuntiva dello spazio di archiviazione gestita dal cliente e la crittografia dei dati in transito.
Fornisce integrazioni Google Cloud per Identity and Access Management, Cloud Audit Logs e Cloud Key Management Service.
Limitazione e registrazione dell'accesso amministrativo di Google ai cluster dei clienti per scopi di assistenza contrattuale con Access Transparency e Access Approval.
Pubblicazione di informazioni sulle modifiche incompatibili con le versioni precedenti tra Managed Airflow e Airflow nelle note di rilascio di Managed Airflow.
Mantenere aggiornata la documentazione di Managed Airflow:
Fornire una descrizione di tutte le funzionalità fornite da Managed Airflow.
Fornire istruzioni per la risoluzione dei problemi che aiutano a mantenere gli ambienti in uno stato integro.
Pubblicazione di informazioni sui problemi noti con soluzioni alternative (se esistono).
Risoluzione degli incidenti di sicurezza critici relativi agli ambienti Managed Airflow e alle immagini Airflow fornite da Managed Airflow (esclusi i pacchetti Python installati dal cliente) fornendo nuove versioni dell'ambiente che risolvono gli incidenti.
A seconda del piano di assistenza del cliente, risoluzione dei problemi di integrità dell'ambiente Managed Airflow.
Mantenere ed espandere la funzionalità del provider Terraform di Managed Airflow.
Collaborare con la community di Apache Airflow per gestire e sviluppare gli operatori Google Airflow.
Risoluzione dei problemi e, se possibile, correzione dei problemi relativi alle funzionalità di base di Airflow.
Responsabilità del cliente
Eseguire l'upgrade alle nuove versioni di Managed Airflow e Airflow per mantenere il supporto del prodotto e risolvere i problemi di sicurezza una volta che il servizio Managed Airflow pubblica una versione di Managed Airflow che risolve i problemi.
Gestire il codice dei DAG per mantenerlo compatibile con la versione di Airflow utilizzata.
Mantenere le autorizzazioni appropriate in IAM per il account di servizio dell'ambiente. In particolare, mantieni le autorizzazioni richieste dall'agente Managed Airflow e dal service account dell'ambiente. Mantenere l'autorizzazione richiesta per la chiave CMEK utilizzata per la crittografia dell'ambiente Managed Airflow e ruotarla in base alle tue esigenze.
Mantenere le autorizzazioni appropriate in IAM per il bucket dell'ambiente.
Mantenere le autorizzazioni IAM appropriate per un account di servizio che esegue le installazioni dei pacchetti PyPI. Per saperne di più, consulta Controllo dell'accesso.
Mantenere le autorizzazioni utente finale corrette in IAM e nella configurazione del controllo dell'accesso dell'interfaccia utente di Airflow.
Mantenere le dimensioni del database Airflow al di sotto di 20 GB configurando una policy di conservazione del database.
Risolvere tutti i problemi di analisi del DAG prima di inviare richieste di assistenza all'assistenza clienti Google Cloud.
Assegnare un nome ai DAG in modo corretto (ad esempio, senza utilizzare caratteri invisibili come SPAZIO o TAB nei nomi dei DAG) in modo che le metriche possano essere registrate correttamente per i DAG.
Esegui l'upgrade del codice dei DAG in modo che non utilizzi operatori deprecati ed esegui la migrazione alle relative alternative aggiornate. Gli operatori deprecati potrebbero essere rimossi dai provider Airflow, il che potrebbe influire sui tuoi piani di upgrade a una versione successiva di Managed Airflow o Airflow. Inoltre, gli operatori deprecati non vengono gestiti e devono essere utilizzati "così come sono".
Configurazione delle autorizzazioni IAM appropriate quando utilizzi backend dei secret come Secret Manager, in modo che il account di servizio dell'ambiente possa accedervi.
Regolazione dei parametri dell'ambiente Managed Airflow (ad esempio CPU e memoria per i componenti Airflow) e delle configurazioni di Airflow per soddisfare le aspettative di prestazioni e carico degli ambienti Managed Airflow utilizzando la guida all'ottimizzazione di Managed Airflow e la guida alla scalabilità dell'ambiente.
Evitare di rimuovere le autorizzazioni richieste dagli agenti Managed Airflow e dai service account dell'ambiente (la rimozione di queste autorizzazioni può causare errori nelle operazioni di gestione o errori nei DAG e nelle attività).
Mantenere sempre abilitati tutti i servizi e le API richiesti da Managed Airflow. Per queste dipendenze devono essere configurate quote ai livelli richiesti per Managed Airflow.
Seguire i consigli e le best practice per l'implementazione dei DAG.
Diagnostica gli errori dei DAG e delle attività utilizzando le istruzioni per la risoluzione dei problemi dello scheduler, la risoluzione dei problemi dei DAG e la risoluzione dei problemi del triggerer.
Mantenere un piano di disaster recovery, inclusa la configurazione e la gestione degli snapshot per soddisfare le tue esigenze di conservazione dei dati e continuità aziendale. Google non ripristina gli ambienti eliminati o i relativi backup del database.
Mantenere la catena di fornitura delle dipendenze Python per i pacchetti installati dal cliente. Ciò include la risoluzione dei problemi di installazione causati da mancate corrispondenze delle dipendenze Python e la definizione di vincoli di versione specifici durante l'aggiunta o la modifica di questi pacchetti.