Sprawdź zawód
Lekcje kursu

Architekt systemów IT

Przekładaj wymagania na architekturę, która znosi awarie i daje się rozwijać.

Kompendium zawodu — pojęcia i zwroty

Pojęcia w pracy

Kontrakt integracji
Uzgodnienie formatu danych i zachowania na granicy dwóch systemów.
Wymaganie jakościowe
Sprawdzalny warunek działania systemu, np. dostępność w opisanym scenariuszu.
ADR
Zapis decyzji architektonicznej wraz z kontekstem, opcjami i skutkami.

Zwroty w typowych sytuacjach

„Który system jest źródłem prawdy dla tego statusu?”
Ustalasz odpowiedzialność za informację w integracji.
„Uzgodnijmy zachowanie po upływie czasu oczekiwania.”
Projektujesz obsługę niepewnego wyniku żądania.

Podstawy · Lekcja 1 z 9

Mierzalne wymagania jakościowe

Zamień oczekiwanie „system działa szybko” na scenariusz z obciążeniem, miarą i progiem. Ustal, której ścieżki dotyczy wynik. Rozróżnij wynik średni od opóźnień widocznych w wolniejszych żądaniach.

Tok pracy w tej lekcji
  1. Co zrobić najpierwZdefiniuj jakość
  2. Co zrobić dalejMierzalne wymagania jakościowe
  3. Jak zakończyćSprawdź odpowiedź i wyjaśnij swój wybór

Zdefiniuj jakość

Określ przepływ, spodziewane obciążenie i miarę, np. p95 czasu odpowiedzi. Uzgodnij warunki pomiaru i poziom dostępności.

Ćwiczenie praktyczne

Zapisz wymaganie opóźnienia dla koszyka przy 200 równoczesnych sesjach.

Sprawdź się — opcjonalne pytanie

Który zapis daje się sprawdzić?

  • Koszyk jest szybki
  • 95% odpowiedzi koszyka poniżej 400 ms przy 200 sesjach
  • Aplikacja ma mieć nowoczesny backend
Pokaż odpowiedź i wyjaśnienie

95% odpowiedzi koszyka poniżej 400 ms przy 200 sesjach. Próg, percentyl, ścieżka i obciążenie definiują odtwarzalny pomiar.

Podstawy · Lekcja 2 z 9

Kontekst systemu i odpowiedzialność

Zacznij od aktorów, ich celu i systemów zewnętrznych. Na diagramie kontekstu zaznacz kierunek przepływu oraz dane, za które odpowiada każda strona.

Tok pracy w tej lekcji
  1. Co zrobić najpierwAktor
  2. Co zrobić dalejSystem
  3. Jak zakończyćZależność zewnętrzna

Przykład z pracy

Klient wysyła zamówienie do sklepu. Sklep zapisuje zamówienie, operator płatności potwierdza transakcję, a przewoźnik przyjmuje zlecenie wysyłki.

Ćwiczenie praktyczne

Narysuj kontekst rezerwacji. Wskaż źródło prawdy dla dostępności oraz potwierdzenia płatności.

Symulacja rozmowy

Jak zaprojektujesz ponowienie, żeby nie nadać dwóch przesyłek?

Porównaj z przykładową odpowiedzią

Ustalam wspólny, stabilny identyfikator oraz zasady deduplikacji w kontrakcie. Przy niepewnym wyniku najpierw sprawdzam status lub ponawiam z tym samym identyfikatorem zgodnie z kontraktem.

Sprawdź się — opcjonalne pytanie

Co powinien pokazać diagram kontekstu?

  • Każdą tabelę techniczną bazy
  • Użytkowników, system, zależności i kierunki komunikacji
  • Wszystkie linie kodu aplikacji
Pokaż odpowiedź i wyjaśnienie

Użytkowników, system, zależności i kierunki komunikacji. Diagram kontekstu służy wspólnemu zrozumieniu granic i zależności.

Podstawy · Lekcja 3 z 9

Ścieżka krytyczna i budżet opóźnienia

Ustal, które kroki muszą zakończyć się przed odpowiedzią. Dla każdego oceń opóźnienie, a następnie zmierz cały przebieg. Nie sumuj percentyli jako zastępczego pomiaru percentyla całej ścieżki.

Tok pracy w tej lekcji
  1. Co zrobić najpierwWejście
  2. Co zrobić dalejKroki blokujące
  3. Jak zakończyćOdpowiedź i pomiar

Przykład z pracy

