W świecie, w którym coraz więcej organizacji kieruje się danymi, ilość danych intensywnie rośnie, a platformy analityczne przechodzą do chmury i stają się coraz bardziej skomplikowane w wdrażaniu, inżynierowie danych nadal chcą dostarczać najwyższej jakości odpowiedzi na pytania biznesowe. Apache Airflow jest dobrze znanym narzędziem do tworzenia, planowania i monitorowania przepływów pracy danych. W tym artykule opisuję ulepszenie wprowadzone w naszym projekcie, które sprawia, że szybciej dostarczamy DAG lepszej jakości.
- Dlaczego potrzebujemy lokalnego środowiska?
- Lokalne środowisko dla Apache Airflow
- Docker Compose jako rozwiązanie
- Zalety lokalnego środowiska Airflow opartego na Docker Compose w porównaniu ze środowiskiem zdalnym
- Przypadki użycia dla lokalnego środowiska przepływu powietrza opartego na Docker Compose
Dlaczego potrzebujemy lokalnego środowiska?
Jako programiści i inżynierowie danych chcemy dostarczać wysokiej jakości produkt gotowy do wdrożenia produkcyjnego bez błędów i problemów z wydajnością. Aby osiągnąć ten cel, wykorzystujemy lokalne środowiska do opracowywania, testowania i optymalizacji naszego kodu.
Lokalne środowisko dla Apache Airflow
Czasami środowiska produkcyjne są bardzo złożone, na przykład wykorzystują Kubernetes klastry i połączenia z usługami w chmurze, a wdrożenie zajmuje dużo czasu. Jak dokonać rozsądnego uproszczenia i przetestować swój kod? Uczmy się na przykładzie Przepływ powietrza ApacheW poprzednim artykule pisaliśmy o przypadkach użycia i ogólnym przeznaczeniu Apache Airflow.Jeśli jesteś nowy w tym temacie gorąco polecam przyjrzeć się https://dsstream.com/when-should-you-consider-using-apache-airflow-use-cases/Zakładam, że znasz Airflow, używasz go stale i zastanawiasz się, jaki jest lepszy sposób pisania i testowania DAG. Nie jesteś sam, mamy ten sam temat podczas naszych spotkań retro 😊 Nasze środowisko produkcyjne i preprod działa w chmurze przy użyciu silnika Kubernetes, synchronizacja DAG zajmowała nam za każdym razem około 2 do 5 minut, więc dla wydajnego rozwoju jest to o wiele zbyt długa.Aby szybciej dostarczać wysokiej jakości rurociągi, postanowiliśmy rozwinąć lokalne środowiska Airflow. Lokalne korzystanie z Kubernetes było dla nas zbyt dużym obciążeniem, ponieważ chcemy skupić się na rozwoju DAG, a nie na konfiguracji. Wybraliśmy prostsze rozwiązanie i użyliśmy Docker Compose.
Docker Compose jako rozwiązanie
Docker Compose to narzędzie do definiowania i uruchamiania aplikacji Docker z wieloma kontenerami. Dzięki Compose możesz ustawić żądaną liczbę kontenerów, ich kompilacje i projekty pamięci masowej, a następnie za pomocą jednego zestawu poleceń możesz budować, uruchamiać i konfigurować wszystkie kontenery. Jest to świetne rozwiązanie do tworzenia i testowania.Istnieje oficjalny plik Docker Compose, który udostępnił nam Społeczność Airflow, jednak aby lepiej odzwierciedlać ustawienia produkcji, dostosowujemy go trochę. Dodaliśmy biblioteki takie jak black, pylint i pytest, aby sprawdzić kod i skrypty pomagające nam w odbudowie obrazu i ustawieniach połączenia w chmurze.

Zalety lokalnego środowiska Airflow opartego na Docker Compose w porównaniu ze środowiskiem zdalnym
Główne zalety, które odkryliśmy przy użyciu lokalnego środowiska Airflow na Docker-Compose to: - szybka aktualizacja DAG - katalog z DAG jest montowany jako wolumen, aktualizacja DAG jest tak szybka jak wartości parametru SCHEDULER_DAG_DIR_LIST_INTERVAL EASY LOGS ACCESS, który może być sekundy - łatwy dostęp do dzienników - katalog z logami jest również montowany jako wolumen i daje nam możliwość szybkiego grep, to może po prostu czytać pliki dziennika - łatwe do zmiany konfiguracji - używamy konfiguracji w pliku.env, pozwala nam na przejrzystą zmianę parametrów bez zastąpienia airflow.cfg i daje nam możliwość posiadamy wiele plików.env i łatwo przełączaj się między konfiguracją.- łatwy do ponownego wdrożenia obrazu - mamy pełną kontrolę nad środowiskiemPrzeczytaj więcej o konfiguracji Airflow 2.0 z wersją i serializacją DAG tutaj.
Przypadki użycia dla lokalnego środowiska przepływu powietrza opartego na Docker Compose
Lokalne środowisko Airflow z Docker-Compose było dla nas pomocne nie tylko przy tworzeniu DAG, ale również było bardzo pomocne, gdy chcemy: - uaktualnić wersję Airflow, - dodać zależności Pythona, - przetestować nowe wersje bibliotek - przetestować nową integrację (jak BigQuery), kiedy zastanawialiśmy się od czego zacząć, użyliśmy Cloud SDK z osobistymi poświadczeniami i sprawić, aby rozwój był szybki i wydajny.Jeśli spotkasz podobne wyzwania w swojej pracy i chciałbyś wymienić doświadczenia lub skorzystaj z naszego wsparcia Skontaktuj się z nami.