Od monolitu do mikrousług. Ewolucyjne wzorce przekształcania systemów monolitycznych - Helion
Tytuł oryginału: Monolith to Microservices: Evolutionary Patterns to Transform Your Monolith
TÅ‚umaczenie: Tomasz Walczak
ISBN: 978-83-283-6724-1
stron: 232, Format: ebook
Data wydania: 2020-04-01
Księgarnia: Helion
Cena książki: 41,17 zł (poprzednio: 54,89 zł)
Oszczędzasz: 25% (-13,72 zł)
MikrousÅ‚ugi sÄ… relatywnie Å›wieżą koncepcjÄ… w Å›wiecie systemów IT, mimo to coraz wiÄ™cej organizacji decyduje siÄ™ na wdrażanie opartej na nich architektury. Uznaje siÄ™, że zapewnia ona wówczas lepszÄ… skalowalność, Å‚atwość Å‚Ä…czenia poszczególnych niezależnych elementów, a przede wszystkim możliwość szybszej reakcji na zmiany i skuteczniejsze wdrażanie nowych funkcjonalnoÅ›ci. Zanim jednak organizacja da siÄ™ skusić tymi obietnicami, powinna gruntownie przeanalizować swojÄ… sytuacjÄ™ i decyzjÄ™ o ewentualnej migracji systemu oprzeć na racjonalnych przesÅ‚ankach. Konieczne jest również opracowanie planu takiego przejÅ›cia, zwÅ‚aszcza jeÅ›li nie można sobie pozwolić na dÅ‚uższe przestoje w dziaÅ‚alnoÅ›ci.
To wyczerpujÄ…cy poradnik dla inżynierów, którzy stojÄ… przed wyzwaniem przeksztaÅ‚cenia monolitycznego systemu w architekturÄ™ opartÄ… na mikrousÅ‚ugach bez przerywania funkcjonowania firmy. Książka jest przeznaczona dla organizacji, które muszÄ… pÅ‚ynnie zmienić istniejÄ…cy system, a nie zbudować go od nowa. Zawiera wiele cennych wskazówek odnoszÄ…cych siÄ™ do celowoÅ›ci samej migracji oraz przedstawia liczne scenariusze i strategie przeksztaÅ‚cania: od etapu planowania aż po dekompozycjÄ™ aplikacji i baz danych. ZnalazÅ‚ siÄ™ tu zestaw sprawdzonych wzorców i technik wraz z omówieniem sytuacji, w jakich można je bezpiecznie zastosować. Nie zabrakÅ‚o ważnych szczegóÅ‚ów zwiÄ…zanych z wzorcami refaktoryzacji architektury czy problematyki naruszeÅ„ integralnoÅ›ci w wyniku podziaÅ‚u baz danych.
W tej książce między innymi:
- podstawowe koncepcje związane z mikrousługami
- ocena przydatności mikrousług w konkretnych sytuacjach
- planowanie wdrażania architektury opartej na mikrousługach
- wzorce migracji, dekompozycja aplikacji i inne zagadnienia techniczne
- wykrywanie i rozwiÄ…zywanie problemów zwiÄ…zanych z mikrousÅ‚ugami
Dążysz do sukcesu? Obierz kurs na mikrousługi!
Osoby które kupowały "Od monolitu do mikrousług. Ewolucyjne wzorce przekształcania systemów monolitycznych", wybierały także:
- Superinteligencja. Scenariusze, strategie, zagro 66,67 zł, (14,00 zł -79%)
- Poradnik design thinking - czyli jak wykorzysta 48,28 zł, (14,00 zł -71%)
- Kosymulacja. Elastyczne projektowanie i symulacja wielodomenowa 38,39 zł, (11,90 zł -69%)
- F# 4.0 dla zaawansowanych. Wydanie IV 96,45 zł, (29,90 zł -69%)
- Systemy reaktywne. Wzorce projektowe i ich stosowanie 65,31 zł, (20,90 zł -68%)
Spis treści
Od monolitu do mikrousług. Ewolucyjne wzorce przekształcania systemów monolitycznych eBook -- spis treści
Przedmowa 9
1. Tylko tyle mikrousług, ile potrzeba 13
- Czym są mikrousługi? 13
- Możliwość niezależnego instalowania 14
- Modelowane na podstawie dziedziny biznesowej 14
- Mikrousługi są właścicielem swoich danych 17
- Jakie korzyści mogą dawać mikrousługi? 18
- Jakie problemy są powodowane przez mikrousługi? 18
- Interfejsy użytkownika 19
- Technologie 19
- Wielkość 20
- Właściciele 21
- System monolityczny 23
- Jednoprocesowe systemy monolityczne 23
- Rozproszony system monolityczny 25
- Systemy typu czarna skrzynka od niezależnych dostawców 25
- Problemy zwiÄ…zane z systemami monolitycznymi 25
- Zalety systemów monolitycznych 26
- O powiÄ…zaniu i spójnoÅ›ci 26
- Spójność 28
- PowiÄ…zanie 28
- Tylko tyle DDD, ile potrzeba 37
- Agregat 37
- Ograniczony kontekst 38
- Odwzorowywanie agregatów i ograniczonych kontekstów na mikrousÅ‚ugi 39
- Dalsza lektura 39
- Podsumowanie 40
2. Planowanie migracji 41
- Zrozumieć cel 41
- Trzy kluczowe pytania 42
- Dlaczego możesz zdecydować się na mikrousługi? 43
- Zwiększenie autonomii zespołu 43
- Skrócenie czasu wprowadzania funkcji na rynek 44
- Ekonomiczne skalowanie systemu pod kątem obciążenia 45
- Zwiększanie stabilności 46
- Skalowanie liczby programistów 47
- Wprowadzanie nowej technologii 48
- Kiedy wprowadzanie mikrousług może być złym pomysłem? 49
- Niesprecyzowana dziedzina 50
- Startupy 50
- Oprogramowanie instalowane przez klienta a oprogramowanie zarzÄ…dzane 51
- Brak dobrego powodu! 52
- Wady i zalety 52
- ZachÄ™canie innych do wspólnej podróży 53
- Zmienianie organizacji 54
- Uświadamianie pilności wprowadzenia zmian 54
- Budowanie koalicji kierujÄ…cej wprowadzaniem zmian 55
- Opracowywanie wizji i strategii 56
- Komunikowanie wizji zmian 56
- Dawanie pracownikom uprawnień do szeroko zakrojonych działań 57
- Uzyskiwanie krótkoterminowych sukcesów 58
- Konsolidowanie korzyści i wprowadzanie nowych zmian 58
- Utrwalanie nowego podejścia w kulturze firmy 58
- Znaczenie stopniowej migracji 59
- Ważne jest to, co w środowisku produkcyjnym 60
- Koszt wprowadzania zmian 60
- Odwracalne i nieodwracalne decyzje 60
- Lepsze miejsca do eksperymentów 61
- Od czego więc zacząć? 62
- Podejście DDD 62
- Jak szczegóÅ‚owy powinien być model? 63
- Event storming 63
- Korzystanie z modelu dziedziny do okreÅ›lania priorytetów 64
- Model mieszany 65
- Reorganizacja zespoÅ‚ów 67
- Zmiany w strukturach 67
- Nie istniejÄ… uniwersalne rozwiÄ…zania 68
- Wprowadzanie zmian 70
- Nowe umiejętności 71
- SkÄ…d wiadomo, czy zmiany przynoszÄ… dobre efekty? 74
- Regularne punkty kontrolne 75
- Wskaźniki ilościowe 75
- Wskaźniki jakościowe 76
- Unikanie efektu utopionych kosztów 76
- Otwartość na nowe podejścia 77
- Podsumowanie 77
3. Podział systemu monolitycznego 79
- Modyfikować system monolityczny czy nie? 79
- Wycinać i wklejać czy pisać od nowa? 80
- Refaktoryzacja systemu monolitycznego 80
- Wzorce migracji 82
- Wzorzec "figowiec dusiciel" 82
- Jak działa ten wzorzec? 83
- Gdzie stosować ten wzorzec? 84
- Przykład: odwrotny pośrednik HTTP 86
- Dane? 89
- Możliwości związane z pośrednikiem 89
- Zmiana protokoÅ‚ów 92
- Przykład: FTP 95
- PrzykÅ‚ad: przechwytywanie komunikatów 96
- Inne protokoły 99
- Inne przykłady stosowania wzorca "figowiec dusiciel" 99
- Zmienianie działania kodu przy przenoszeniu funkcji 99
- Wzorzec: składanie interfejsu użytkownika 100
- Przykład: składanie strony 100
- PrzykÅ‚ad: skÅ‚adanie widżetów 101
- Przykład: mikrofrontendy 104
- Gdzie stosować ten wzorzec? 105
- Wzorzec: rozgałęzianie z użyciem abstrakcji 105
- Jak działa ten wzorzec? 106
- Zapewnianie rezerwowego mechanizmu 112
- Gdzie używać tego wzorca? 113
- Wzorzec: równolegÅ‚e uruchamianie 113
- PrzykÅ‚ad: porównywanie cen kredytowych instrumentów pochodnych 114
- Przykład: oferty w agencji Homegate 115
- Techniki sprawdzania poprawności 116
- Używanie szpiegów 116
- Biblioteka Scientist z serwisu GitHub 117
- Ukryte udostÄ™pnianie i udostÄ™pnianie próbne 118
- Gdzie stosować ten wzorzec? 118
- Wzorzec: wspóÅ‚dziaÅ‚ajÄ…cy dekorator 118
- Przykład: zarządzanie programem lojalnościowym 119
- Gdzie stosować ten wzorzec? 120
- Wzorzec: przechwytywanie zmian w danych 120
- Przykład: wydawanie kart lojalnościowych 120
- Implementowanie przechwytywania zmian w danych 121
- Gdzie stosować ten wzorzec? 124
- Podsumowanie 124
4. Podział baz danych 125
- Wzorzec: wspóÅ‚dzielona baza danych 125
- Wzorce radzenia sobie 126
- Gdzie stosować ten wzorzec? 126
- Ale to niemożliwe! 127
- Wzorzec: widoki bazodanowe 128
- Baza danych jako publiczny kontrakt 128
- Prezentowane widoki 129
- Ograniczenia 131
- Własność 131
- Gdzie stosować ten wzorzec? 131
- Wzorzec: usługa opakowująca bazę danych 131
- Gdzie stosować ten wzorzec? 133
- Wzorzec: interfejs "baza danych jako usługa" 134
- Implementowanie mechanizmu odwzorowywania danych 135
- Porównanie z widokami 136
- Gdzie stosować ten wzorzec? 136
- Przekazywanie własności 136
- Wzorzec: system monolityczny udostępniający agregaty 137
- Wzorzec: zmiana właściciela danych 139
- Synchronizacja danych 140
- Wzorzec: synchronizowanie danych z użyciem aplikacji 142
- Etap 1. Masowa synchronizacja danych 142
- Etap 2. Synchronizowanie zapisu, odczyt z dawnego schematu 143
- Etap 3. Synchronizacja zapisu, odczyt z nowego schematu 144
- Gdzie stosować ten wzorzec? 144
- Wzorzec: stopniowa synchronizacja 145
- Synchronizowanie danych 148
- PrzykÅ‚ad: zamówienia w firmie Square 149
- Gdzie stosować ten wzorzec? 153
- Podział bazy danych 153
- Fizyczny i logiczny podział baz danych 153
- Co dzielić najpierw - bazę danych czy kod? 155
- Najpierw podział bazy danych 155
- Najpierw podział kodu 159
- Jednoczesny podział bazy danych i kodu 163
- Co więc należy podzielić w pierwszej kolejności? 163
- Przykłady dotyczące podziału schematu 164
- Wzorzec: tabela pomostowa 164
- Wzorzec: przenoszenie relacji klucza obcego do kodu 166
- Transakcje 178
- Transakcje ACID 178
- Nadal ACID, ale bez atomowości? 179
- Zatwierdzanie dwuetapowe 181
- Transakcje rozproszone - po prostu powiedz "nie" 183
- Sagi 184
- Rodzaje bÅ‚Ä™dów w sagach 185
- Implementowanie sag 188
- Sagi a transakcje rozproszone 194
- Podsumowanie 195
5. RosnÄ…ce problemy 197
- WiÄ™cej usÅ‚ug, wiÄ™cej kÅ‚opotów 197
- Własność przy dużej liczbie usług 198
- Jak ten problem może się ujawnić? 199
- Kiedy ten problem może wystąpić? 200
- Potencjalne rozwiÄ…zania 200
- Zmiany naruszające zgodność 200
- Jak ten problem może się ujawnić? 201
- Kiedy ten problem może wystąpić? 201
- Potencjalne rozwiÄ…zania 201
- Generowanie raportów 204
- Kiedy ten problem może wystąpić? 205
- Potencjalne rozwiÄ…zania 205
- Monitorowanie i rozwiÄ…zywanie problemów 206
- Kiedy te problemy mogą wystąpić? 207
- Jak objawiajÄ… siÄ™ problemy? 207
- Potencjalne rozwiÄ…zania 207
- Komfort pracy programisty na lokalnej maszynie 211
- Jak ten problem może się ujawnić? 211
- Kiedy ten problem może wystąpić? 211
- Możliwe rozwiązania 212
- Uruchamianie zbyt wielu rzeczy 212
- Jak ten problem może się ujawnić? 212
- Kiedy ten problem może wystąpić? 213
- Możliwe rozwiązania 213
- Testy end-to-end 214
- Jak ten problem może się ujawnić? 214
- Kiedy ten problem może wystąpić? 215
- Możliwe rozwiązania 215
- Optymalizacja globalna i lokalna 217
- Jak ten problem może się ujawnić? 217
- Kiedy ten problem może wystąpić? 217
- Możliwe rozwiązania 218
- Stabilność i odporność 219
- Jak ten problem może się ujawnić? 219
- Kiedy ten problem może wystąpić? 219
- Możliwe rozwiązania 220
- Osierocone usługi 220
- Jak ten problem może się ujawnić? 221
- Kiedy ten problem może wystąpić? 221
- Możliwe rozwiązania 221
- Podsumowanie 222
6. Słowo na zakończenie 225
A. Bibliografia 227
B. Indeks wzorców 229