Cloud Composer

Auf dieser Seite finden Sie eine Übersicht über eine Cloud Composer-Umgebung und die Google Cloud-Produkte, die für ein Deployment von Apache Airflow verwendet werden.

Cloud Composer ist ein verwalteter Dienst zur Workflow-Orchestrierung, der auf Airflow basiert. Ähnlich wie bei einem lokalen Deployment werden in Cloud Composer mehrere Komponenten zum Ausführen von Airflow bereitgestellt. Diese Seite erläutert die Google Cloud-Komponenten und die zugehörigen Features. Außerdem wird die Ausführung von Workflows dargestellt.

Cloud Composer benötigt ähnlich wie lokale Umgebungen bestimmte Konfigurationen, um Workflows erfolgreich ausführen zu können. Das Ändern von Konfigurationen, auf die sich Cloud Composer für Verbindungen oder Kommunikation stützt, kann unbeabsichtigte Folgen haben bzw. zum Abbruch des Airflow-Deployments führen. Auf dieser Seite werden die wichtigsten Umgebungskonfigurationen erläutert.

Umgebungen

Airflow ist ein auf Mikrodiensten beruhendes Framework. Zum Deployment von Airflow in einer verteilten Konfiguration stellt Cloud Composer mehrere Google Cloud-Komponenten bereit, die insgesamt als Cloud Composer-Umgebung bezeichnet werden.

Umgebungen sind ein Kernkonzept in Cloud Composer. Sie können eine oder mehrere Cloud Composer-Umgebungen innerhalb eines Projekts erstellen. Umgebungen sind eigenständige Airflow-Deployments, die auf Google Kubernetes Engine basieren. Diese Umgebungen nutzen Google Cloud-Dienste über in Airflow eingebundene Connectors.

Cloud Composer-Umgebungen werden in unterstützten Regionen erstellt und innerhalb einer Compute Engine-Zone ausgeführt. Für einfache Anwendungsfälle können Sie eine einzelne Umgebung in einer einzelnen Region erstellen. Für komplexe Anwendungsfälle können Sie mehrere Umgebungen in einer einzelnen Region oder in mehrere Regionen erstellen. Airflow kommuniziert mit anderen Google Cloud-Produkten über die öffentlichen APIs der Produkte.

Architektur

Beim Erstellen einer Umgebung verteilt Cloud Composer die Ressourcen der Umgebung auf ein von Google verwaltetes Mandantenprojekt und ein Kundenprojekt, wie im folgenden Diagramm dargestellt:

Ressourcen der Cloud Composer-Umgebung im Mandantenprojekt und im Kundenprojekt (zum Vergrößern klicken)
Ressourcen der Cloud Composer-Umgebung (zum Vergrößern klicken)

Ressourcen für Mandantenprojekte

Für eine einheitliche Zugriffssteuerung über Identity and Access Management und eine erhöhte Datensicherheit stellt Cloud Composer Cloud SQL und App Engine im Mandantenprojekt bereit.

Cloud SQL

Cloud SQL speichert die Airflow-Metadaten. Zum Schutz vertraulicher Verbindungs- und Workflowinformationen beschränkt Cloud Composer den Datenbankzugriff auf das Standardkonto oder auf das angegebene benutzerdefinierte Dienstkonto, mit dem die Umgebung erstellt wurde. Die Airflow-Metadaten werden von Cloud Composer täglich gesichert, um potenzielle Datenverluste zu minimieren.

Das zum Erstellen der Cloud Composer-Umgebung verwendete Dienstkonto ist das einzige Konto, das auf Ihre Daten in der SQL-Datenbank zugreifen kann. Für die Remote-Autorisierung des Zugriffs auf Ihre Cloud SQL-Datenbank über eine Anwendung, einen Client oder einen anderen Google Cloud-Dienst stellt Cloud Composer den Cloud SQL-Proxy im GKE-Cluster bereit.

App Engine

Der Airflow-Webserver wird in der flexiblen App Engine-Umgebung gehostet. Standardmäßig ist der Airflow-Webserver in Identity-Aware Proxy (IAP) eingebunden. Cloud Composer blendet die Details der IAP-Einbindung aus und ermöglicht die Verwendung der Cloud Composer IAM-Richtlinie zum Verwalten des Webserverzugriffs. Wenn nur dem Airflow-Webserver Zugriff gewährt werden soll, weisen Sie die Rolle composer.user oder verschiedene Cloud Composer-Rollen zu, die Zugriff auf andere Ressourcen in Ihrer Umgebung ermöglichen. Für Organisationen mit zusätzlichen Anforderungen an die Zugriffssteuerung unterstützt Cloud Composer auch das Deployment eines selbstverwalteten Airflow-Webservers im Kundenprojekt.

