Dzisiaj AWS ogłasza dostępność lokalnych aktualizacji wersji dla Przepływ pracy zarządzany przez Amazon dla Apache Airflow (Amazon MWAA). To ulepszenie umożliwia bezproblemową aktualizację istniejących środowisk Apache Airflow w wersji 2.x do nowszych dostępnych wersji przy jednoczesnym zachowaniu historii uruchamiania przepływu pracy i konfiguracji środowiska. Możesz teraz korzystać z najnowszych możliwości platformy Apache Airflow bez konieczności tworzenia zupełnie nowego środowiska Amazon MWAA.
Do tej pory, jeśli chciałeś zaktualizować swoje środowisko Amazon MWAA do innej wersji Apache Airflow, musiałeś postępować zgodnie z Migracja środowiska Amazon MWAA instrukcje. Wymagało to stworzenia nowego środowiska Amazon MWAA, a następnie migracji wszystkich konfiguracji i Kierowane grafy acykliczne (DAG) do tego. Jeśli potrzebowałeś również zachować historię uruchomień DAG, musiałeś wykonać kopię zapasową bazy danych metadanych, a następnie przywrócić tę kopię zapasową na nowo utworzonym środowisku. Ten proces był podatny na błędy, ręczny i wiązał się z dodatkowymi kosztami utrzymania dwóch oddzielnych środowisk Amazon MWAA do czasu weryfikacji nowego i wycofania starego.
W tym poście przedstawiamy omówienie funkcji uaktualniania wersji w miejscu, badamy odpowiednie przypadki użycia, szczegółowo opisujemy kroki jej użycia oraz zapewniamy dodatkowe wskazówki dotyczące jej możliwości.
Przegląd rozwiązania
Nowo wprowadzone lokalne aktualizacje wersji przez Amazon MWAA zapewniają usprawnione przejście z istniejących środowisk opartych na Apache Airflow w wersji 2.x do nowszych dostępnych wersji Apache Airflow. Amazon MWAA zarządza całym procesem aktualizacji, od udostępniania nowych wersji Apache Airflow po aktualizację bazy danych metadanych. W przypadku niepowodzenia aktualizacji, Amazon MWAA ma na celu przywrócenie poprzedniej stabilnej wersji przy użyciu powiązanej migawki bazy danych metadanych.
Aktualizacja istniejących środowisk na Amazon MWAA to prosty proces. Możesz zaktualizować istniejące środowiska Apache Airflow 2.0 i nowsze na Amazon MWAA za pomocą zaledwie kilku kliknięć na konsoli Amazon MWAA, korzystając z interfejsu API Amazon MWAA, Interfejs wiersza poleceń AWS (AWS CLI) lub za pomocą narzędzi takich jak Tworzenie chmury AWSThe Zestaw programistyczny AWS Cloud (AWS CDK), lub Terraform. Ta funkcja jest dostępna we wszystkich obecnie obsługiwanych regionach Amazon MWAA.
Na konsoli Amazon MWAA po prostu edytuj środowisko i wybierz dostępną wersję Apache Airflow wyższą niż bieżąca wersja istniejącego środowiska. Możesz także skorzystać z tzw Zaktualizuj środowisko API i określ nową wersję Apache Airflow, aby uruchomić proces aktualizacji. Aby dowiedzieć się więcej o uaktualnieniach wersji w miejscu, zobacz Aktualizacja wersji Apache Airflow z dokumentacji Amazon MWAA.
Podczas aktualizacji Amazon MWAA najpierw tworzy migawkę bazy danych metadanych istniejącego środowiska, która następnie służy jako podstawa dla nowej bazy danych. Następnie wszystkie komponenty Apache Airflow — serwer WWW, harmonogram i procesy robocze — są aktualizowane. Na koniec aktualizowana jest nowo utworzona baza danych metadanych, skutecznie kończąc przejście do nowego środowiska.
Obowiązujące przypadki użycia
Powinieneś rozważyć uaktualnienie wersji Apache Airflow na Amazon MWAA, jeśli istniejące przepływy pracy mogą uwzględnić zmianę i dostępna jest nowa wersja z funkcjami lub ulepszeniami, które są zgodne z twoim przypadkiem użycia. Dzięki aktualizacji możesz skorzystać z najnowszych możliwości platformy Apache Airflow i zachować kompatybilność z nowymi funkcjami i najlepszymi praktykami, takimi jak planowanie oparte na danych i nowe pakiety dostawców Amazon wydany w Apache Airflow 2.4.3. Proces aktualizacji wiąże się z przestojem środowiska, który może zająć do 2 godzin w zależności od rozmiaru środowiska i może być wykonany na żądanie w czasie, który najbardziej Ci odpowiada. Jeśli Twoje istniejące środowisko jest tak intensywnie używane, że nie możesz sobie pozwolić na przestoje, zamiast tego rozważ utworzenie nowego środowiska.
Wymagania wstępne
Przygotowując się do aktualizacji, upewnij się, że wykonałeś następujące czynności wstępne:
- Sprawdź zmiany Apache Airflow między istniejącymi i nowymi wersjami środowiska. Przejrzyj przepływ powietrza Apache Informacje o wydaniu aby zrozumieć wpływ nowych funkcji, znaczących zmian i poprawek błędów, które wszystkie pośrednie wersje Apache Airflow wprowadziły między wersją źródłową a docelową.
- Przejrzyj swoje obecne
requirements.txt
plik, aby zweryfikować poprawny zestaw zależności wymaganych dla środowiska docelowego. Dodatkowo sprawdź, czy twójrequirements.txt
plik ma prawidłowy plik ograniczeń dodany na górze pliku, aby pasował do środowiska docelowego. Plik ograniczeń Apache Airflow określa zależne moduły i wersje dostawców dostępne w momencie wydania Apache Airflow. Dodanie pliku ograniczeń zapobiega instalowaniu niekompatybilnych bibliotek w danym środowisku. W poniższym przykładzie zamień{Airflow-version}
z numerem wersji środowiska docelowego i{Python-version}
z wersją Pythona zgodną z twoim środowiskiem:--constraint "https://raw.githubusercontent.com/apache/airflow/constraints-{Airflow-version}/constraints-{Python-version}.txt"
- Przejrzyj zgodność dodatkowych bibliotek Pythona wymienionych w twoim
requirements.txt
plik pasujący do środowiska docelowego. Apache Airflow w wersji 2.4.3 i nowszych używa języka Python w wersji 3.10, podczas gdy starsze wersje Apache Airflow używają języka Python w wersji 3.7. Dlatego jeśli próbujesz zaktualizować istniejące środowisko oparte na Apache Airflow v2.0.2/2.2.2 do Apache Airflow v2.4.3 lub nowszej, powinieneś zaktualizować dodatkowe biblioteki Pythona, aby były zgodne z Pythonem v3.10. - W przypadku Apache Airflow w wersji 2.4.3 i nowszych zmieniła się lista pakietów dostawców, które Amazon MWAA domyślnie instaluje w Twoim środowisku. Należy zauważyć, że niektóre importy i nazwy operatorów zostały zmienione w nowym pakiecie dostawcy w Apache Airflow w celu ujednolicenia konwencji nazewnictwa w pakietach dostawców. Porównaj lista pakietów dostawców instalowanych domyślnie w Apache Airflow v2.2.2 lub v2.0.2 i skonfiguruj wszelkie dodatkowe pakiety, których możesz potrzebować dla nowego środowiska Apache Airflow v2.4.3 lub nowszego.
- Upewnij się, że Twoje DAG i inne zasoby przepływu pracy są zgodne z nową wersją Apache Airflow, do której aktualizujesz.
- Użyj aws-mwaa-lokalny-biegacz narzędzie do testowania istniejących DAG, wymagań, wtyczek i zależności lokalnie przed wdrożeniem do Amazon MWAA. Możesz utworzyć lokalnie docelowe środowisko Apache Airflow, które jest podobne do obrazu produkcyjnego Amazon MWAA
aws-mwaa-local-runner
i sprawdź, czy wszystkie komponenty działają przed przystąpieniem do aktualizacji środowiska Amazon MWAA. Ponadto przetestuj proces aktualizacji nowego środowiska w środowiskach Amazon MWAA o niższym poziomie, takich jak dev lub staging, przed wdrożeniem aktualizacji w środowiskach produkcyjnych.
Proces aktualizacji
Po zainicjowaniu aktualizacji Amazon MWAA zatrzymuje istniejące podstawowe komponenty Apache Airflow (serwer WWW, harmonogram i procesy robocze). Ten proces zatrzymuje wszystkie aktualnie uruchomione zadania procesu roboczego. Stan twojego środowiska na tym etapie będzie pokazany jako UPDATING
. Proces uaktualniania tworzy następnie migawkę bazy danych metadanych, oznaczoną statusem CREATING_SNAPSHOT
. Po ukończeniu migawki stan środowiska powraca do UPDATING
ponieważ Amazon MWAA uruchamia tworzenie nowego środowiska Apache Airflow, które pasuje do wybranej wersji i stosuje niezbędne zmiany schematu w istniejącej bazie danych metadanych, aby dostosować ją do docelowego środowiska Apache Airflow. Podczas tej fazy instalowane są określone wymagania, wtyczki i inne zależności.
Po zakończeniu nowe środowisko zostanie oznaczone jako AVAILABLE
, wskazując, że proces aktualizacji zakończył się pomyślnie, a środowisko jest gotowe do testowania. Możesz teraz zalogować się do interfejsu użytkownika Apache Airflow, aby zweryfikować obecność istniejących DAG, ich historyczne przebiegi, skonfigurowane połączenia i nie tylko.
Jeśli jednak wystąpią błędy podczas instalowania określonych wymagań, wtyczek i plików zależności, środowisko zainicjuje powrót do poprzedniej stabilnej wersji. Podczas tego procesu stan środowiska będzie wyświetlany jako ROLLING_BACK
. Jeśli wycofanie się powiedzie, poprzednie stabilne środowisko będzie dostępne, a stan będzie wyświetlany jako UPDATE_FAILED
do czasu próby nowej aktualizacji, która zakończy się powodzeniem. Jeśli wycofanie nie powiedzie się, stan będzie wyświetlany jako UNAVAILABLE
, wskazując, że Twoje środowisko nie działa.
Jeśli proces uaktualniania środowiska nie powiedzie się, prawdopodobnie plik bazowy Usługa Amazon Elastic Container Service (Amazon ECS) AWS-Fargate klastry miały problemy ze stabilizacją spowodowane sprzecznymi wymaganiami i wtyczkami, problemami z siecią lub problemami z migracją bazy danych po aktualizacji komponentu Apache Airflow. Aby złagodzić te problemy, upewnij się, że Twoje DAG i wymagania działają bez problemów przy użyciu aws-mwaa-local-runner
narzędzie i, najlepiej, przetestować w środowisku testowym Amazon MWAA.
Dodatkowe uwagi
Należy pamiętać o następujących dodatkowych informacjach dotyczących tej funkcji:
- Proces aktualizacji jest dostępny na żądanie i będzie ograniczony do przejścia na nowsze wersje. Uaktualnienia wersji na miejscu w usłudze Amazon MWAA nie są obsługiwane w przypadku wersji 1.10.z. Aby przeprowadzić uaktualnienie wersji głównej, na przykład z wersji 1.yz do 2.yz, należy utworzyć nowe środowisko i przeprowadzić migrację zasobów.
- Możesz wybrać tylko odpowiednie wyższe wersje, do których możesz dokonać aktualizacji. Downgrad do niższej wersji nie jest dostępny.
- Proces wycofywania może zająć dodatkowy czas i, jeśli masz Usługa Amazon Simple Storage (Amazon S3) włączone wersjonowanie zasobników, Amazon MWAA ma na celu przywrócenie środowiska do poprzedniej konfiguracji roboczej, w tym wtyczek i wymagań. Jednak wszelkie ręczne zmiany wprowadzone w Twoich DAG-ach nie zostaną cofnięte podczas tego procesu.
- Po pomyślnym zakończeniu procesu uaktualniania i udostępnieniu środowiska wszelkie uruchomione DAG, które zostały przerwane podczas uaktualniania, zostaną zaplanowane do ponowienia, w zależności od sposobu skonfigurowania ponownych prób dla DAG. Możesz także uruchomić je ręcznie lub poczekać na następne zaplanowane uruchomienie.
- Powinieneś iteracyjnie aktualizować swoje środowiska, zaczynając od tych najmniej krytycznych.
Wnioski
W tym poście rozmawialiśmy o nowej funkcji Amazon MWAA, która umożliwia aktualizację istniejącego środowiska Amazon MWAA do wyższych wersji Apache Airflow. Ta funkcja jest obsługiwana w nowych i istniejących środowiskach Amazon MWAA z systemem Apache Airflow 2.x lub nowszym. Użyj tej funkcji, aby zaktualizować wersje Apache Airflow, zachowując istniejące historie uruchamiania przepływów pracy i konfiguracje środowiska. Dokonując aktualizacji, możesz skorzystać z najnowszych możliwości platformy Apache Airflow i zachować kompatybilność z nowymi funkcjami oraz stosować się do najlepszych praktyk.
Aby uzyskać dodatkowe informacje i przykłady kodu dotyczące Amazon MWAA, odwiedź stronę Podręcznik użytkownika Amazon MWAA oraz Amazon MWAA przykłady repozytorium GitHub.
Apache, Apache Airflow i Airflow są zarejestrowanymi znakami towarowymi lub znakami towarowymi firmy Apache Software Foundation w Stanach Zjednoczonych i/lub innych krajach.
O autorach
Parnaba Basaka jest Architektem Rozwiązań i Specjalistą Serverless w AWS. Specjalizuje się w tworzeniu nowych rozwiązań natywnych w chmurze przy użyciu nowoczesnych praktyk wytwarzania oprogramowania, takich jak serverless, DevOps i analityka. Parnab ściśle współpracuje w obszarze usług analitycznych i integracyjnych, pomagając klientom w adaptacji usług AWS do ich potrzeb w zakresie orkiestracji przepływu pracy.
Fernando Gamero jest inżynierem Senior Solutions Architect w AWS, posiadającym ponad 25-letnie doświadczenie w branży technologicznej, od telekomunikacji, bankowości po startupy. Obecnie pomaga klientom w budowaniu architektur opartych na zdarzeniach, wdrażaniu rozwiązań IoT na krawędzi oraz przekształcaniu ich danych i potoków uczenia maszynowego na dużą skalę.
Shubhama Mehtę jest doświadczonym menedżerem produktu z ponad ośmioletnim doświadczeniem i udokumentowanym doświadczeniem w dostarczaniu udanych produktów. W swojej obecnej roli starszego menedżera produktu w AWS nadzoruje Amazon Managed Workflows dla Apache Airflow (Amazon MWAA) i stoi na czele wkładu open source Apache Airflow w celu dalszego ulepszania funkcjonalności produktu.
- Dystrybucja treści i PR oparta na SEO. Uzyskaj wzmocnienie już dziś.
- PlatoAiStream. Analiza danych Web3. Wiedza wzmocniona. Dostęp tutaj.
- Wybijanie przyszłości w Adryenn Ashley. Dostęp tutaj.
- Kupuj i sprzedawaj akcje spółek PRE-IPO z PREIPO®. Dostęp tutaj.
- Źródło: https://aws.amazon.com/blogs/big-data/introducing-in-place-version-upgrades-with-amazon-mwaa/
- :ma
- :Jest
- :nie
- $W GÓRĘ
- 1
- 10
- 100
- 110
- 7
- a
- O nas
- powyżej
- pomieścić
- w poprzek
- acykliczny
- w dodatku
- dodanie
- Dodatkowy
- Dodatkowe informacje
- do tego
- przylegać
- przyjąć
- Przyjęcie
- Korzyść
- Po
- wyrównać
- Wszystkie kategorie
- pozwala
- również
- Amazonka
- Przepływy pracy zarządzane przez Amazon dla Apache Airflow (Amazon MWAA)
- Amazon Web Services
- an
- analityka
- i
- Ogłaszając
- każdy
- Apache
- api
- odpowiedni
- SĄ
- AS
- powiązany
- At
- próbę
- próbując
- dostępność
- dostępny
- AWS
- z powrotem
- backup
- Bankowość
- podstawa
- BE
- być
- zanim
- jest
- BEST
- Najlepsze praktyki
- pomiędzy
- Bug
- Budowanie
- by
- CAN
- możliwości
- walizka
- Etui
- powodowany
- zmiana
- zmieniony
- Zmiany
- dokładnie
- Chmura
- Chmura rodzimych
- kod
- porównać
- zgodność
- zgodny
- kompletny
- Zakończony
- wypełniając
- ukończenia
- składnik
- składniki
- systemu
- Sprzeczny
- połączenia
- Rozważać
- Konsola
- Ograniczenia
- Pojemnik
- składki
- Konwencja
- skorygowania
- Koszty:
- mógłby
- kraje
- Stwórz
- stworzony
- tworzy
- Tworzenie
- tworzenie
- krytyczny
- Aktualny
- Obecnie
- Klientów
- DZIEŃ
- dane
- sterowane danymi
- Baza danych
- Domyślnie
- dostarczanie
- Kreowanie
- zależny
- W zależności
- wdrażanie
- zaprojektowany
- miejsce przeznaczenia
- detal
- detale
- dev
- oprogramowania
- DevOps
- różne
- Wyświetlacz
- dokumentacja
- przestojów
- napędzany
- podczas
- krawędź
- faktycznie
- bądź
- włączony
- inżynier
- wzmacniać
- wzmocnienie
- zapewnić
- Cały
- całkowicie
- Środowisko
- środowiska
- błąd
- Eter (ETH)
- wydarzenie
- przykład
- przykłady
- Przede wszystkim system został opracowany
- doświadczenie
- doświadczony
- odkryj
- nie
- Brak
- Cecha
- Korzyści
- kilka
- filet
- Akta
- W końcu
- i terminów, a
- obserwuj
- następujący
- W razie zamówieenia projektu
- od
- funkcjonalny
- Funkcjonalność
- dalej
- GitHub
- poradnictwo
- miał
- Have
- mający
- he
- ciężko
- pomoc
- wyższy
- jego
- historyczny
- historia
- GODZINY
- Jednak
- HTML
- http
- HTTPS
- if
- obraz
- Rezultat
- import
- ulepszenia
- in
- Włącznie z
- niezgodny
- wskazując,
- przemysł
- Informacja
- Inicjuje
- Instalacja
- zamiast
- instrukcje
- integracja
- Pośredni
- przerwane
- wprowadzono
- wprowadzenie
- zaangażowany
- Internet przedmiotów
- problemy
- IT
- JEGO
- jpg
- właśnie
- później
- firmy
- UCZYĆ SIĘ
- nauka
- najmniej
- biblioteki
- lubić
- Prawdopodobnie
- Ograniczony
- Linia
- Lista
- lokalnie
- log
- maszyna
- uczenie maszynowe
- zrobiony
- utrzymać
- poważny
- robić
- zarządzane
- kierownik
- zarządza
- podręcznik
- ręcznie
- wyraźny
- Mecz
- wzmiankowany
- Metadane
- może
- migrować
- migracja
- migracja
- nic
- Złagodzić
- Nowoczesne technologie
- Moduły
- jeszcze
- przeniesienie
- musi
- Nazwy
- nazywania
- rodzimy
- niezbędny
- Potrzebować
- potrzebne
- wymagania
- sieci
- Nowości
- Nowa cecha
- Nowe funkcje
- nowe rozwiązania
- nowo
- Następny
- już dziś
- numer
- of
- Stary
- on
- te
- tylko
- open source
- operator
- or
- orkiestracja
- zamówienie
- Inne
- na zewnątrz
- koniec
- przegląd
- pakiet
- Pakiety
- wykonać
- wykonywane
- faza
- Platforma
- plato
- Analiza danych Platona
- PlatoDane
- wtyczki
- Post
- praktyki
- przygotowanie
- obecność
- zapobiega
- poprzedni
- wygląda tak
- Produkt
- product manager
- Produkcja
- Produkty
- Sprawdzony
- zapewniać
- dostawca
- Python
- gotowy
- rekord
- regiony
- zarejestrowany
- zwolnić
- prasowe
- obsługi produkcji rolnej, która zastąpiła
- wymagany
- wymagania
- Zasoby
- przywracać
- wspornikowy
- powraca
- przywrócić
- przeglądu
- Rola
- Rolka
- Walcowanie
- run
- bieganie
- Skala
- zaplanowane
- szeregowanie
- płynnie
- wybór
- senior
- oddzielny
- Bezserwerowe
- służy
- Usługi
- zestaw
- powinien
- pokazać
- znaczący
- podobny
- Prosty
- po prostu
- Rozmiar
- Migawka
- Tworzenie
- rozwoju oprogramowania
- Rozwiązania
- kilka
- Źródło
- Typ przestrzeni
- specjalista
- specjalizuje się
- określony
- stabilny
- STAGE
- inscenizacja
- Startowy
- Startups
- Zjednoczone
- Rynek
- Cel
- Zatrzymuje
- przechowywanie
- bezpośredni
- usprawniony
- Następnie
- udany
- Z powodzeniem
- taki
- Utrzymany
- Brać
- cel
- zadania
- Technologia
- telekomunikacja
- Terraform
- test
- Testowanie
- niż
- że
- Połączenia
- ich
- Im
- następnie
- Tam.
- w związku z tym
- Te
- to
- czas
- do
- narzędzia
- Top
- śledzić
- znaki towarowe
- transformatorowy
- przejście
- wyzwalać
- drugiej
- ui
- zasadniczy
- zrozumieć
- Zjednoczony
- United States
- aż do
- Aktualizacja
- uaktualnienie
- zmodernizowane
- Uaktualnienia
- posługiwać się
- przypadek użycia
- używany
- Użytkownik
- za pomocą
- użyteczność
- zweryfikować
- wersja
- Odwiedzić
- czekać
- poszukiwany
- była
- Droga..
- we
- sieć
- serwer wWW
- usługi internetowe
- były
- jeśli chodzi o komunikację i motywację
- który
- Podczas
- będzie
- w
- bez
- Praca
- pracownik
- pracowników
- workflow
- przepływów pracy
- pracujący
- działa
- X
- lat
- ty
- Twój
- zefirnet