Budowanie mikrousług

1.jpg
  • promocja
Dostępność: duża ilość
Wysyłka w: 48 godzin
Dostawa: Cena nie zawiera ewentualnych kosztów płatności sprawdź formy dostawy
Cena: 55,00 zł 99,00 zł 55.00
zawiera 5.00% VAT, bez kosztów dostawy
ilość szt.
Zyskujesz 5 pkt [?]

towar niedostępny

dodaj do przechowalni
Pin It

Opis

Wykorzystaj potencjał architektury usług!

Architektura mikrousług to sposób na odejście od dużych, monolitycznych aplikacji. Wyspecjalizowane usługi realizujące konkretne zadania i komunikujące się z otoczeniem pozwalają na lepsze zapanowanie nad kodem, są łatwiejsze do przetestowania oraz bardziej elastyczne. Jednak oprócz zalet mają też wady. Sięgnij po tę książkę i dowiedz się, jak najlepiej radzić sobie z architekturą mikrousług!

Autor przedstawia w książce skuteczne techniki projektowania i korzystania z architektury mikrousług. W trakcie lektury kolejnych rozdziałów poznasz w szczegółach ideę mikrousług, korzyści ich stosowania, sposoby modelowania usług oraz skuteczne techniki dzielenia dużej aplikacji na mikrousługi. Ponadto zapoznasz się z możliwymi sposobami integracji: zdalne wywołanie procedur, REST i zdarzenia — to tylko niektóre z poruszanych kwestii. Na sam koniec zaznajomisz się z najlepszymi metodami testowania i monitorowania usług, zapewnisz im bezpieczeństwo dzięki kluczom API oraz innym technikom. Ta książka jest obowiązkową lekturą dla wszystkich osób chcących tworzyć nowoczesne systemy bazujące na architekturze mikrousług.

  • Odkryj, jak można dostosować projekt systemu do celów Twojej organizacji stosując architekturę mikrousług
  • Zapoznaj się z możliwościami integracji usług z pozostałą częścią systemu
  • Zastosuj przyrostowe podejście do podziału monolitycznych baz kodu
  • Wdrażaj pojedyncze mikrousługi korzystając z techniki ciągłej integracji
  • Zbadaj złożoność testowania i monitorowania rozproszonych usług
  • Zarządzaj zabezpieczeniami stosując modele użytkownik-usługa oraz usługa-usługa
  • Zapoznaj się z wyzwaniami skalowania architektury mikrousług

Przekonaj się, jak architektura mikrousług zmieni Twoje spojrzenie na aplikacje!

O 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ą.

 

Spis treści

Przedmowa (13)

1. Mikrousługi (19)

  • Czym są mikrousługi? (20)
    • Niewielkie, skoncentrowane na dobrym wykonywaniu jednej rzeczy (20)
    • Autonomiczne (21)
  • Najważniejsze korzyści (22)
    • Niejednorodność technologii (22)
    • Odporność na błędy (23)
    • Skalowanie (23)
    • Łatwość wdrażania (24)
    • Dopasowanie do organizacji zespołów (25)
    • Interoperatywność (25)
    • Optymalizacja w kierunku wymienności (25)
  • Architektura zorientowana na usługi (26)
  • Inne techniki dekompozycji (27)
    • Biblioteki współdzielone (27)
    • Moduły (28)
  • Nie istnieje panaceum na wszystko (29)
  • Podsumowanie (29)

2. Ewolucyjny architekt (31)

  • Niedokładne porównania (31)
  • Ewolucyjna wizja architekta (33)
  • Podział na strefy (34)
  • Pryncypialne podejście (35)
    • Cele strategiczne (36)
    • Zasady (36)
    • Praktyki (37)
    • Łączenie zasad i praktyk (37)
    • Praktyczny przykład (37)
  • Wymagane standardy (38)
    • Monitorowanie (39)
    • Interfejsy (39)
    • Bezpieczeństwo architektury (39)
  • Zarządzanie za pośrednictwem kodu (40)
    • Przykładowe egzemplarze (40)
    • Spersonalizowany szablon usługi (40)
  • Dług techniczny (42)
  • Obsługa wyjątków (42)
  • Zarządzanie i przewodnictwo od środka (43)
  • Budowanie zespołu (44)
  • Podsumowanie (45)

