Od monolitu do mikrousług

32,93

Opis

Od monolitu do mikrousług

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ługamiocena przydatności mikrousług w konkretnych sytuacjachplanowanie wdrażania architektury opartej na mikrousługachwzorce migracji, dekompozycja aplikacji i inne zagadnienia technicznewykrywanie i rozwiązywanie problemów związanych z mikrousługamiDążysz do sukcesu? Obierz kurs na mikrousługi!Spis treści:Przedmowa 91. Tylko tyle mikrousług, ile potrzeba 13Czym są mikrousługi? 13Możliwość niezależnego instalowania 14Modelowane na podstawie dziedziny biznesowej 14Mikrousługi są właścicielem swoich danych 17Jakie korzyści mogą dawać mikrousługi? 18Jakie problemy są powodowane przez mikrousługi? 18Interfejsy użytkownika 19Technologie 19Wielkość 20Właściciele 21System monolityczny 23Jednoprocesowe systemy monolityczne 23Rozproszony system monolityczny 25Systemy typu czarna skrzynka od niezależnych dostawców 25Problemy związane z systemami monolitycznymi 25Zalety systemów monolitycznych 26O powiązaniu i spójności 26Spójność 28Powiązanie 28Tylko tyle DDD, ile potrzeba 37Agregat 37Ograniczony kontekst 38Odwzorowywanie agregatów i ograniczonych kontekstów na mikrousługi 39Dalsza lektura 39Podsumowanie 402. Planowanie migracji 41Zrozumieć cel 41Trzy kluczowe pytania 42Dlaczego możesz zdecydować się na mikrousługi? 43Zwiększenie autonomii zespołu 43Skrócenie czasu wprowadzania funkcji na rynek 44Ekonomiczne skalowanie systemu pod kątem obciążenia 45Zwiększanie stabilności 46Skalowanie liczby programistów 47Wprowadzanie nowej technologii 48Kiedy wprowadzanie mikrousług może być złym pomysłem? 49Niesprecyzowana dziedzina 50Startupy 50Oprogramowanie instalowane przez klienta a oprogramowanie zarządzane 51Brak dobrego powodu! 52Wady i zalety 52Zachęcanie innych do wspólnej podróży 53Zmienianie organizacji 54Uświadamianie pilności wprowadzenia zmian 54Budowanie koalicji kierującej wprowadzaniem zmian 55Opracowywanie wizji i strategii 56Komunikowanie wizji zmian 56Dawanie pracownikom uprawnień do szeroko zakrojonych działań 57Uzyskiwanie krótkoterminowych sukcesów 58Konsolidowanie korzyści i wprowadzanie nowych zmian 58Utrwalanie nowego podejścia w kulturze firmy 58Znaczenie stopniowej migracji 59Ważne jest to, co w środowisku produkcyjnym 60Koszt wprowadzania zmian 60Odwracalne i nieodwracalne decyzje 60Lepsze miejsca do eksperymentów 61Od czego więc zacząć? 62Podejście DDD 62Jak szczegółowy powinien być model? 63Event storming 63Korzystanie z modelu dziedziny do określania priorytetów 64Model mieszany 65Reorganizacja zespołów 67Zmiany w strukturach 67Nie istnieją uniwersalne rozwiązania 68Wprowadzanie zmian 70Nowe umiejętności 71Skąd wiadomo, czy zmiany przynoszą dobre efekty? 74Regularne punkty kontrolne 75Wskaźniki ilościowe 75Wskaźniki jakościowe 76Unikanie efektu utopionych kosztów 76Otwartość na nowe podejścia 77Podsumowanie 773. Podział systemu monolitycznego 79Modyfikować system monolityczny czy nie? 79Wycinać i wklejać czy pisać od nowa? 80Refaktoryzacja systemu monolitycznego 80Wzorce migracji 82Wzorzec „figowiec dusiciel” 82Jak działa ten wzorzec? 83Gdzie stosować ten wzorzec? 84Przykład: odwrotny pośrednik HTTP 86Dane? 89Możliwości związane z pośrednikiem 89Zmiana protokołów 92Przykład: FTP 95Przykład: przechwytywanie komunikatów 96Inne protokoły 99Inne przykłady stosowania wzorca „figowiec dusiciel” 99Zmienianie działania kodu przy przenoszeniu funkcji 99Wzorzec: składanie interfejsu użytkownika 100Przykład: składanie strony 100Przykład: składanie widżetów 101Przykład: mikrofrontendy 104Gdzie stosować ten wzorzec? 105Wzorzec: rozgałęzianie z użyciem abstrakcji 105Jak działa ten wzorzec? 106Zapewnianie rezerwowego mechanizmu 112Gdzie używać tego wzorca? 113Wzorzec: równoległe uruchamianie 113Przykład: porównywanie cen kredytowych instrumentów pochodnych 114Przykład: oferty w agencji Homegate 115Techniki sprawdzania poprawności 116Używanie szpiegów 116Biblioteka Scientist z serwisu GitHub 117Ukryte udostępnianie i udostępnianie próbne 118Gdzie stosować ten wzorzec? 118Wzorzec: współdziałający dekorator 118Przykład: zarządzanie programem lojalnościowym 119Gdzie stosować ten wzorzec? 120Wzorzec: przechwytywanie zmian w danych 120Przykład: wydawanie kart lojalnościowych 120Implementowanie przechwytywania zmian w danych 121Gdzie stosować ten wzorzec? 124Podsumowanie 1244. Podział baz danych 125Wzorzec: współdzielona baza danych 125Wzorce radzenia sobie 126Gdzie stosować ten wzorzec? 126Ale to niemożliwe! 127Wzorzec: widoki bazodanowe 128Baza danych jako publiczny kontrakt 128Prezentowane widoki 129Ograniczenia 131Własność 131Gdzie stosować ten wzorzec? 131Wzorzec: usługa opakowująca bazę danych 131Gdzie stosować ten wzorzec? 133Wzorzec: interfejs „baza danych jako usługa” 134Implementowanie mechanizmu odwzorowywania danych 135Porównanie z widokami 136Gdzie stosować ten wzorzec? 136Przekazywanie własności 136Wzorzec: system monolityczny udostępniający agregaty 137Wzorzec: zmiana właściciela danych 139Synchronizacja danych 140Wzorzec: synchronizowanie danych z użyciem aplikacji 142Etap 1. Masowa synchronizacja danych 142Etap 2. Synchronizowanie zapisu, odczyt z dawnego schematu 143Etap 3. Synchronizacja zapisu, odczyt z nowego schematu 144Gdzie stosować ten wzorzec? 144Wzorzec: stopniowa synchronizacja 145Synchronizowanie danych 148Przykład: zamówienia w firmie Square 149Gdzie stosować ten wzorzec? 153Podział bazy danych 153Fizyczny i logiczny podział baz danych 153Co dzielić najpierw – bazę danych czy kod? 155Najpierw podział bazy danych 155Najpierw podział kodu 159Jednoczesny podział bazy danych i kodu 163Co więc należy podzielić w pierwszej kolejności? 163Przykłady dotyczące podziału schematu 164Wzorzec: tabela pomostowa 164Wzorzec: przenoszenie relacji klucza obcego do kodu 166Transakcje 178Transakcje ACID 178Nadal ACID, ale bez atomowości? 179Zatwierdzanie dwuetapowe 181Transakcje rozproszone – po prostu powiedz „nie” 183Sagi 184Rodzaje błędów w sagach 185Implementowanie sag 188Sagi a transakcje rozproszone 194Podsumowanie 1955. Rosnące problemy 197Więcej usług, więcej kłopotów 197Własność przy dużej liczbie usług 198Jak ten problem może się ujawnić? 199Kiedy ten problem może wystąpić? 200Potencjalne rozwiązania 200Zmiany naruszające zgodność 200Jak ten problem może się ujawnić? 201Kiedy ten problem może wystąpić? 201Potencjalne rozwiązania 201Generowanie raportów 204Kiedy ten problem może wystąpić? 205Potencjalne rozwiązania 205Monitorowanie i rozwiązywanie problemów 206Kiedy te problemy mogą wystąpić? 207Jak objawiają się problemy? 207Potencjalne rozwiązania 207Komfort pracy programisty na lokalnej maszynie 211Jak ten problem może się ujawnić? 211Kiedy ten problem może wystąpić? 211Możliwe rozwiązania 212Uruchamianie zbyt wielu rzeczy 212Jak ten problem może się ujawnić? 212Kiedy ten problem może wystąpić? 213Możliwe rozwiązania 213Testy end-to-end 214Jak ten problem może się ujawnić? 214Kiedy ten problem może wystąpić? 215Możliwe rozwiązania 215Optymalizacja globalna i lokalna 217Jak ten problem może się ujawnić? 217Kiedy ten problem może wystąpić? 217Możliwe rozwiązania 218Stabilność i odporność 219Jak ten problem może się ujawnić? 219Kiedy ten problem może wystąpić? 219Możliwe rozwiązania 220Osierocone usługi 220Jak ten problem może się ujawnić? 221Kiedy ten problem może wystąpić? 221Możliwe rozwiązania 221Podsumowanie 2226. Słowo na zakończenie 225A. Bibliografia 227B. Indeks wzorców 229O autorze: Sam Newman – jest technologiem w firmie ThoughtWorks, gdzie dzieli swój czas pomiędzy pomoc klientom z całego świata, a rolę architekta wewnętrznych systemów. Współpracował z różnymi firmami na całym świecie, zarówno w zakresie projektowania systemów, jak i innych operacji związanych z informatyką.

: Podręczniki szkolne

is pcz czest pl, sytuacja kryzysowa przykłady, tomek kozłowski, co to administracja publiczna, powrót maturzystów do szkół, wrocław smolec, do kiedy zapisy na mature, germanistyka od podstaw, jak napisać artykuł angielski matura rozszerzona

yyyyy