Ressourcen im Kundenprojekt

Cloud Composer stellt Cloud Storage, Google Kubernetes Engine, Cloud Logging und Cloud Monitoring in Ihrem Kundenprojekt bereit.

Cloud Storage

Cloud Storage bietet den Storage-Bucket für das Staging von DAGs, Plug-ins, Datenabhängigkeiten und Logs. Zur Bereitstellung von Workflows (DAGs) kopieren Sie die Dateien in den Bucket für Ihre Umgebung. Cloud Composer sorgt für die Synchronisierung der DAGs zwischen Workern, Planern und Webservern. Mit Cloud Storage können Sie Ihre Workflow-Artefakte in den Ordnern data/ und logs/ speichern, ohne Größenbeschränkungen berücksichtigen zu müssen. Sie haben damit die Möglichkeit, den Zugriff auf Ihre Daten uneingeschränkt zu steuern.

Google Kubernetes Engine

Cloud Composer stellt standardmäßig Kernkomponenten wie Airflow-Planer, Worker-Knoten und CeleryExecutor in Google Kubernetes Engine bereit. Für zusätzliche Skalierbarkeit und Sicherheit unterstützt Cloud Composer auch VPC-native Cluster mit Alias-IP-Adressen.

Redis wird als Message Broker für CeleryExecutor verwendet und als StatefulSet-Anwendung ausgeführt. Nachrichten bleiben somit auch nach einem Neustart des Containers erhalten.

Wenn Sie Planer und Worker unter GKE ausführen, verwenden Sie den KubernetesPodOperator zum Ausführen beliebiger Container-Arbeitslasten. Standardmäßig aktiviert Cloud Composer automatische Upgrades und automatische Reparaturen, um die GKE-Cluster vor Sicherheitslücken zu schützen.

Die Planer- und Worker-Knoten sowie der Webserver von Airflow werden mit verschiedenen Dienstkonten ausgeführt.

  • Planer und Worker: Wenn Sie beim Erstellen der Umgebung kein Dienstkonto angeben, wird die Umgebung unter dem standardmäßigen Compute Engine-Dienstkonto ausgeführt.
  • Webserver: Das Dienstkonto wird beim Erstellen der Umgebung automatisch generiert und von der Webserverdomain abgeleitet. Lautet die Domain beispielsweise foo-tp.appspot.com, hat das Dienstkonto die Bezeichnung foo-tp@appspot.gserviceaccount.com.

Informationen zu serviceAccount und airflowUri finden Sie in den Umgebungsdetails.

Cloud Logging und Cloud Monitoring

Cloud Composer kann in Cloud Logging und Cloud Monitoring eingebunden werden, sodass damit eine zentrale Stelle für alle Dienst- und Workflowlogs zu Airflow vorhanden ist.

Aufgrund des Streaming-Charakters von Cloud Logging können Sie alle Logs, die vom Airflow-Planer und von den Airflow-Workern gesendet werden, sofort aufrufen. Sie müssen also nicht auf die Synchronisierung des Airflow-Logging-Moduls warten. Da die Logs von Cloud Logging für Cloud Composer auf google-fluentd beruhen, haben Sie außerdem Zugriff auf alle Logs, die von den Planer- und Worker-Containern generiert werden. Diese Logs vereinfachen die Fehlerbehebung und enthalten nützliche Informationen zu Komponenten auf Systemebene und Airflow-Abhängigkeiten.

Cloud Monitoring sammelt und erfasst Messwerte, Ereignisse und Metadaten aus Cloud Composer, mit denen sich mithilfe von Dashboards und Diagrammen aussagekräftige Informationen generieren lassen.

Netzwerk und Sicherheit

Cloud Composer stellt standardmäßig einen routenbasierten GKE-Cluster bereit, der das Standard-VPC-Netzwerk für die Maschinenkommunikation verwendet. Für zusätzliche Sicherheit und mehr Flexibilität im Netzwerk unterstützt Cloud Composer auch die im Folgenden aufgeführten Features.

Freigegebene VPC

Eine freigegebene VPC ermöglicht das Verwalten freigegebener Netzwerkressourcen über ein zentrales Hostprojekt, um projektübergreifend einheitliche Netzwerkrichtlinien zu erzwingen.