3. Jak modelować usługi? (47)

  • Przedstawiamy firmę MusicCorp (47)
  • Co decyduje o tym, że usługa jest dobra? (48)
    • Luźne sprzężenia (48)
    • Wysoka spójność (48)
  • Ograniczony kontekst (49)
    • Modele współdzielone i ukryte (49)
    • Moduły i usługi (51)
    • Przedwczesna dekompozycja (51)
  • Możliwości biznesowe (52)
  • Żółwie aż do spodu (52)
  • Komunikacja w kategoriach pojęć biznesowych (54)
  • Granice techniczne (54)
  • Podsumowanie (55)

4. Integracja (57)

  • Poszukiwanie idealnej technologii integracji (57)
    • Unikanie wprowadzania przełomowych zmian (57)
    • Dbanie o niezależność interfejsów API od technologii (57)
    • Dbałość o zapewnienie prostoty usługi dla konsumentów (58)
    • Ukrycie wewnętrznych szczegółów implementacji (58)
  • Interfejs z klientami (58)
  • Wspólna baza danych (59)
  • Komunikacja synchroniczna kontra asynchroniczna (60)
  • Aranżacja kontra choreografia (61)
  • Zdalne wywołania procedur (64)
    • Sprzężenia technologii (64)
    • Wywołania lokalne różnią się od zdalnych (65)
    • Kruchość (65)
    • Czy wywołania RPC są złym rozwiązaniem? (67)
  • REST (67)
    • REST a HTTP (68)
    • Hipermedium jako silnik stanu aplikacji (68)
    • JSON, XML czy coś innego? (70)
    • Uważaj na zbyt wielkie wygody (71)
    • Wady interfejsu REST przez HTTP (72)
  • Implementacja współpracy asynchronicznej, bazującej na zdarzeniach (73)
    • Opcje wyboru technologii (73)
    • Zawiłości architektur asynchronicznych (74)
  • Usługi jako maszyny stanów (76)
  • Rozszerzenia reaktywne (76)
  • DRY i perypetie wielokrotnego wykorzystania kodu w świecie mikrousług (77)
    • Biblioteki klienckie (77)
  • Dostęp przez referencję (78)
  • Zarządzanie wersjami (80)
    • Odkładaj modyfikowanie interfejsu tak długo, jak to możliwe (80)
    • Wczesne wychwytywanie zmian naruszających zgodność interfejsu (81)
    • Zastosowanie semantycznej kontroli wersji (81)
    • Współistnienie różnych punktów końcowych (82)
    • Korzystanie z wielu równoległych wersji usługi (83)
  • Interfejsy użytkownika (84)
    • W stronę środowiska cyfrowego (85)
    • Ograniczenia (85)
    • Kompozycja interfejsów API (86)
    • Kompozycja fragmentu interfejsu użytkownika (87)
    • Zaplecza dla frontonów (89)
    • Podejście hybrydowe (90)
  • Integracja z oprogramowaniem zewnętrznych producentów (91)
    • Brak kontroli (92)
    • Personalizacja (92)
    • Makaron integracji (92)
    • Personalizacja na własnych warunkach (93)
    • Wzorzec Dusiciel (95)
  • Podsumowanie (96)

5. Dzielenie monolitu (97)

  • To wszystko są szwy (97)
  • Podział systemu w firmie MusicCorp (98)
  • Powody dzielenia monolitu (99)
    • Tempo zmian (99)
    • Struktura zespołu (99)
    • Bezpieczeństwo (99)
    • Technologia (100)
  • Splątane zależności (100)
  • Baza danych (100)
  • Zlikwidowanie problemu (100)
  • Przykład: eliminowanie relacji kluczy obcych (101)
  • Przykład: wspólne statyczne dane (103)
  • Przykład: współdzielone dane (104)
  • Przykład: wspólne tabele (105)
  • Refaktoryzacja baz danych (106)
    • Podział na etapy (106)
  • Granice transakcyjne (107)
    • Spróbuj ponownie później (108)
    • Odrzucenie całej operacji (109)
    • Transakcje rozproszone (109)
    • Jakie rozwiązanie wybrać? (110)
  • Raportowanie (111)
  • Bazy danych raportowania (111)
  • Pobieranie danych za pośrednictwem wywołania usługi (112)
  • Pompy danych (114)
    • Alternatywne lokalizacje docelowe (115)
  • Pompa danych sterowana zdarzeniami (116)
  • Pompa danych z kopii zapasowej (117)
  • W stronę czasu rzeczywistego (117)
  • Koszty zmiany (117)
  • Zrozumieć przyczyny (118)
  • Podsumowanie (119)

