MIKROUSŁUGI OPARTE NA ZDARZENIACH

62.10

Na stanie

SPIS TREŚCI

Przedmowa 13

1. Dlaczego mikrousługi oparte na zdarzeniach? 17

  • Czym są mikrousługi oparte na zdarzeniach? 17
  • Wprowadzenie do projektowania dziedzinowego i kontekstów ograniczonych 19
    • Wykorzystywanie modeli dziedzin i kontekstów ograniczonych 20
    • Dopasowywanie kontekstów ograniczonych do wymagań biznesowych 20
  • Struktury komunikacji 22
    • Struktury komunikacji biznesowej 22
    • Struktury komunikacji implementacyjnej 22
    • Struktury komunikacji danych 23
    • Prawo Conwaya i struktury komunikacji 23
  • Struktury komunikacji w tradycyjnych systemach obliczeniowych 25
    • Opcja 1. Utworzenie nowej usługi 25
    • Opcja 2. Dodanie funkcjonalności do istniejącej usługi 26
    • Wady i zalety obu opcji 26
    • Kontynuacja scenariusza z zespołami 27
    • Sprzeczne naciski 28
  • Struktury komunikacji oparte na zdarzeniach 28
    • Zdarzenia są podstawą komunikacji 28
    • Strumienie zdarzeń zapewniają jedno źródło prawdy 28
    • Konsumenty przeprowadzają własne modelowanie i kwerendowanie 29
    • Komunikacja danych zostaje usprawniona w całej organizacji 29
    • Dostępne dane wspierają zmiany w komunikacji biznesowej 30
  • Asynchroniczne mikrousługi oparte na zdarzeniach 30
    • Przykładowy zespół korzystający z mikrousług opartych na zdarzeniach 31
  • Mikrousługi synchroniczne 31
    • Wady mikrousług synchronicznych 32
    • Korzyści ze stosowania mikrousług synchronicznych 33
  • Podsumowanie 34

2. Podstawy mikrousług opartych na zdarzeniach 35

  • Budowanie topologii 35
    • Topologia mikrousługi 35
    • Topologia biznesowa 36
  • Zawartość zdarzenia 37
  • Struktura zdarzenia 37
    • Zdarzenie bez klucza 38
    • Zdarzenie encyjne 38
    • Zdarzenie z kluczem 38
  • Materializowanie stanu ze zdarzeń encyjnych 39
  • Definicje i schematy danych zdarzenia 41
  • Zasada pojedynczego źródła zapisu mikrousługi 41
  • Mikrousługi wyposażone w broker zdarzeń 41
    • Przechowywanie i serwowanie zdarzeń 42
    • Uwzględnianie czynników dodatkowych 43
  • Porównanie brokerów zdarzeń i brokerów komunikatów 44
    • Konsumowanie zdarzeń z niemutowalnego dziennika 45
    • Zapewnianie jednego źródła prawdy 47
  • Zarządzanie mikrousługami na dużą skalę 47
    • Umieszczanie mikrousług w kontenerach 48
    • Umieszczanie mikrousług w maszynach wirtualnych 48
    • Zarządzanie kontenerami i maszynami wirtualnymi 48
  • Podatek od mikrousług 49
  • Podsumowanie 50

3. Komunikacja i kontrakty danych 51

  • Kontrakty danych opartych na zdarzeniach 51
    • Używanie bezpośrednich schematów jako kontraktów 52
    • Komentarze definicji schematu 52
    • W pełni funkcjonalna ewolucja schematu 53
    • Obsługa generatora kodu 54
    • Przełomowe zmiany schematu 55
  • Wybór formatu zdarzenia 57
  • Projektowanie zdarzeń 57
    • Mów prawdę, całą prawdę i tylko prawdę 58
    • Używaj pojedynczej definicji zdarzenia na strumień 58
    • Używaj najwęższych typów danych 58
    • Zachowuj specjalizację zdarzeń 59
    • Minimalizuj rozmiar zdarzeń 62
    • Angażuj potencjalne konsumenty w projektowanie zdarzeń 62
    • Unikaj zdarzeń jako semaforów lub sygnałów 62
  • Podsumowanie 63