Koszyk sprawdza zapas i cenę przed potwierdzeniem, ale wiadomość e-mail może powstać później. Pomiar zaczyna się od wejścia żądania i kończy odpowiedzią.

Ćwiczenie praktyczne

Wypisz zależności blokujące odpowiedź i te, które mogą zostać wykonane po niej.

Sprawdź się — opcjonalne pytanie

Gdzie zmierzyć docelowy p95 odpowiedzi koszyka?

  • Wyłącznie w losowo wybranej tabeli
  • Przez podanie średniej z pojedynczego komponentu
  • Na całej ścieżce od żądania do odpowiedzi
Pokaż odpowiedź i wyjaśnienie

Na całej ścieżce od żądania do odpowiedzi. Mierzymy doświadczenie użytkownika na pełnym przebiegu w zadanych warunkach.

Praca krok po kroku · Lekcja 4 z 9

Granice odpowiedzialności

Wskaż system będący źródłem danych i kontrakt integracji. Określ zachowanie podczas przerwy połączenia. Jeżeli żądanie można ponowić, zaprojektuj rozpoznawanie tej samej operacji.

Tok pracy w tej lekcji
  1. Co zrobić najpierwUstal kontrakt integracji
  2. Co zrobić dalejGranice odpowiedzialności
  3. Jak zakończyćSprawdź odpowiedź i wyjaśnij swój wybór

Ustal kontrakt integracji

Wskaż właściciela danych i odpowiedzialność systemów. Zaplanuj timeout, skończoną liczbę ponowień i identyfikator operacji.

Ćwiczenie praktyczne

Rozpisz zachowanie systemu zamówień, gdy dostawca wysyłki odpowie z opóźnieniem.

Sprawdź się — opcjonalne pytanie

Co pomaga uniknąć podwójnej operacji przy ponowieniu?

  • Stabilny identyfikator operacji
  • Nowy losowy identyfikator dla każdego sprawdzenia
  • Dłuższa nazwa endpointu
Pokaż odpowiedź i wyjaśnienie

Stabilny identyfikator operacji. Wspólny identyfikator pozwala odbiorcy rozpoznać powtórzenie tej samej operacji.

Praca krok po kroku · Lekcja 5 z 9

Timeout i powtórzenia w integracji

Timeout ogranicza czas oczekiwania, lecz nie określa, czy druga strona wykonała operację. Ponawiaj przejściowe błędy z limitem i uwzględnij idempotencję. Ostateczny stan powinien dać się sprawdzić.

Tok pracy w tej lekcji
  1. Co zrobić najpierwTimeout
  2. Co zrobić dalejSprawdzenie lub ograniczone ponowienie
  3. Jak zakończyćStan końcowy

Przykład z pracy

Przewoźnik przyjął przesyłkę, ale odpowiedź zaginęła. Ponowienie z identycznym identyfikatorem pozwala rozpoznać wykonane zlecenie.

Ćwiczenie praktyczne

Rozpisz warianty odpowiedzi dla powodzenia, błędu przejściowego i nieznanego wyniku.

Sprawdź się — opcjonalne pytanie

Co jest prawdą po przekroczeniu czasu oczekiwania?

  • Wynik operacji może być nieznany
  • Operacja na pewno się nie wykonała
  • Można bezwarunkowo ponawiać bez limitu
Pokaż odpowiedź i wyjaśnienie

Wynik operacji może być nieznany. Odpowiedź mogła zaginąć już po wykonaniu operacji po stronie dostawcy.

Praca krok po kroku · Lekcja 6 z 9

Kolejka i nadmiar pracy

Kolejka oddziela tempo przyjmowania od tempa obsługi. Obserwuj wielkość zaległości i wiek najstarszego zadania. Z góry określ zachowanie, gdy zadanie wielokrotnie nie daje się przetworzyć.

Tok pracy w tej lekcji
  1. Co zrobić najpierwWejście
  2. Co zrobić dalejBufor i konsument
  3. Jak zakończyćZaległość i wiek

Przykład z pracy

Przy promocji wpływa 2000 zgłoszeń na minutę, a pracownik kolejki obsługuje 1000. Zaległość rośnie, więc należy ustalić limity, czas oczekiwania i reakcję operacyjną.

Ćwiczenie praktyczne

Zaproponuj mierniki dla kolejki wysyłek oraz próg eskalacji z krótkim uzasadnieniem.

Sprawdź się — opcjonalne pytanie