6. Wdrażanie (121)

  • Krótkie wprowadzenie do ciągłej integracji (121)
    • Czy rzeczywiście to robisz? (122)
  • Mapowanie ciągłej integracji na mikrousługi (123)
  • Potoki kompilacji a ciągłe dostawy (125)
    • Nieuniknione wyjątki (126)
  • Artefakty specyficzne dla platformy (127)
  • Artefakty systemu operacyjnego (128)
  • Spersonalizowane obrazy (129)
    • Obrazy jako artefakty (131)
    • Serwery niezmienne (131)
  • Środowiska (131)
  • Konfiguracja usługi (133)
  • Odwzorowanie usługa-host (133)
    • Wiele usług na hoście (134)
    • Kontenery aplikacji (136)
    • Jedna usługa na host (137)
    • Platforma jako usługa (138)
  • Automatyzacja (139)
    • Dwa studia przypadków na potwierdzenie potęgi automatyzacji (139)
  • Od świata fizycznego do wirtualnego (140)
    • Tradycyjna wirtualizacja (140)
    • Vagrant (141)
    • Kontenery w Linuksie (142)
    • Docker (144)
  • Interfejs instalacji (145)
    • Definicja środowiska (146)
  • Podsumowanie (147)

7. Testowanie (149)

  • Rodzaje testów (149)
  • Zakres testów (150)
    • Testy jednostkowe (152)
    • Testy usług (152)
    • Testy od końca do końca (153)
    • Kompromisy (153)
    • Ile? (154)
  • Implementacja testów usług (154)
    • Makiety lub namiastki (155)
    • Inteligentniejsza namiastka usługi (155)
  • Kłopotliwe testy od końca do końca (156)
  • Wady testowania od końca do końca (157)
  • Testy kruche i łamliwe (158)
    • Kto pisze te testy? (159)
    • Jak długo? (159)
    • Piętrzące się zaległości (160)
    • Metawersje (161)
  • Testuj ścieżki, a nie historie (161)
  • Testy sterowane potrzebami konsumentów (162)
    • Pact (163)
    • Konwersacje (165)
  • Czy należy używać testów od końca do końca? (165)
  • Testowanie po opublikowaniu systemu do produkcji (166)
    • Oddzielenie wdrożenia od publikacji (166)
    • Publikacje kanarkowe (167)
    • Średni czas do naprawy kontra średni czas między awariami (168)
  • Testy współzależności funkcjonalnych (169)
    • Testy wydajności (170)
  • Podsumowanie (171)

8. Monitorowanie (173)

  • Jedna usługa, jeden serwer (174)
  • Jedna usługa, wiele serwerów (174)
  • Wiele usług, wiele serwerów (175)
  • Logi, logi i jeszcze raz logi... (176)
  • Śledzenie metryk dotyczących wielu usług (177)
  • Metryki usług (178)
  • Monitorowanie syntetyczne (178)
    • Implementacja monitorowania semantycznego (179)
  • Identyfikatory korelacji (180)
  • Kaskada (182)
  • Standaryzacja (182)
  • Weź pod uwagę użytkowników (183)
  • Przyszłość (184)
  • Podsumowanie (185)

9. Bezpieczeństwo (187)

  • Uwierzytelnianie i autoryzacja (187)
    • Popularne implementacje pojedynczego logowania (188)
    • Brama pojedynczego logowania (189)
    • Szczegółowa autoryzacja (190)
  • Uwierzytelnianie i autoryzacja w trybie usługa-usługa (191)
    • Zezwalaj na wszystko wewnątrz obszaru (191)
    • Podstawowe uwierzytelnianie HTTP(S) (192)
    • Korzystanie z SAML lub OpenID Connect (192)
    • Certyfikaty klienta (193)
    • HMAC przez HTTP (194)
    • Klucze API (195)
    • Problem zastępcy (195)
  • Zabezpieczanie danych w spoczynku (197)
    • Korzystaj ze sprawdzonych sposobów (198)
    • Wszystko dotyczy kluczy (198)
    • Wybierz swoje cele (199)
    • Odszyfruj dane na żądanie (199)
    • Szyfruj kopie zapasowe (199)
  • Obrona wielostrefowa (199)
    • Zapory firewall (199)
    • Rejestrowanie (200)
    • Systemy wykrywania włamań (i zapobiegania im) (200)
    • Podział sieci (200)
    • System operacyjny (201)
  • Praktyczny przykład (201)
  • Bądź oszczędny (204)
  • Czynnik ludzki (204)
  • Złota reguła (204)
  • Wdrażanie zabezpieczeń (205)
  • Zewnętrzna weryfikacja (206)
  • Podsumowanie (206)

