Udostępnij za pośrednictwem


Omówienie wdrażania platformy Apache Airflow w usłudze Azure Kubernetes Service (AKS)

W tym przewodniku wdrożysz platformę Apache Airflow w usłudze Azure Kubernetes Service (AKS) przy użyciu programu Helm. Dowiesz się, jak skonfigurować klaster usługi AKS, zainstalować program Helm, wdrożyć aplikację Airflow przy użyciu pakietu Helm i zapoznać się z interfejsem użytkownika airflow.

Ważne

Oprogramowanie typu open source jest wymienione w dokumentacji i przykładach usługi AKS. Wdrażane oprogramowanie jest wykluczone z umów dotyczących poziomu usług AKS, ograniczonej gwarancji i pomoc techniczna platformy Azure. W miarę korzystania z technologii open source wraz z usługą AKS zapoznaj się z opcjami pomocy technicznej dostępnymi w odpowiednich społecznościach i opiekunami projektów, aby opracować plan.

Na przykład repozytorium Ray GitHub opisuje kilka platform, które różnią się w czasie odpowiedzi, celu i poziomie pomocy technicznej.

Firma Microsoft ponosi odpowiedzialność za tworzenie pakietów typu open source wdrażanych w usłudze AKS. Ta odpowiedzialność obejmuje posiadanie pełnej własności procesu kompilacji, skanowania, podpisywania, weryfikowania i poprawek oraz kontroli nad plikami binarnymi na obrazach kontenerów. Aby uzyskać więcej informacji, zobacz Zarządzanie lukami w zabezpieczeniach dla usług AKS i pokrycie pomocy technicznej usługi AKS.

Co to jest Apache Airflow?

Apache Airflow to platforma typu open source utworzona do tworzenia, planowania i monitorowania przepływów pracy zorientowanych na partie. Dzięki elastycznej strukturze języka Python platforma Airflow umożliwia projektowanie przepływów pracy, które bezproblemowo integrują się z niemal dowolną technologią. W funkcji Airflow należy zdefiniować przepływy pracy języka Python reprezentowane przez graf Acykliczny (DAG). Możesz wdrożyć rozwiązanie Airflow w dowolnym miejscu i po wdrożeniu, aby uzyskać dostęp do interfejsu użytkownika aplikacji Airflow i skonfigurować przepływy pracy.

Architektura przepływu powietrza

Na wysokim poziomie airflow obejmuje:

  • Baza danych metadanych, która śledzi stan grup DAG, wystąpień zadań, XComs i nie tylko.
  • Serwer internetowy udostępniający interfejs użytkownika przepływu powietrza na potrzeby monitorowania i zarządzania.
  • Harmonogram odpowiedzialny za wyzwalanie grup DAG i wystąpień zadań.
  • Funkcje wykonawcze obsługujące wykonywanie wystąpień zadań.
  • Pracownicy wykonujący zadania.
  • Inne składniki, takie jak interfejs wiersza polecenia.

Zrzut ekranu przedstawiający architekturę platformy Apache Airflow w usłudze AKS.

Architektura rozproszona przepływu powietrza dla środowiska produkcyjnego

Modularna, rozproszona architektura systemu Airflow oferuje kilka kluczowych zalet obciążeń produkcyjnych:

  • Separacja problemów: każdy składnik ma odrębną rolę, zachowując prostotę i konserwację systemu. Harmonogram zarządza grupami DAG i planowaniem zadań, a pracownicy wykonują zadania, zapewniając, że każda część pozostaje skoncentrowana na określonej funkcji.
  • Skalowalność: w miarę zwiększania się obciążeń architektura umożliwia łatwe skalowanie. Można uruchamiać wiele harmonogramów lub procesów roboczych jednocześnie i korzystać z hostowanej bazy danych do automatycznego skalowania w celu zaspokojenia zwiększonego zapotrzebowania.
  • Niezawodność: ponieważ składniki są oddzielone, awaria jednego harmonogramu lub procesu roboczego nie prowadzi do awarii całego systemu. Scentralizowana baza danych metadanych zapewnia spójność i ciągłość w całym systemie.
  • Rozszerzalność: Architektura jest elastyczna, co umożliwia zamianę i dostosowanie składników, takich jak funkcja wykonawcza lub usługa kolejkowania.

Ten projekt zapewnia solidną podstawę do skalowania, niezawodności i elastyczności w zarządzaniu złożonymi potokami danych.

Funkcje wykonawcze przepływu powietrza

Bardzo ważna decyzja projektowa podczas podejmowania gotowości do produkcji airflow polega na wyborze prawidłowego wykonawcy. Gdy zadanie jest gotowe do uruchomienia, funkcja wykonawcza jest odpowiedzialna za zarządzanie jego wykonaniem. Funkcje wykonawcze współdziałają z pulą procesów roboczych, które wykonują zadania. Najczęściej używane funkcje wykonawcze to:

  • LocalExecutor: uruchamia wystąpienia zadań równolegle w systemie hosta. Ta funkcja wykonawcza jest idealna do testowania, ale oferuje ograniczoną skalowalność w przypadku większych obciążeń.
  • SelryExecutor: dystrybuuje zadania na wielu maszynach przy użyciu puli selera, zapewniając skalowalność poziomą, uruchamiając procesy robocze w różnych węzłach.
  • KubernetesExecutor: dostosowany do wdrożeń airflow na platformie Kubernetes, ten funkcja wykonawcza dynamicznie uruchamia zasobniki robocze w klastrze Kubernetes. Zapewnia doskonałą skalowalność i zapewnia silną izolację zasobów.

W miarę przejścia rozwiązania Airflow do środowiska produkcyjnego skalowanie procesów roboczych staje się niezbędne, dzięki czemu rozwiązanie KubernetesExecutor jest najlepszym rozwiązaniem dla naszych potrzeb. W przypadku testowania lokalnego jest jednak najprostsza opcja LocalExecutor.

Następny krok

Współautorzy

Firma Microsoft utrzymuje ten artykuł. Następujący współautorzy pierwotnie to napisali:

  • Don High | Główny inżynier klienta
  • Satya Chandragiri | Starszy architekt rozwiązań w chmurze cyfrowej
  • Erin Schaffer | Content Developer 2