Bagikan melalui


Menerapkan Apache Airflow pada Azure Kubernetes Service (AKS) - Gambaran Umum

Dalam panduan ini, Anda menyebarkan Apache Airflow di Azure Kubernetes Service (AKS) menggunakan Helm. Anda mempelajari cara menyiapkan kluster AKS, menginstal Helm, menyebarkan Airflow menggunakan bagan Helm, dan menjelajahi UI Airflow.

Penting

Perangkat lunak sumber terbuka disebutkan di seluruh dokumentasi dan sampel AKS. Perangkat lunak yang Anda sebarkan dikecualikan dari perjanjian tingkat layanan AKS, garansi terbatas, dan dukungan Azure. Saat Anda menggunakan teknologi sumber terbuka bersama AKS, konsultasikan opsi dukungan yang tersedia dari masing-masing komunitas dan pengelola proyek untuk mengembangkan rencana.

Misalnya, repositori Ray GitHub menjelaskan beberapa platform yang bervariasi dalam tingkat waktu respons, tujuan, dan dukungan.

Microsoft bertanggung jawab untuk membangun paket sumber terbuka yang kami sebarkan di AKS. Tanggung jawab itu termasuk menguasai sepenuhnya proses build, pemindaian, penandatanganan, validasi, dan hotfix, bersama dengan mengelola file biner dalam gambar kontainer. Untuk informasi selengkapnya, lihat Manajemen kerentanan untuk AKS dan Cakupan dukungan AKS.

Apa itu Apache Airflow?

Apache Airflow adalah platform sumber terbuka yang dibangun untuk mengembangkan, menjadwalkan, dan memantau alur kerja berorientasi batch. Dengan kerangka kerja Python yang fleksibel, Airflow memungkinkan Anda merancang alur kerja yang terintegrasi dengan mulus dengan hampir semua teknologi. Di Airflow, Anda harus menentukan alur kerja Python, yang diwakili oleh Directed Acyclic Graph (DAG). Anda dapat menyebarkan Airflow di mana saja, dan setelah menyebarkan, Anda dapat mengakses UI Airflow dan menyiapkan alur kerja.

Arsitektur aliran udara

Pada tingkat tinggi, Airflow meliputi:

  • Database metadata yang melacak status DAG, instans tugas, XCom, dan banyak lagi.
  • Server web yang menyediakan UI Airflow untuk pemantauan dan manajemen.
  • Penjadwal yang bertanggung jawab untuk mengaktifkan DAG dan instans-instans tugas.
  • Pelaksana yang mengelola pelaksanaan unit tugas.
  • Pekerja yang melakukan tugas.
  • Komponen lain seperti Command Line Interface (CLI).

Cuplikan layar arsitektur Apache Airflow di AKS.

Arsitektur terdistribusi Airflow untuk produksi

Arsitektur terdistribusi Airflow menawarkan beberapa keuntungan utama untuk beban kerja produksi:

  • Pemisahan kekhawatiran: Setiap komponen memiliki peran yang berbeda, menjaga sistem tetap sederhana dan dapat dipertahankan. Penjadwal mengelola DAG dan penjadwalan tugas, sementara pekerja menjalankan tugas, memastikan bahwa setiap bagian tetap fokus pada fungsi spesifiknya.
  • Skalabilitas: Seiring bertambahnya beban kerja, arsitektur memungkinkan penskalaan yang mudah. Anda dapat menjalankan beberapa penjadwal atau pekerja secara bersamaan dan memanfaatkan database yang dihosting untuk penskalaan otomatis untuk mengakomodasi peningkatan permintaan.
  • Keandalan: Karena komponen dipisahkan, kegagalan penjadwal tunggal atau pekerja tidak menyebabkan pemadaman di seluruh sistem. Database metadata terpusat memastikan konsistensi dan kelangsungan di seluruh sistem.
  • Ekstensibilitas: Arsitekturnya fleksibel, memungkinkan komponen seperti pelaksana atau layanan antrean ditukar dan disesuaikan sesuai kebutuhan.

Desain ini memberikan fondasi yang kuat untuk penskalaan, keandalan, dan fleksibilitas dalam mengelola alur data yang kompleks.

Pelaksana aliran udara

Keputusan desain yang sangat penting ketika membuat Airflow siap produksi adalah memilih pelaksana yang benar. Ketika tugas siap dijalankan, pelaksana bertanggung jawab untuk mengelola eksekusinya. Pelaksana berinteraksi dengan kumpulan pekerja yang melaksanakan tugas. Pelaksana yang paling umum digunakan adalah:

  • LocalExecutor: Menjalankan instans tugas secara paralel pada sistem host. Pelaksana ini sangat ideal untuk pengujian, tetapi menawarkan skalabilitas terbatas untuk beban kerja yang lebih besar.
  • CeleryExecutor: Mendistribusikan tugas di beberapa mesin menggunakan pool Celery, memberikan skalabilitas horizontal dengan menjalankan worker pada node yang berbeda.
  • KubernetesExecutor: Disesuaikan untuk penyebaran Airflow di Kubernetes, pelaksana ini secara dinamis meluncurkan Pod pekerja dalam kluster Kubernetes. Ini menawarkan skalabilitas yang sangat baik dan memastikan isolasi sumber daya yang kuat.

Saat kita memindahkan Airflow ke produksi, penskalaan pekerja menjadi penting, menjadikan eksekutor Kubernetes yang paling sesuai dengan kebutuhan kita. Namun, untuk pengujian lokal, LocalExecutor adalah opsi paling sederhana.

Langkah selanjutnya

Kontributor

Microsoft mempertahankan artikel ini. Kontributor berikut awalnya menulisnya:

  • Don Tinggi | Insinyur Pelanggan Utama
  • Satya Chandragiri | Arsitek Solusi Cloud Digital Senior
  • Erin Schaffer | Pengembang Konten 2