Mikrousługi oparte na zdarzeniach. Wykorzystywanie danych w organizacji na dużą skalę - Helion

Tytuł oryginału: Building Event-Driven Microservices: Leveraging Organizational Data at Scale
Tłumaczenie: Lech Lachowski
ISBN: 978-83-283-7440-9
stron: 288, Format: ebook
Data wydania: 2021-02-01
Księgarnia: Helion
Cena książki: 41,40 zł (poprzednio: 69,00 zł)
Oszczędzasz: 40% (-27,60 zł)
MikrousÅ‚ugi oparte na zdarzeniach mogÅ‚y powstać dziÄ™ki rozwojowi konteneryzacji i Å‚atwiejszemu pozyskiwaniu zasobów obliczeniowych. Szczególnie ciekawÄ… propozycjÄ… sÄ… rozproszone, odporne na błędy, wysokowydajne i szybkie brokery zdarzeÅ„. Te rozwiÄ…zania technologiczne pozwalajÄ… na korzystanie z wielkich zbiorów danych i zapewniajÄ… przetwarzanie zdarzeÅ„ w czasie zbliżonym do rzeczywistego. Taka architektura ma znaczenie nie tylko dla inżynierów systemu, ale także dla struktury i sposobu dziaÅ‚ania firm i organizacji. Nagle okazuje siÄ™, że można bezproblemowo wykonywać dziaÅ‚ania, które do niedawna nie byÅ‚y jeszcze możliwe.
To praktyczny przewodnik, dziÄ™ki któremu samodzielnie ocenisz, jak dużą wartość biznesowÄ… mogÄ… zyskać duże wolumeny danych, jeÅ›li sÄ… wykorzystywane w organizacji przy użyciu architektury mikrousÅ‚ug opartych na zdarzeniach. Dowiesz siÄ™ także, jak przygotować i przeprowadzić proces budowania organizacji, która wykorzystuje mikrousÅ‚ugi oparte na zdarzeniach. Poznasz wszechstronne, a przy tym proste wzorce odblokowujÄ…ce wartość tych danych. W książce znalazÅ‚o siÄ™ również mnóstwo wskazówek i sugestii dotyczÄ…cych projektowania systemu opartego na zdarzeniach, ponadto wyjaÅ›niono tutaj kluczowe zasady architektoniczne. Wymieniono też przydatne narzÄ™dzia oraz opisano dokÅ‚adnie techniki testowania mikrousÅ‚ug i wdrażania ich w Å›rodowisku produkcyjnym.
W książce między innymi:
- rola architektury opartej na zdarzeniach w dostarczaniu wyjątkowej wartości biznesowej
- mikrousługi w projektowaniu opartym na zdarzeniach
- najlepsze wzorce architektoniczne
- wzorce aplikacji do tworzenia wielofunkcyjnych mikrousług opartych na zdarzeniach
- komponenty i narzędzia wymagane do uruchomienia ekosystemu mikrousługowego
Mikrousługi: odblokuj potencjał danych!
Osoby które kupowały "Mikrousługi oparte na zdarzeniach. Wykorzystywanie danych w organizacji na dużą skalę", wybierały także:
- Poradnik design thinking - czyli jak wykorzysta 49,64 zł, (13,90 zł -72%)
- Anonimizacja i maskowanie danych wrażliwych w przedsiębiorstwach 39,67 zł, (11,90 zł -70%)
- Debugging Teams. Przez współpracę do lepszej produktywności 39,67 zł, (11,90 zł -70%)
- Projektowanie oprogramowania dla zupełnie początkujących. Owoce programowania. Wydanie V 125,48 zł, (38,90 zł -69%)
- Tao mikrousług. Projektowanie i wdrażanie 57,74 zł, (17,90 zł -69%)
Spis treści
Mikrous³ugi oparte na zdarzeniach. Wykorzystywanie danych w organizacji na du¿± skalê eBook -- 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