4. Integracja architektur opartych na zdarzeniach z istniejącymi systemami 65

  • Czym jest uwalnianie danych? 66
    • Kompromisy związane z uwalnianiem danych 66
    • Konwersja uwolnionych danych na zdarzenia 68
  • Wzorce uwalniania danych 69
  • Frameworki uwalniania danych 70
  • Uwalnianie danych oparte na zapytaniach 70
    • Ładowanie zbiorcze 70
    • Ładowanie przyrostowe na podstawie znacznika czasu 71
    • Ładowanie na podstawie autoinkrementowanego identyfikatora 71
    • Kwerendowanie niestandardowe 71
    • Aktualizacja przyrostowa 71
    • Zalety aktualizacji opartej na zapytaniach 72
    • Wady aktualizacji opartej na zapytaniach 72
  • Uwalnianie danych oparte na dziennikach CDC 73
    • Zalety korzystania z dzienników magazynu danych 75
    • Wady korzystania z dzienników magazynu danych 75
  • Uwalnianie danych oparte na tablicach skrzynki nadawczej 75
    • Kwestie związane z wydajnością 77
    • Izolowanie wewnętrznych modeli danych 77
    • Zapewnianie kompatybilności schematu 79
    • Przechwytywanie danych o zmianach za pomocą wyzwalaczy 82
  • Dokonywanie zmian definicji danych w przechwytywanych zbiorach danych 85
    • Obsługa zmian definicji danych „po fakcie” dla wzorców opartych na zapytaniach i dziennikach CDC 86
    • Obsługa zmian definicji danych dla wzorców opartych na przechwytywaniu tablicy danych o zmianach 86
  • Zlewanie danych o zdarzeniach do magazynów danych 87
  • Wpływ zlewania i pozyskiwania danych na prowadzenie działalności biznesowej 87
  • Podsumowanie 89

5. Podstawy przetwarzania opartego na zdarzeniach 91

  • Tworzenie topologii bezstanowych 92
    • Transformacje 92
    • Rozgałęzianie i scalanie strumieni 93
  • Repartycjonowanie strumieni zdarzeń 93
    • Przykład: repartycjonowanie strumienia zdarzeń 94
  • Współpartycjonowanie strumieni zdarzeń 95
    • Przykład: współpartycjonowanie strumienia zdarzeń 95
  • Przypisywanie partycji do instancji konsumenta 96
    • Mechanizm przypisywania partycji 96
    • Przypisywanie partycji współpartycjonowanych 96
    • Strategie przypisywania partycji 97
  • Odzyskiwanie sprawności po awariach bezstanowej instancji przetwarzania 99
  • Podsumowanie 99

6. Deterministyczne przetwarzanie strumieni 101

  • Determinizm w przepływach pracy opartych na zdarzeniach 102
  • Znaczniki czasu 102
    • Synchronizacja rozproszonych znaczników czasu 103
    • Przetwarzanie zdarzeń ze znacznikami czasu 104
  • Planowanie zdarzeń i przetwarzanie deterministyczne 105
    • Niestandardowe dyspozytory zdarzeń 106
    • Przetwarzanie na podstawie czasów: zdarzenia, przetwarzania i pozyskania 106
    • Wyodrębnianie znacznika czasu przez konsumenta 106
    • Wywołania typu żądanie-odpowiedź wysyłane do systemów zewnętrznych 107
  • Znaki wodne 107
    • Znaki wodne w przetwarzaniu równoległym 108
  • Czas strumienia 109
    • Czas strumienia w przetwarzaniu równoległym 110
  • Zdarzenia w niewłaściwej kolejności i zdarzenia opóźnione 111
    • Zdarzenia opóźnione ze znakami wodnymi i czasem strumienia 112
    • Przyczyny i skutki występowania zdarzeń w niewłaściwej kolejności 113
    • Funkcje zależne od czasu i okna czasowe 114
  • Obsługa zdarzeń opóźnionych 117
  • Porównanie ponownego przetwarzania i przetwarzania w czasie zbliżonym do rzeczywistego 118
  • Okresowe awarie i opóźnione zdarzenia 119
  • Problemy z łącznością producenta (brokera zdarzeń) 119
  • Podsumowanie i dalsza lektura 121

