Arsitektur lingkungan Cloud Composer

Cloud Composer 1 | Cloud Composer 2

Halaman ini menjelaskan arsitektur lingkungan Cloud Composer 1.

Konfigurasi arsitektur lingkungan

Lingkungan Cloud Composer 1 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 mode Standar dengan VPC-native atau Berbasis rute di lingkungan Anda:

  • 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, 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 Deployment di cluster lingkungan Anda.

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 1, server web Airflow adalah instance App Engine Flex yang berjalan di project tenant di lingkungan Anda.

Server web Airflow terintegrasi dengan Identity-Aware Proxy. Cloud Composer menyembunyikan detail integrasi IAP, dan memberikan akses ke server web berdasarkan identitas pengguna dan binding kebijakan IAM yang ditentukan untuk pengguna.

Server web Airflow berjalan di akun layanan yang berbeda dengan pekerja Airflow dan penjadwal Airflow. Akun layanan untuk server web dibuat secara otomatis selama pembuatan lingkungan dan berasal dari domain server web. Misalnya, jika domainnya adalah example.appspot.com, akun layanannya adalah example@appspot.gserviceaccount.com.

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.

- HAProxy. Load menyeimbangkan traffic ke instance Cloud SQL antara dua instance Proxy Cloud SQL yang berjalan di project tenant. Dalam kasus Cloud Composer 1, komponen ini digunakan di lingkungan IP Pribadi dan dijalankan sebagai container di deployment Proxy Cloud SQL.
  • 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.

  • Sinkronisasi bucket. Proses ini menyinkronkan bucket lingkungan dalam project pelanggan dan tenant. Komponen ini digunakan dalam IP Pribadi dengan arsitektur lingkungan DRS. Komponen ini berjalan sebagai container dalam pod komponen lain yang menggunakan bucket lingkungan.

    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 1:

    • Project tenant menghosting instance Cloud SQL, penyimpanan Cloud SQL, dan instance App Engine Flex yang menjalankan server web Airflow.
    • 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.
    • Server web Airflow dalam project tenant berkomunikasi dengan database Airflow melalui instance proxy Cloud SQL yang berada di project tenant.

    Arsitektur lingkungan IP pribadi

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

    Dalam arsitektur lingkungan IP Pribadi:

    • Project tenant menghosting instance Cloud SQL, penyimpanan Cloud SQL, dan dua instance App Engine yang menjalankan server web Airflow.
    • Project pelanggan menghosting semua komponen lingkungan lainnya.
    • Penjadwal dan pekerja Airflow terhubung ke database Airflow melalui proses HAProxy di cluster lingkungan.
    • Load balancing proses HAProxy menyeimbangkan traffic ke instance Cloud SQL antara dua instance Proxy Cloud SQL yang berlokasi di project tenant. Lingkungan IP pribadi menggunakan dua instance Proxy Cloud SQL karena project pelanggan tidak mengakses database secara langsung karena keterbatasan jaringan. Dua instance diperlukan untuk memastikan bahwa komponen lingkungan Anda selalu memiliki akses ke database.

    IP Pribadi dengan DRS

    IP pribadi dengan resource lingkungan DRS Cloud Composer di project tenant dan project pelanggan (klik untuk memperbesar)
    Gambar 3. Arsitektur lingkungan IP pribadi (klik untuk memperbesar)

    Jika kebijakan organisasi Domain restricted Sharing (DRS) diaktifkan di project Anda, Cloud Composer akan menggunakan IP Pribadi dengan arsitektur lingkungan DRS.

    Di IP Pribadi dengan arsitektur lingkungan DRS:

    • Project tenant menghosting instance Cloud SQL, penyimpanan Cloud SQL, dan dua instance App Engine yang menjalankan server web Airflow.

    • Project tenant menghosting bucket lingkungan tambahan. Server web Airflow mengakses bucket ini secara langsung.

    • Project pelanggan menghosting semua komponen lingkungan lainnya.

    • Project pelanggan menghosting proses Sinkronisasi Bucket di cluster lingkungan. Proses ini menyinkronkan dua bucket lingkungan.

    • Penjadwal dan pekerja Airflow terhubung ke database Airflow melalui proses HAProxy di cluster lingkungan.

    • Load balancing proses HAProxy menyeimbangkan traffic ke instance Cloud SQL antara dua instance Proxy Cloud SQL yang berlokasi di project tenant. Lingkungan IP pribadi menggunakan dua instance Proxy Cloud SQL karena project pelanggan tidak mengakses database secara langsung karena keterbatasan jaringan. Dua instance diperlukan untuk memastikan bahwa komponen lingkungan Anda selalu memiliki akses ke database.

    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