Arsitektur lingkungan Cloud Composer

Cloud Composer 1 | Cloud Composer 2

Halaman ini menjelaskan arsitektur lingkungan Cloud Composer 2.

Konfigurasi arsitektur lingkungan

Lingkungan Cloud Composer 2 dapat memiliki konfigurasi arsitektur berikut:

Setiap konfigurasi sedikit mengubah arsitektur resource lingkungan.

Project pelanggan dan tenant

Saat Anda membuat lingkungan, Cloud Composer mendistribusikan resource lingkungan antara tenant dan project pelanggan.

Project pelanggan adalah project Google Cloud tempat Anda membuat lingkungan. Anda dapat membuat lebih dari satu lingkungan dalam satu project pelanggan.

Project tenant adalah project tenant yang dikelola Google. Project tenant memberikan kontrol akses terpadu dan lapisan keamanan data tambahan untuk lingkungan Anda. Setiap lingkungan Cloud Composer memiliki project tenantnya sendiri.

Komponen lingkungan

Lingkungan Cloud Composer terdiri dari komponen lingkungan.

Komponen lingkungan adalah elemen infrastruktur Airflow terkelola yang berjalan di Google Cloud, sebagai bagian dari lingkungan Anda.

Komponen lingkungan berjalan di tenant atau di project pelanggan di lingkungan Anda.

Beberapa komponen lingkungan Anda didasarkan pada produk Google Cloud mandiri. Kuota dan batas untuk produk ini juga berlaku di lingkungan Anda. Misalnya, lingkungan Cloud Composer menggunakan peering VPC. Kuota pada jumlah maksimum peering VPC berlaku untuk project pelanggan Anda. Jadi, setelah project mencapai jumlah peering maksimum ini, Anda tidak dapat membuat lingkungan tambahan.

Cluster lingkungan

Cluster lingkungan adalah cluster Google Kubernetes Engine dengan mode Autopilot di lingkungan Anda yang berbasis VPC:

  • Node lingkungan adalah VM di cluster lingkungan.

  • Pod di cluster lingkungan menjalankan container dengan komponen lingkungan lain, seperti pekerja dan penjadwal Airflow. Pod berjalan pada node lingkungan.

  • Resource beban kerja cluster lingkungan Anda mengelola kumpulan pod di cluster lingkungan Anda. Banyak komponen lingkungan Anda diimplementasikan sebagai berbagai jenis resource workload. Misalnya, pekerja Airflow dijalankan sebagai Deployment. Selain Deployment, lingkungan Anda juga memiliki jenis workload StatefulSet, DaemonSet, dan Tugas.

Secara default, Cloud Composer mengaktifkan upgrade node otomatis dan perbaikan otomatis node untuk melindungi cluster lingkungan Anda dari kerentanan keamanan. Operasi ini terjadi selama masa pemeliharaan yang Anda tentukan untuk lingkungan Anda.

Penjadwal Airflow, pemicu, pekerja, dan antrean Redis

Penjadwal Airflow mengontrol penjadwalan operasi DAG dan tugas individual dari DAG. Penjadwal mendistribusikan tugas kepada pekerja Airflow menggunakan antrean Redis, yang berjalan sebagai aplikasi di cluster lingkungan Anda. Penjadwal Airflow dijalankan sebagai Deployment di cluster lingkungan Anda.

Pekerja Airflow menjalankan tugas individual dari DAG dengan mengambilnya dari antrean Redis. Pekerja Airflow dijalankan sebagai Resource Kustom di cluster lingkungan Anda.

Pemicu Airflow memantau semua tugas yang ditangguhkan secara asinkron di lingkungan Anda. Anda dapat mengonfigurasi jumlah instance pemicu saat membuat atau memperbarui lingkungan Cloud Composer. Cloud Composer mendukung konfigurasi pemicu berikut:

  • Jumlah pemicu:

    • Ketahanan standar: Anda dapat menjalankan hingga 10 pemicu
    • Ketahanan tinggi: minimal 2 pemicu, hingga maksimum 10

    Anda dapat menetapkan jumlah pemicu ke nol, tetapi Anda memerlukan minimal satu instance pemicu di lingkungan Anda (atau setidaknya dua instance di lingkungan yang sangat tangguh), untuk menggunakan operator yang dapat ditangguhkan di DAG. Jika jumlah pemicu disetel ke nol, cluster lingkungan Anda masih menjalankan beban kerja untuknya, tetapi tanpa pod - hal ini tidak dikenai biaya apa pun.

  • Alokasi resource pemicu:

    • Maksimum 1 vCPU per pemicu
    • Memori maksimum sama dengan jumlah CPU pemicu dikalikan dengan 6.5