Co poza liczbą zadań ujawnia opóźnienie kolejki?

  • Długość nazwy kolejki
  • Wiek najstarszego nieobsłużonego zadania
  • Liczba kolorów w panelu
Pokaż odpowiedź i wyjaśnienie

Wiek najstarszego nieobsłużonego zadania. Mała kolejka może wciąż zawierać zadanie zablokowane od dawna.

Trudniejsze sytuacje · Lekcja 7 z 9

Rejestr decyzji architektonicznej

Zapisz kontekst, rozważone możliwości, wybrany wariant i jego konsekwencje. Dodaj warunki, przy których decyzja będzie ponownie oceniona. Odnoś się do konkretnych wymagań i danych.

Tok pracy w tej lekcji
  1. Co zrobić najpierwZapisz kompromisy
  2. Co zrobić dalejRejestr decyzji architektonicznej
  3. Jak zakończyćSprawdź odpowiedź i wyjaśnij swój wybór

Zapisz kompromisy

Udokumentuj wybraną architekturę, koszty utrzymania oraz warunki ponownej oceny. Zmierz zachowanie po opóźnieniu zależności.

Ćwiczenie praktyczne

Napisz krótką decyzję o kolejce wiadomości z warunkiem przyszłego przeglądu.

Sprawdź się — opcjonalne pytanie

Co ułatwi następnemu zespołowi ocenę decyzji?

  • Wyłącznie nazwa technologii
  • Lista osób obecnych na spotkaniu
  • Przesłanki, konsekwencje i warunek przeglądu
Pokaż odpowiedź i wyjaśnienie

Przesłanki, konsekwencje i warunek przeglądu. Te informacje wyjaśniają wybór i pozwalają ocenić, czy przesłanki nadal obowiązują.

Trudniejsze sytuacje · Lekcja 8 z 9

Plan migracji danych przy działającym systemie

Rozdziel dodanie nowego schematu, uzupełnienie danych i przełączenie odczytu. Mierz zgodność wyników między wersjami. Cofnięcie odczytu powinno być możliwe przed usunięciem starych danych.

Tok pracy w tej lekcji
  1. Co zrobić najpierwRozszerz schemat
  2. Co zrobić dalejUzupełnij i porównaj
  3. Jak zakończyćPrzełącz odczyt

Przykład z pracy

Nowa kolumna statusu powstaje bez przerywania aplikacji. Dane historyczne uzupełnia proces porcjami, a porównanie obu reprezentacji wykrywa wyjątki przed przełączeniem.

Ćwiczenie praktyczne

Rozpisz migrację pola statusu w trzech etapach. Podaj metrykę poprawności i warunek przerwania.

Sprawdź się — opcjonalne pytanie

Co należy wykonać przed usunięciem starej reprezentacji?

  • Wyłączyć wszystkie porównania
  • Przestać zapisywać wyniki migracji
  • Potwierdzić zgodność i bezpieczne przełączenie odczytu
Pokaż odpowiedź i wyjaśnienie

Potwierdzić zgodność i bezpieczne przełączenie odczytu. Sprawdzenie danych i przełączenia ogranicza ryzyko utraty możliwości cofnięcia.

Trudniejsze sytuacje · Lekcja 9 z 9

Scenariusz awarii i gotowość operacyjna

Dla zależności określ sygnał awarii, zachowanie produktu, sposób odtworzenia pracy i właściciela reakcji. Sprawdź też, czy komunikat dla klienta odpowiada stanowi danych.

Tok pracy w tej lekcji
  1. Co zrobić najpierwWykrycie
  2. Co zrobić dalejZachowanie produktu
  3. Jak zakończyćOdtworzenie i kontrola

Przykład z pracy

Płatność czeka na potwierdzenie od dostawcy. Interfejs pokazuje status oczekujący, a operacje widzą wiek najstarszego zgłoszenia i mogą sprawdzić stan po identyfikatorze.

Ćwiczenie praktyczne

Opisz sprawdzenie awarii integracji na środowisku weryfikacyjnym i kryteria poprawnej reakcji.

Sprawdź się — opcjonalne pytanie

Co pozwala odróżnić stan oczekujący od zgubionego zgłoszenia?

  • Identyfikator operacji, jej wiek i potwierdzony stan
  • Sam ogólny komunikat „błąd”
  • Liczba otwartych kart w przeglądarce
Pokaż odpowiedź i wyjaśnienie

Identyfikator operacji, jej wiek i potwierdzony stan. Powiązane dane umożliwiają ocenę stanu i bezpieczne wznowienie.