Ist Cloud Composer Bestandteil einer freigegebenen VPC, befindet sich die Cloud Composer-Umgebung in einem Dienstprojekt und kann Dienste aufrufen, die in anderen Google Cloud-Projekten gehostet werden. Ressourcen innerhalb Ihrer Dienstprojekte kommunizieren sicher über Projektgrenzen hinweg über interne IP-Adressen. Informationen zu Netzwerk- und Hostprojektanforderungen finden Sie unter Freigegebene VPC konfigurieren.

VPC-native Umgebung in Cloud Composer

In einer VPC-nativen Umgebung sind Pod- und Dienst-IP-Adressen im GKE-Cluster nativ im Google Cloud-Netzwerk routingfähig, auch über VPC-Netzwerk-Peering.

In dieser Konfiguration stellt Cloud Composer in Ihrer Umgebung einen VPC-nativen GKE-Cluster mit Alias-IP-Adressen bereit. Wenn Sie VPC-native Cluster verwenden, wird von GKE automatisch ein sekundärer Bereich ausgewählt. Für bestimmte Netzwerkanforderungen können Sie bei der Konfiguration Ihrer Cloud Composer-Umgebung für Ihre GKE-Pods und GKE-Dienste auch die sekundären Bereiche konfigurieren.

Private-IP-Umgebung in Cloud Composer

Mit einer privaten IP-Adresse sind Cloud Composer-Workflows vollständig vom öffentlichen Internet isoliert.

In dieser Konfiguration stellt Cloud Composer im Kundenprojekt einen VPC-nativen GKE-Cluster mit Alias-IP-Adressen bereit. Der GKE-Cluster für die Umgebung wird als privater Cluster konfiguriert, während für die Cloud SQL-Instanz private IP-Adressen konfiguriert werden. Cloud Composer erstellt außerdem eine Peering-Verbindung zwischen dem VPC-Netzwerk des Kundenprojekts und dem VPC-Netzwerk des Mandantenprojekts.

Wichtige Konfigurationsinformationen

  • Einige Airflow-Parameter sind für Cloud Composer-Umgebungen vorkonfiguriert und können nicht geändert werden. Andere Parameter konfigurieren Sie beim Erstellen der Umgebung.
  • Alle Kontingente oder Limits der eigenständigen Google Cloud-Produkte, die von Cloud Composer für das Airflow-Deployment verwendet werden, gelten auch für Ihre Umgebung.
  • Für die erfolgreiche Ausführung von Workflows benötigt Cloud Composer die folgenden Konfigurationen:
    • Das Back-End des Cloud Composer-Dienstes wird mit dem GKE-Dienst-Agent über Pub/Sub in Form von Abos koordiniert. Das Verwalten von Nachrichten beruht auf dem Standardverhalten von Pub/Sub. Löschen Sie keine .*-composer-.*-Themen. Pub/Sub unterstützt maximal 10.000 Themen pro Projekt.
    • Der Cloud Composer-Dienst koordiniert das Logging mit Cloud Logging. Wenn Sie die Anzahl der Logs in Ihrem Google Cloud-Projekt begrenzen möchten, beenden Sie die gesamte Aufnahme von Logs. Deaktivieren Sie das Logging aber nicht.
    • Ändern Sie nicht die Richtlinienbindung von Identity and Access Management für das Cloud Composer-Dienstkonto, z. B. service-your-project-number@cloudcomposer-accounts.iam.gserviceaccount.com.
    • Ändern Sie nicht das Airflow-Datenbankschema.
  • Eine Cloud Composer-Version mit einer stabilen Airflow-Version kann Airflow-Updates enthalten, die von einer späteren Airflow-Version zurückportiert werden.
  • Die Planer- und Worker-Knoten haben unterschiedliche Kapazitäten und werden unter einem anderen Dienstkonto als der Airflow-Webserver ausgeführt. Führen Sie keine komplexen Berechnungen durch und greifen Sie nicht auf Google Cloud-Ressourcen zu, auf die der Webserver zum Zeitpunkt des DAG-Parsens keinen Zugriff hat. Dadurch vermeiden Sie DAG-Fehler auf dem Airflow-Webserver.
  • Durch das Löschen Ihrer Umgebung werden die folgenden Elemente in Ihrem Kundenprojekt nicht gelöscht: der Cloud Storage-Bucket für Ihre Umgebung, Logging-Logs und Pub/Sub-Themen. Exportieren und löschen Sie die Daten gegebenenfalls, um zu vermeiden, dass Ihrem Google Cloud-Konto Gebühren in Rechnung gestellt werden.

Nächste Schritte