Redis queue menyimpan antrean tugas individual dari DAG Anda. Penjadwal Airflow mengisi antrean; Pekerja Airflow mengambil tugas mereka dari antrean tersebut. Antrean Redis berjalan sebagai aplikasi StatefulSet di cluster lingkungan Anda, sehingga pesan akan tetap ada setiap kali container dimulai ulang.

Server web Airflow

Server web Airflow menjalankan UI Airflow lingkungan Anda.

Di Cloud Composer 2, server web Airflow dijalankan sebagai Deployment di cluster lingkungan Anda.

Cloud Composer 2 menyediakan akses ke antarmuka berdasarkan identitas pengguna dan binding kebijakan IAM yang ditentukan untuk pengguna. Dibandingkan dengan Cloud Composer 1, Cloud Composer 2 menggunakan mekanisme berbeda yang tidak mengandalkan Identity-Aware Proxy.

Database Airflow

Database Airflow adalah instance Cloud SQL yang berjalan di project tenant lingkungan Anda. Database ini menghosting database metadata Airflow.

Untuk melindungi koneksi yang sensitif dan informasi alur kerja, Cloud Composer mengizinkan akses database hanya ke akun layanan lingkungan Anda.

Bucket lingkungan

Bucket lingkungan adalah bucket Cloud Storage yang menyimpan DAG, plugin, dependensi data, dan log Airflow. Bucket lingkungan berada di project pelanggan.

Saat Anda mengupload file DAG ke folder /dags di bucket lingkungan, Cloud Composer menyinkronkan DAG ke pekerja, penjadwal, dan server web lingkungan Anda. Anda dapat menyimpan artefak alur kerja di folder data/ dan logs/ tanpa perlu mengkhawatirkan batasan ukuran, dan mempertahankan kontrol akses penuh atas data Anda.

Komponen lingkungan lainnya

Lingkungan Cloud Composer memiliki beberapa komponen lingkungan tambahan:

  • Penyimpanan Cloud SQL. Menyimpan cadangan database Airflow. Cloud Composer mencadangkan metadata Airflow setiap hari untuk meminimalkan potensi hilangnya data.

    Cloud SQL Storage berjalan di project tenant di lingkungan Anda. Anda tidak dapat mengakses konten Cloud SQL Storage.

  • Proxy Cloud SQL. Menghubungkan komponen lain dari lingkungan Anda ke database Airflow.

    Lingkungan IP Publik Anda dapat memiliki satu atau beberapa instance Proxy Cloud SQL, bergantung pada volume traffic ke database Airflow.

    Dalam kasus lingkungan IP Publik, proxy Cloud SQL dijalankan sebagai Deployment di cluster lingkungan Anda.

    Saat di-deploy di cluster lingkungan Anda, Proxy Cloud SQL juga mengizinkan akses ke instance Cloud SQL Anda dari aplikasi, klien, atau layanan Google Cloud lainnya.

  • Pemantauan aliran udara. Melaporkan metrik lingkungan ke Cloud Monitoring dan memicu DAG airflow_monitoring. DAG airflow_monitoring melaporkan data kesehatan lingkungan, yang kemudian digunakan, misalnya, di dasbor pemantauan lingkungan Anda. Pemantauan airflow berjalan sebagai Deployment di cluster lingkungan Anda.

  • Agen Compose menjalankan operasi lingkungan seperti membuat, mengupdate, mengupgrade, dan menghapus lingkungan. Secara umum, komponen ini bertanggung jawab untuk memperkenalkan perubahan pada lingkungan Anda. Berjalan sebagai Tugas di cluster lingkungan Anda.

  • Airflow InitDB membuat instance Cloud SQL dan skema database awal. Airflow InitDB berjalan sebagai Job di cluster lingkungan Anda.

  • FluentD baru. Mengumpulkan log dari semua komponen lingkungan dan mengupload log ke Cloud Logging. Berjalan sebagai DaemonSet di cluster lingkungan Anda.

  • Langganan Pub/Sub. Lingkungan Anda berkomunikasi dengan agen layanan GKE melalui langganan Pub/Sub. Pengelolaan pesan bergantung pada perilaku default Pub/Sub. Jangan hapus .*-composer-.* topik Pub/Sub. Pub/Sub mendukung maksimum 10.000 topik per project.

  • Endpoint PSC menghubungkan penjadwal dan pekerja Airflow ke database Airflow di arsitektur Private IP dengan PSC.

  • Customer Metrics Adapter melaporkan metrik lingkungan Anda, untuk penskalaan otomatis. Komponen ini dijalankan sebagai Deployment di cluster lingkungan Anda.

  • Airflow Worker Set Controller akan otomatis menskalakan lingkungan Anda berdasarkan metrik dari Adaptor Stackdriver Metrik Pelanggan. Komponen ini berjalan sebagai Deployment di cluster lingkungan Anda.

  • Cloud Storage FUSE. Menempatkan bucket lingkungan sebagai sistem file pada pekerja Airflow, penjadwal, dan server web, sehingga komponen ini dapat mengakses data dari bucket. Berjalan sebagai DaemonSet di cluster lingkungan Anda.