7. Stanowe przesyłanie strumieniowe 123

  • Magazyny stanu i materializowanie stanu ze strumienia zdarzeń 123
  • Rejestrowanie stanu w strumieniu zdarzeń dziennika zmian 124
  • Materializacja stanu w wewnętrznym magazynie stanu 125
    • Materializacja stanu globalnego 126
    • Zalety korzystania z wewnętrznego stanu 126
    • Wady korzystania z wewnętrznego stanu 128
    • Skalowanie i przywracanie wewnętrznego stanu 128
  • Materializacja stanu w zewnętrznym magazynie stanu 131
    • Zalety zewnętrznego stanu 132
    • Wady zewnętrznego stanu 132
    • Skalowanie i odzyskiwanie w przypadku zewnętrznych magazynów stanu 133
  • Porównanie odbudowywania i migrowania magazynów stanu 135
    • Odbudowa 135
    • Migracja 136
  • Transakcje i przetwarzanie efektywnie raz 136
    • Przykład: usługa rachunkowości zapasów 137
    • Przetwarzanie efektywnie raz za pomocą transakcji klient-broker 137
    • Przetwarzanie efektywnie raz bez transakcji klient-broker 139
  • Podsumowanie 144

8. Tworzenie przepływów pracy za pomocą mikrousług 145

  • Wzorzec Choreografia 146
    • Prosty przykład choreografii opartej na zdarzeniach 147
    • Tworzenie i modyfikowanie choreografowanego przepływu pracy 148
    • Monitorowanie choreografowanego przepływu pracy 148
  • Wzorzec Orkiestracja 149
    • Prosty przykład orkiestracji opartej na zdarzeniach 149
    • Prosty przykład orkiestracji wywołań bezpośrednich 151
    • Porównanie orkiestracji bezpośrednich wywołań i orkiestracji opartej na zdarzeniach 151
    • Tworzenie i modyfikowanie przepływu pracy orkiestracji 152
    • Monitorowanie przepływu pracy orkiestracji 153
  • Transakcje rozproszone 153
    • Transakcje choreografowane: wzorzec Saga 153
    • Transakcje orkiestrowane 155
  • Kompensacyjne przepływy pracy 157
  • Podsumowanie 158

9. Mikrousługi wykorzystujące funkcję jako usługę 159

  • Projektowanie rozwiązań opartych na funkcjach jako mikrousług 159
    • Zapewnianie ścisłej przynależności do kontekstu ograniczonego 159
    • Zatwierdzanie przesunięć dopiero po zakończeniu przetwarzania 160
    • Mniej znaczy więcej 161
  • Wybór dostawcy FaaS 161
  • Budowanie mikrousług na podstawie funkcji 161
  • Zimny start i ciepłe starty 163
  • Uruchamianie funkcji za pomocą wyzwalaczy 163
    • Wyzwalanie oparte na nowych zdarzeniach: nasłuchiwacz strumienia zdarzeń 163
    • Wyzwalanie oparte na opóźnieniu grupy konsumentów 165
    • Wyzwalanie według harmonogramu 166
    • Wyzwalanie przy użyciu webhooków 166
    • Wyzwalanie oparte na zdarzeniach dotyczących zasobów 167
  • Wykonywanie pracy biznesowej za pomocą funkcji 167
  • Utrzymywanie stanu 167
  • Funkcje wywołujące inne funkcje 168
    • Wzorzec komunikacji opartej na zdarzeniach 168
    • Wzorzec bezpośrednich wywołań 169
  • Zakończenie działania i zamknięcie 172
  • Dostrajanie funkcji 172
    • Alokacja wystarczających zasobów 172
    • Parametry wsadowego przetwarzania zdarzeń 173
  • Skalowanie rozwiązań FaaS 173
  • Podsumowanie 174

