Wzorce choreografii a orkiestracji
Porównać choreografię zdarzeń (każda usługa reaguje niezależnie) z orkiestracją (centralny koordynator kieruje usługami) oraz wybrać właściwy wzorzec dla architektury.
Wzorce choreografii a orkiestracji to bezpłatna lekcja Cloud & IT Cert Prep na CoddyKit. To lekcja 4 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Cloud & IT Cert Prep, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Cloud & IT Cert Prep zawiera 4 lekcji w sumie.
Dwa podejścia do koordynacji mikrousług
Gdy mikrousługi muszą współpracować, aby zrealizować proces biznesowy, można zastosować dwa podstawowe wzorce koordynacji. Orkiestracja wykorzystuje centralnego koordynatora (takiego jak Step Functions), który jawnie wydaje polecenia poszczególnym usługom. Choreografia nie ma centralnego koordynatora — usługi nasłuchują zdarzeń i niezależnie na nie reagują. Zrozumienie, który wzorzec wybrać i kiedy je łączyć, jest kluczową umiejętnością architektoniczną sprawdzaną na egzaminie SAA-C03.
Wyjaśnienie wzorca orkiestracji
W przypadku orkiestracji centralna usługa (orkiestrator) steruje sekwencją operacji. Wywołuje usługę A, czeka na odpowiedź, następnie wywołuje usługę B itd. Orkiestrator ma pełny wgląd w stan procesu, obsługuje błędy i ponowienia oraz może podejmować decyzje na podstawie wyników pośrednich. W AWS kanonicznym orkiestratorem jest Step Functions — definiuje cały przepływ pracy jako maszynę stanów i steruje każdym etapem.
# Orchestration: Step Functions state machine drives order processing
# StepFunctions -> ValidateOrder Lambda -> ChargePayment Lambda -> NotifyShipping Lambda
# Each arrow is an explicit command from the orchestrator
# If ChargePayment fails, Step Functions catches the error and routes to NotifyFailure
# The orchestrator (Step Functions) knows the full state of the order at every momentWyjaśnienie wzorca choreografii
W przypadku choreografii usługi komunikują się za pośrednictwem zdarzeń, bez centralnego koordynatora. Usługa A kończy swoje zadanie i publikuje zdarzenie (np. OrderValidated) w magistrali zdarzeń lub temacie. Usługa B nasłuchuje zdarzeń OrderValidated i przetwarza płatność, a następnie publikuje zdarzenie PaymentCharged. Usługa C nasłuchuje zdarzenia PaymentCharged i wysyła zamówienie. Każda usługa jest autonomiczna i odseparowana — zna tylko zdarzenia, które konsumuje i publikuje, a nie pozostałe usługi.
# Choreography: EventBridge bus connects services without central coordinator
# OrderService -> publishes 'OrderPlaced' to EventBridge
# PaymentService -> listens for 'OrderPlaced', charges card, publishes 'PaymentCharged'
# ShippingService -> listens for 'PaymentCharged', creates shipment, publishes 'OrderShipped'
# NotificationService -> listens for 'OrderShipped', sends email
# No service calls another service directly — all communication is via eventsUsługi AWS dla poszczególnych wzorców
W AWS podstawowym narzędziem orkiestracji jest Step Functions. W przypadku choreografii podstawowymi narzędziami są Amazon EventBridge (do przekierowywania zdarzeń między usługami z filtrowaniem na podstawie treści), Amazon SNS (do prostego rozsyłania) oraz Amazon SQS (do komunikacji punkt-punkt między usługami). Można łączyć oba wzorce: używać EventBridge do choreografii między kontekstami ograniczonymi, a Step Functions do orkiestracji etapów w obrębie jednej domeny.
Kompromisy: obserwowalność
Orkiestracja zapewnia scentralizowany wgląd — historia wykonania Step Functions pokazuje dokładnie, na jakim etapie znajduje się przepływ pracy, ile trwał każdy etap i co zakończyło się niepowodzeniem. Debugowanie jest proste. Choreografia rozprasza wgląd między wiele usług i magistral zdarzeń — prześledzenie pojedynczej transakcji biznesowej wymaga skorelowania dzienników i zdarzeń z wielu usług. Dlatego systemy oparte na choreografii intensywnie wykorzystują identyfikatory korelacji i śledzenie rozproszone (AWS X-Ray), aby zapewnić wgląd od początku do końca.
# Correlation ID pattern for choreography observability
# Every event includes a correlationId that flows through the entire chain
{
'source': 'com.myapp.orders',
'detail-type': 'OrderPlaced',
'detail': {
'orderId': 'ORD-123',
'correlationId': 'CORR-abc-456', # propagated to every downstream event
'customerId': 'CUST-789',
'total': 99.99
}
}Kompromisy: sprzężenie
Choreografia zapewnia luźniejsze sprzężenie — dodanie nowej usługi nasłuchującej istniejących zdarzeń nie wymaga zmian w istniejących usługach. Na przykład dodanie usługi analitycznej nasłuchującej zdarzeń OrderPlaced nie wpływa na usługę zamówień ani płatności. Orkiestracja wprowadza ściślejsze sprzężenie między orkiestratorem a wszystkimi wywoływanymi przez niego usługami — dodanie nowego etapu wymaga modyfikacji definicji maszyny stanów, choć poszczególne usługi pozostają odizolowane.
Kompromisy: obsługa błędów
Orkiestracja zapewnia jawnie zdefiniowaną obsługę błędów — bloki Catch w Step Functions definiują stany zastępcze dla każdego typu błędu, a cała historia przepływu pracy pokazuje kontekst awarii. W choreografii obsługa błędów jest rozproszona — każda usługa musi obsługiwać własne awarie i opcjonalnie publikować zdarzenie awarii, na które mogą reagować inne usługi. Implementowanie transakcji saga (transakcji kompensujących, które cofają wykonane działania w przypadku niepowodzenia etapu) jest znacznie bardziej złożone w choreografii niż w orkiestracji.
# Saga pattern in choreography: compensating events
# Happy path:
# OrderPlaced -> PaymentCharged -> InventoryReserved -> OrderShipped
#
# Failure path (InventoryReservation fails):
# InventoryReservationFailed event published
# PaymentService listens -> issues refund -> publishes PaymentRefunded
# OrderService listens -> cancels order -> publishes OrderCancelled
#
# In orchestration (Step Functions), the compensating logic is in explicit Catch statesKiedy wybrać orkiestrację
Orkiestrację należy preferować, gdy: proces biznesowy ma jasno określoną sekwencję liniową lub rozgałęzioną z jawnymi wynikami powodzenia i niepowodzenia; potrzebują Państwo scentralizowanego wglądu w stan procesu na potrzeby operacyjne lub zgodności; obsługa błędów obejmuje złożoną logikę kompensacji; albo przepływ pracy jest długotrwały i musi przetrwać ponowne uruchomienie usług. Przykłady: realizacja zamówień, wdrażanie pacjentów, przetwarzanie roszczeń ubezpieczeniowych — wszystkie te przepływy mają jasno określony początek, koniec i wymagania dotyczące audytu.
Kiedy wybrać choreografię
Choreografię należy preferować, gdy: usługi są własnością różnych zespołów, które nie powinny być ściśle koordynowane; system powinien umożliwiać rozszerzanie o nowe usługi bez modyfikowania istniejących; zdarzenia reprezentują fakty, a nie polecenia (np. „OrderShipped”, a nie „ShipOrder”); albo zależy Państwu na maksymalnej skalowalności, ponieważ nie występuje centralne wąskie gardło. Przykłady: pozyskiwanie danych analitycznych, rozsyłanie powiadomień, rejestrowanie audytowe — wszystkie przypadki, w których wielu niezależnych konsumentów reaguje na to samo zdarzenie.
Architektury hybrydowe
Większość rzeczywistych architektur AWS wykorzystuje oba wzorce na różnych poziomach szczegółowości. Typowy model hybrydowy polega na użyciu choreografii EventBridge do rozdzielenia ograniczonych kontekstów (np. domena Zamówień emituje zdarzenia, a domeny Magazynu, Płatności i Dostawy reagują na nie niezależnie), podczas gdy w obrębie domeny Płatności stosuje się orkiestrację Step Functions do koordynowania poszczególnych kroków wewnętrznego procesu płatności (pobranie opłaty, kontrola oszustw, autoryzacja, rozliczenie). Zapewnia to luźne powiązania między domenami oraz przejrzystość procesów wewnętrznych.
# Hybrid: EventBridge for inter-domain + Step Functions for intra-domain
#
# EventBridge bus (choreography):
# Order domain publishes 'OrderPlaced'
# Payment domain receives it, starts Step Functions execution
#
# Step Functions (orchestration inside Payment domain):
# ValidateCard -> FraudCheck -> AuthorisePayment -> SettlePayment
# On success: PaymentDomain publishes 'PaymentCharged' to EventBridge bus
# On failure: Step Functions Catch -> publishes 'PaymentFailed' eventWskazówki egzaminacyjne SAA-C03
Podczas egzaminu należy zwracać uwagę na następujące sygnały. Słowa kluczowe związane z choreografią: „luźno powiązane”, „usługi reagują na zdarzenia”, „zespoły są właścicielami niezależnych usług”, „rozsyłanie do wielu odbiorców”, „dodanie nowej usługi bez zmieniania istniejących”. Słowa kluczowe związane z orkiestracją: „koordynowanie kroków w określonej kolejności”, „śledzenie stanu procesu”, „obsługa częściowych awarii za pomocą kompensacji”, „krok wymagający zatwierdzenia przez człowieka”, „długotrwały proces z obsługą błędów”. Pytanie opisujące centralny koordynator kierujący innymi usługami zawsze dotyczy orkiestracji.
Szybkie sprawdzenie
Sprawdź swoją znajomość zagadnień AWS Solutions Architect (SAA-C03) omówionych w tej lekcji.
Podsumowanie lekcji
W tej lekcji nauczyli się Państwo, że: orkiestracja wykorzystuje centralny koordynator (Step Functions) do jawnego i widocznego sterowania przepływem pracy, choreografia wykorzystuje zdarzenia (EventBridge) do zapewnienia luźnego powiązania i możliwości rozbudowy, a większość architektur produkcyjnych łączy oba wzorce na różnych poziomach szczegółowości. Następnie omówimy format egzaminu SAA-C03 oraz strategię nauki uwzględniającą wagę poszczególnych domen.
Często zadawane pytania
Czy lekcja „Wzorce choreografii a orkiestracji” jest bezpłatna?
Tak — pełny tekst „Wzorce choreografii a orkiestracji” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Cloud & IT Cert Prep, przejdź na CoddyKit PRO. Kurs Cloud & IT Cert Prep zawiera 4 lekcji w sumie.
Co nauczysz się w „Wzorce choreografii a orkiestracji”?
Porównać choreografię zdarzeń (każda usługa reaguje niezależnie) z orkiestracją (centralny koordynator kieruje usługami) oraz wybrać właściwy wzorzec dla architektury. Ćwiczysz Cloud & IT Cert Prep z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć Cloud & IT Cert Prep?
Nie wymagamy żadnego doświadczenia. Cloud & IT Cert Prep w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 4 z 4.
Ile czasu zajmuje lekcja „Wzorce choreografii a orkiestracji”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji Cloud & IT Cert Prep?
Tak. Każda lekcja Cloud & IT Cert Prep zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- EventBridge: magistrala zdarzeń i reguły
- Step Functions: orkiestracja bezserwerowych przepływów pracy
- Kinesis Data Streams do przetwarzania zdarzeń w czasie rzeczywistym
- Wzorce choreografii a orkiestracji