Apache airflow, 2014 yılında airbnb şirketinin iş akışlarının giderek karmaşık bir hale gelmesiyle ortaya çıkan iş akışlarını programlı olarak yazmak, planlamak ve takip etmek için açık kaynaklı bir araçtır.
Bir iş akışı, bir DAG (Yönlendirilmiş döngüsel grafik) olarak temsil edilir. Bir DAG, görevler (eylem öğeleri) içerir ve bunlar ile yürütülme sırası arasındaki bağımlılıkları belirtir. Zamanlayıcı, zamanlanmış iş akışlarını yönetir ve görevleri, onları çalıştıran yürütücüye gönderir. Yürütücü, görevleri çalışanlara iletir. Bir airflow mimarisinin diğer tipik bileşenleri, durum meta verilerini depolamak için bir veritabanı, görevleri ve DAG'leri denetlemek ve hata ayıklamak için kullanılan bir web sunucusunu ve DAG dosyalarını içeren bir klasörü içerir.
Yürütme sırasına sahip bir dizi görev.
Tanımlanmış bir iş birimi.
Airflow kullanıcı arayüzüdür, ayrıca airflow kurulumu için kullanıcıları, rolleri ve farklı konfigürasyonları yönetmemizi sağlar.
İşleri programlar ve görevleri düzenler. Hangi görevlerin, ne zaman ve nerede çalıştırılması gerektiğine karar vermek için DAG nesnesini kullanır.
Airflow durumlarını saklar.
Görevleri yürütür. İki tür yürütücü vardır. Görevleri yerel olarak çalıştıranlar ve görevlerini uzaktan yürütenler. Airflow, varsayılan olarak yerel bir yürütücü olan sequential executor ile yapılandırılmış olarak gelir.
Yürütücü türleri:
Yerel yürütücüler (Local executors)
Uzak yürütücüler (Remote executors)
Airflow, üçüncü taraf sistemlerle arayüz oluşturmak için Kancaları kullanır ve harici API'lere ve veritabanlarına (örn. Hive, S3, GCS, MySQL, Postgres) bağlantı sağlar.
Belirli bir hizmet için temel operatörleri ve kancaları içeren paketler. Doğrudan bir airflow ortamına kurulabilirler.
SalesForce'tan amazon redshift'e veri göndermek gibi belirli görevlerin gerçekleştirilmesine yardımcı olacak çeşitli kancalar ve operatörler.
Harici bir sisteme bağlantı sağlayan bilgileri içerir. Bu, kimlik doğrulama kimlik bilgilerini ve API belirteçlerini içerir. Bağlantıları doğrudan kullanıcı arayüzünden yönetebilirsiniz ve hassas veriler şifrelenecek ve postgreSQL veya mysql'de saklanacaktır.
Duymuş olabileceğiniz iyi bilinen bazı iş akışı yöneticileri ile airflow’u karşılaştıralım.
Data pipelines with apache airflow
Bazı araçlar ilk olarak bir şirketin çalışanları tarafından (eski) oluşturulmuştur.
Kullanıcı arayüzlerinin kalitesi ve özellikleri büyük ölçüde farklılık gösterir.
https://github.com/bitphy/argo-cron.
Bu iş akışı yöneticilerinin her birinin kendi güçlü ve zayıf yönleri olsa da, hepsi birden çok görev içeren ve bağımlılıkları olan boru hatları tanımlamasına ve çalıştırılmasına olanak tanıyan benzer temel işlevler sağlar. Araçlar arasındaki temel farklılıklardan biri, iş akışlarını tanımlama yöntemidir.