10. Mikrousługi BPC 175

  • Gdzie sprawdzają się mikrousługi BPC? 175
    • Integracja z istniejącymi i starszymi systemami 176
    • Stanowa logika biznesowa, która nie jest zależna od kolejności zdarzeń 177
    • Gdy warstwa danych wykonuje większość pracy 178
    • Niezależne skalowanie przetwarzania i warstwy danych 178
  • Hybrydowe aplikacje BPC z zewnętrznym przetwarzaniem strumieni 179
    • Przykład: użycie zewnętrznego frameworku przetwarzania strumieni do łączenia strumieni zdarzeń 180
  • Podsumowanie 181

11. Mikrousługi frameworków ciężkich 183

  • Krótka historia ciężkich frameworków 184
  • Wewnętrzne działanie ciężkich frameworków 185
  • Korzyści i ograniczenia 186
  • Opcje konfiguracji klastra i tryby wykonywania 188
    • Użycie usługi hostowanej 188
    • Budowanie własnego pełnego klastra 188
    • Tworzenie klastrów z integracją z systemem CMS 189
  • Tryby zatwierdzania aplikacji 190
    • Tryb sterownika 190
    • Tryb klastra 191
  • Obsługa stanu i używanie punktów kontrolnych 191
  • Skalowanie aplikacji i obsługa partycji strumienia zdarzeń 192
    • Skalowanie aplikacji podczas jej działania 193
    • Skalowanie aplikacji przez jej ponowne uruchomienie 196
    • Automatycznie skalujące się aplikacje 196
  • Odzyskiwanie sprawności po awarii 196
  • Kwestie wielodzierżawności 197
  • Języki i składnia 197
  • Wybór frameworku 198
  • Przykład: tworzenie okna sesji kliknięć i wyświetleń 198
  • Podsumowanie 201

12. Mikrousługi frameworków lekkich 203

  • Zalety i ograniczenia 203
  • Lekkie przetwarzanie 204
  • Obsługa stanu i używanie dzienników zmian 204
  • Skalowanie aplikacji i odzyskiwanie sprawności po awarii 205
    • Tasowanie zdarzeń 205
    • Przypisywanie stanu 206
    • Replikacja stanu i aktywne repliki 206
  • Wybór lekkiego frameworku 207
    • Apache Kafka Streams 207
    • Apache Samza: tryb osadzony 207
  • Języki i składnia 208
  • Łączenie strumień-tablica-tablica: wzorzec Wzbogacanie 208
  • Podsumowanie 212

13. Integracja mikrousług opartych na zdarzeniach z mikrousługami typu żądanie-odpowiedź 213

  • Obsługa zdarzeń zewnętrznych 213
    • Zdarzenia generowane autonomicznie 214
    • Zdarzenia generowane reaktywnie 214
  • Obsługa automatycznie generowanych zdarzeń analitycznych 215
  • Integracja z zewnętrznymi interfejsami API żądanie-odpowiedź 216
  • Przetwarzanie i udostępnianie danych stanowych 218
    • Obsługa żądań w czasie rzeczywistym za pomocą wewnętrznych magazynów stanu 218
    • Obsługa żądań w czasie rzeczywistym za pomocą zewnętrznych magazynów stanu 221
  • Obsługa żądań w przepływie pracy opartym na zdarzeniach 224
    • Przetwarzanie zdarzeń dla interfejsów użytkownika 225
  • Mikrofrontendy w aplikacjach typu żądanie-odpowiedź 231
  • Zalety mikrofrontendów 233
    • Mikrousługi oparte na kompozycji 233
    • Łatwe dostosowywanie do wymagań biznesowych 233
  • Wady mikrofrontendów 233
    • Potencjalnie niespójne elementy i style interfejsu użytkownika 234
    • Zmienna wydajność mikrofrontendu 234
    • Przykład: aplikacja do wyszukiwania i recenzowania wydarzeń 234
  • Podsumowanie 237