Arsitektur lingkungan IP publik

Resource lingkungan Cloud Composer IP publik dalam project tenant dan project pelanggan
Gambar 1. Arsitektur lingkungan IP publik (klik untuk memperbesar)

Dalam arsitektur lingkungan IP Publik untuk Cloud Composer 2:

  • Project tenant menghosting instance Cloud SQL dan penyimpanan Cloud SQL.
  • Project pelanggan menghosting semua komponen lingkungan lainnya.
  • Penjadwal dan pekerja Airflow dalam project pelanggan berkomunikasi dengan database Airflow melalui instance proxy Cloud SQL yang berada di project pelanggan.

Arsitektur lingkungan IP pribadi

IP pribadi dengan resource lingkungan PSC Cloud Composer di project tenant dan project pelanggan (klik untuk memperbesar)
Gambar 2. Resource lingkungan Cloud Composer IP pribadi di project tenant dan project pelanggan (klik untuk memperbesar)

Secara default, Cloud Composer 2 menggunakan Private Service Connect, sehingga lingkungan IP Pribadi Anda berkomunikasi secara internal tanpa menggunakan peering VPC. Anda juga dapat menggunakan peering VPC, bukan Private Service Connect di lingkungan Anda. Ini adalah opsi non-default.

Dalam arsitektur lingkungan IP Pribadi:

  • Project tenant menghosting instance Cloud SQL dan penyimpanan Cloud SQL.
  • Project pelanggan menghosting semua komponen lingkungan lainnya.
  • Penjadwal dan pekerja Airflow terhubung ke database Airflow melalui endpoint PC yang dikonfigurasi.

Arsitektur IP Pribadi yang sangat tangguh

Resource lingkungan IP Pribadi yang sangat tangguh dalam project tenant dan project pelanggan (klik untuk memperbesar)
Gambar 3. Resource lingkungan Cloud Composer IP Pribadi yang sangat tangguh di project tenant dan project pelanggan (klik untuk memperbesar)

Lingkungan Cloud Composer yang sangat andal adalah lingkungan Cloud Composer 2 yang menggunakan redundansi dan mekanisme failover bawaan yang mengurangi kerentanan lingkungan terhadap kegagalan zona dan penghentian titik tunggal kegagalan.

Pada jenis lingkungan IP Pribadi ini:

  • Instance Cloud SQL lingkungan Anda dikonfigurasi untuk ketersediaan tinggi (merupakan instance regional). Dalam instance regional, konfigurasi terdiri dari instance utama dan instance standby.
  • Lingkungan Anda menjalankan dua penjadwal Airflow, dua server web, dan jika pemicu digunakan, minimal dua pemicu (hingga total sepuluh). Pasangan komponen ini berjalan di dua zona terpisah.
  • Jumlah minimum pekerja ditetapkan ke dua, dan cluster lingkungan Anda mendistribusikan instance pekerja antar-zona. Jika terjadi pemadaman layanan di zona tertentu, instance pekerja yang terpengaruh akan dijadwalkan ulang di zona yang berbeda.

Integrasi dengan Cloud Logging dan Cloud Monitoring

Cloud Composer terintegrasi dengan Cloud Logging dan Cloud Monitoring project Google Cloud Anda , sehingga Anda memiliki tempat terpusat untuk melihat log layanan dan alur kerja Airflow.

Cloud Monitoring mengumpulkan dan menyerap metrik, peristiwa, dan metadata dari Cloud Composer untuk menghasilkan insight melalui dasbor dan diagram.

Karena sifat streaming Cloud Logging, Anda dapat melihat log yang langsung dikeluarkan oleh penjadwal dan pekerja Airflow, tanpa perlu menunggu log Airflow muncul di bucket Cloud Storage lingkungan Anda. Karena log Cloud Logging untuk Cloud Composer didasarkan pada google-fluentd, Anda memiliki akses ke semua log yang dihasilkan oleh penjadwal dan pekerja Airflow.

Untuk membatasi jumlah log di project Google Cloud, Anda dapat menghentikan semua penyerapan log. Jangan nonaktifkan Logging.

Langkah selanjutnya