10. Prawo Conwaya a projektowanie systemów (207)

  • Dowody (207)
    • Organizacje sprzężone luźno i ściśle (208)
    • Windows Vista (208)
  • Netflix i Amazon (208)
  • Co można z tym zrobić? (209)
  • Dostosowanie się do ścieżek komunikacyjnych (209)
  • Własność usługi (210)
  • Powody współdzielenia usług (211)
    • Zbyt trudne do rozdzielenia (211)
    • Zespoły funkcyjne (211)
    • Wąskie gardła dostaw (212)
  • Wewnętrzne Open Source (212)
    • Rola opiekunów (213)
    • Dojrzałość (213)
    • Narzędzia (214)
  • Konteksty ograniczone a struktura zespołów (214)
  • Usługa osierocona? (214)
  • Studium przypadku: RealEstate.com.au (215)
  • Odwrócone prawo Conwaya (216)
  • Ludzie (217)
  • Podsumowanie (218)

11. Mikrousługi w projektach dużej skali (219)

  • Awarie zdarzają się wszędzie (219)
  • Jak wiele jest zbyt wiele? (220)
  • Degradowanie funkcjonalności (221)
  • Środki bezpieczeństwa architektury (222)
  • Antykrucha organizacja (224)
    • Limity czasu (225)
    • Bezpieczniki (225)
    • Grodzie (227)
    • Izolacja (229)
  • Idempotencja (229)
  • Skalowanie (230)
    • Zwiększenie rozmiarów (230)
    • Podział obciążeń (231)
    • Rozłożenie ryzyka (231)
    • Równoważenie obciążenia (232)
    • Systemy bazujące na wątkach roboczych (234)
    • Zaczynanie od nowa (235)
  • Skalowanie baz danych (236)
    • Dostępność usługi kontra trwałość danych (236)
    • Skalowanie do obsługi operacji odczytu (236)
    • Skalowanie do obsługi operacji zapisu (237)
    • Wspólna infrastruktura bazy danych (238)
    • CQRS (238)
  • Buforowanie (239)
    • Buforowanie po stronie klienta, na serwerze proxy i po stronie serwera (239)
    • Buforowanie w HTTP (240)
    • Buforowanie operacji zapisu (242)
    • Buforowanie w celu poprawy niezawodności (242)
    • Ukrywanie źródła (242)
    • Zachowaj prostotę (243)
    • Zatrucie pamięcią podręczną: historia ku przestrodze (244)
  • Autoskalowanie (245)
  • Twierdzenie CAP (246)
    • Poświęcenie spójności (247)
    • Poświęcenie dostępności (247)
    • Poświęcenie tolerancji podziału? (248)
    • AP czy CP? (249)
    • To nie jest zasada "wszystko albo nic" (249)
    • Świat rzeczywisty (250)
  • Wykrywanie usług (250)
    • DNS (251)
  • Dynamiczne rejestry usług (252)
    • Zookeeper (252)
    • Consul (253)
    • Eureka (254)
    • Tworzenie własnych rozwiązań (254)
    • Nie zapomnij o ludziach! (255)
  • Dokumentowanie usług (255)
    • Swagger (256)
    • HAL i przeglądarka HAL (256)
  • System samoopisujący się (257)
  • Podsumowanie (258)

12. Podsumowanie (259)

  • Zasady dotyczące mikrousług (259)
    • Wzorowanie na koncepcjach działania biznesu (260)
    • Przyjęcie kultury automatyzacji (260)
    • Ukrywanie wewnętrznych szczegółów implementacji (261)
    • Decentralizacja wszystkich operacji (261)
    • Możliwość niezależnej instalacji (262)
    • Izolowanie awarii (262)
    • Łatwe do obserwacji (263)
  • Kiedy nie należy używać mikrousług? (263)
  • Ostatnie słowo (264)

Skorowidz (265)

Koszty dostawy Cena nie zawiera ewentualnych kosztów płatności

Kraj wysyłki:

Opinie o produkcie (0)

do góry
Sklep jest w trybie podglądu
Pokaż pełną wersję strony
Sklep internetowy Shoper.pl