14. Narzędzia pomocnicze 239

  • System przypisywania mikrousług zespołom 239
  • Tworzenie i modyfikowanie strumienia zdarzeń 240
  • Znakowanie strumieni zdarzeń za pomocą metadanych 240
  • Kwoty 241
  • Rejestr schematów 241
  • Powiadomienia o tworzeniu i modyfikowaniu schematów 243
  • Zarządzanie przesunięciami 243
  • Uprawnienia i listy kontroli dostępu dla strumieni zdarzeń 244
  • Zarządzanie stanem i resetowanie aplikacji 245
  • Monitorowanie opóźnienia przesunięcia konsumenta 246
  • Zoptymalizowany proces tworzenia mikrousług 246
  • Kontrola zarządzania kontenerami 247
  • Tworzenie klastra i zarządzanie nim 247
    • Programowe uruchamianie brokerów zdarzeń 248
    • Programowe uruchamianie zasobów obliczeniowych 248
    • Replikacja danych zdarzeń między klastrami 249
    • Programowe uruchamianie narzędzi 249
  • Śledzenie zależności i wizualizacja topologii 249
    • Przykład topologii 251
  • Podsumowanie 253

15. Testowanie mikrousług opartych na zdarzeniach 255

  • Ogólne zasady testowania 255
  • Funkcje topologii testów jednostkowych 256
    • Funkcje bezstanowe 256
    • Funkcje stanowe 256
  • Testowanie topologii 257
  • Testowanie ewolucji i zgodności schematów 258
  • Testowanie integracyjne mikrousług opartych na zdarzeniach 258
  • Lokalne testy integracyjne 259
    • Tworzenie tymczasowego środowiska w ramach wykonywania kodu testowego 261
    • Tworzenie tymczasowego środowiska zewnętrznie względem kodu testowego 262
    • Integracja usług hostowanych przy użyciu opcji atrapy i symulatora 263
    • Integracja usług zdalnych, które nie mają opcji lokalnych 263
  • Pełne zdalne testy integracyjne 264
    • Programowe tworzenie tymczasowego środowiska testów integracyjnych 265
    • Testowanie przy użycia środowiska współdzielonego 267
    • Testowanie przy użyciu środowiska produkcyjnego 268
  • Wybór strategii w pełni zdalnych testów integracyjnych 269
  • Podsumowanie 270

16. Wdrażanie mikrousług opartych na zdarzeniach 271

  • Zasady wdrażania mikrousług 271
  • Architektoniczne komponenty wdrażania mikrousług 272
    • Systemy ciągłej integracji, ciągłego dostarczania i ciągłego wdrażania 272
    • Systemy zarządzania kontenerami i powszechnie dostępny sprzęt 273
  • Podstawowy wzorzec Wdrożenie z Pełnym Zatrzymaniem 274
  • Wzorzec Aktualizacja Krocząca 275
  • Wzorzec Przełomowa Zmiana Schematu 276
    • Ostateczna migracja za pośrednictwem dwóch strumieni zdarzeń 277
    • Zsynchronizowana migracja do nowego strumienia zdarzeń 278
  • Wzorzec Wdrożenie Niebiesko-Zielone 279
  • Podsumowanie 280

17. Zakończenie 281

  • Warstwy komunikacyjne 281
  • Dziedziny biznesowe i konteksty ograniczone 282
  • Współużytkowanie narzędzi i infrastruktury 282
  • Uschematyzowane zdarzenia 282
  • Wyzwolenie danych i jedno źródło prawdy 283
  • Mikrousługi 284
  • Opcje implementacji mikrousług 284
  • Testowanie 285
  • Wdrażanie 285
  • Kilka słów na zakończenie 286
Autor

ISBN

978-83-283-7439-3

Liczba stron

Rok wydania

Wydawca

Recenzje

Na razie nie ma opinii o produkcie.

Napisz pierwszą opinię o „MIKROUSŁUGI OPARTE NA ZDARZENIACH”