E-book details

Mikrousługi. Wdrażanie i standaryzacja systemów w organizacji inżynierskiej

Mikrousługi. Wdrażanie i standaryzacja systemów w organizacji inżynierskiej

Susan J. Fowler

Ebook

Ostatnio coraz częściej projektuje się systemy oparte na mikrousługach. W odróżnieniu od aplikacji monolitycznych są one bardziej skalowalne, efektywniejsze, a także łatwiejsze w implementacji, rozwijaniu i utrzymaniu. Dzięki zastosowaniu architektury mikrousług i kontenerów programiści mogą skupić się na danym elemencie, nie zajmując się całością aplikacji. Okazuje się jednak, że przejście na architekturę mikrousług nie jest proste. Problemem jest brak gotowych standardów architektonicznych, operacyjnych i organizacyjnych, które ułatwiałyby pełne wykorzystanie niewątpliwych zalet architektury mikrousług.

Niniejsza książka jest praktycznym poradnikiem dla inżynierów, menedżerów i architektów oprogramowania odpowiedzialnych za przygotowanie i funkcjonowanie systemów w firmach inżynierskich. Nie jest to podręcznik przedstawiający operacje wdrożeniowe „krok po kroku”, jednak wyjaśniono tu niezbędne pojęcia i pokazano zasady budowania mikrousług. Opisano również szereg strategii ich implementacji. Niezwykle cenną cechą książki jest podejście oparte na standaryzacji: dzięki temu łatwiej jest zaprojektować mikrousługi, które są stabilne, niezawodne, skalowalne, odporne na uszkodzenia, wydajne, monitorowane i udokumentowane.

Najważniejsze zagadnienia:

  • mikrousługi, ich budowa i ekosystem
  • standardy gotowości bazujące na dostępności mikrousług
  • standardy projektowania cyklu życiowego mikrousług
  • budowa odporności na awarie i strategie wykrywania błędów
  • właściwe podejście do dokumentacji
  • konserwacja systemu i strategie zarządzania zależnościami

Wdrażaj mikrousługi w najlepszym sprawdzonym standardzie!


Susan Fowler pracuje w firmie Uber Technologies, gdzie zajmuje się przygotowaniem mikrousług do wdrożenia w produkcji. Przed dołączeniem do Ubera pracowała nad platformami aplikacji i infrastrukturą w kilku małych firmach. Wcześniej studiowała fizykę cząstek elementarnych na Uniwersytecie w Pensylwanii. Interesuje się nie tylko technologiami informatycznymi i fizyką, ale i matematyką oraz filozofią. Jednym z jej marzeń jest napisanie symfonii i... scenariusza sitcomu.

Przedmowa (9)

1. Mikrousługi (19)

  • Od monolitów do mikrousług (20)
  • Architektura mikrousług (28)
  • Ekosystem mikrousług (31)
    • Warstwa 1.: sprzęt (32)
    • Warstwa 2.: komunikacja (34)
    • Warstwa 3.: platforma aplikacji (37)
    • Warstwa 4.: mikrousługi (41)
  • Wyzwania organizacyjne (42)
    • Odwrócone prawo Conwaya (43)
    • Techniczny rozrost (45)
    • Większe ryzyko awarii (46)
    • Rywalizacja o zasoby (47)

2. Gotowość do produkcji (49)

  • Wyzwania standaryzacji mikrousług (49)
  • Dostępność - cel standaryzacji (50)
  • Standardy gotowości do produkcji (52)
    • Stabilność (53)
    • Niezawodność (54)
    • Skalowalność (55)
    • Odporność na awarie i przygotowanie na katastrofy (57)
    • Wydajność (59)
    • Monitorowanie (60)
    • Dokumentacja (62)
  • Implementacja gotowości do produkcji (64)

3. Stabilność i niezawodność (67)

  • Zasady budowania stabilnych i niezawodnych mikrousług (67)
  • Cykl rozwoju (69)
  • Potok wdrożeń (71)
    • Faza przedprodukcyjna (72)
    • Faza kanarkowa (78)
    • Faza produkcyjna (79)
    • Egzekwowanie stabilnego i niezawodnego wdrażania (80)
  • Zależności (82)
  • Routing i wykrywanie (84)
  • Deprecjacja i wycofywanie (85)
  • Ocena mikrousługi (86)
    • Cykl rozwoju (86)
    • Potok wdrożeń (87)
    • Zależności (87)
    • Routing i wykrywanie (87)
    • Deprecjacja i wycofywanie (88)

4. Skalowalność i wydajność (89)

  • Zasady skalowalności i wydajności mikrousług (89)
  • Znajomość skali wzrostu (91)
    • Skala wzrostu jakościowego (91)
    • Skala wzrostu ilościowego (93)
  • Efektywne wykorzystanie zasobów (93)
  • Świadomość zasobów (95)
    • Wymagania dotyczące zasobów (95)
    • Wąskie gardła zasobów (96)
  • Planowanie możliwości (97)
  • Skalowanie zależności (99)
  • Zarządzanie ruchem (100)
  • Obsługa i przetwarzanie zadań (102)
    • Ograniczenia związane z językami programowania (102)
    • Wydajna obsługa żądań i wydajne przetwarzanie zadań (103)
  • Skalowalne składowanie danych (105)
    • Wybór bazy danych w ekosystemach mikrousług (105)
    • Wyzwania związane z bazami danych w architekturze mikrousług (106)
  • Ocena mikrousługi (107)
    • Znajomość skali wzrostu (107)
    • Efektywne wykorzystanie zasobów (108)
    • Świadomość zasobów (108)
    • Planowanie możliwości (108)
    • Skalowanie zależności (108)
    • Zarządzanie ruchem (109)
    • Obsługa i przetwarzanie zadań (109)
    • Skalowalne składowanie danych (109)

5. Odporność na awarie i przygotowanie na katastrofy (111)

  • Zasady budowania mikrousług odpornych na awarie (111)
  • Eliminowanie pojedynczych punktów awarii (113)
  • Scenariusze katastrof i awarii (115)
    • Typowe awarie w ekosystemie (116)
    • Awarie sprzętu (118)
    • Awarie na poziomie komunikacji i platformy aplikacji (120)
    • Awarie zależności (122)
    • Awarie wewnętrzne (mikrousług) (124)
  • Testowanie odporności (126)
    • Testowanie kodu (127)
    • Testowanie obciążenia (129)
    • Testowanie chaosu (133)
  • Wykrywanie awarii i środki zaradcze (135)
  • Incydenty i przestoje (136)
    • Odpowiednia kategoryzacja (137)
    • Pięć faz reagowania na incydenty (139)
  • Ocena mikrousługi (143)
    • Eliminowanie pojedynczych punktów awarii (143)
    • Scenariusze katastrof i awarii (143)
    • Testowanie odporności (143)
    • Wykrywanie awarii i środki zaradcze (144)

6. Monitorowanie (145)

  • Zasady monitorowania mikrousług (145)
  • Kluczowe parametry (147)
  • Rejestrowanie (150)
  • Pulpity nawigacyjne (152)
  • Ostrzeganie (154)
    • Konfigurowanie skutecznego ostrzegania (154)
    • Obsługa alertów (156)
  • Dyżury (157)
  • Ocena mikrousługi (158)
    • Kluczowe parametry (158)
    • Rejestrowanie (159)
    • Pulpity nawigacyjne (159)
    • Ostrzeganie (159)
    • Dyżury (159)

7. Dokumentowanie i rozumienie (161)

  • Zasady dokumentowania i rozumienia mikrousług (161)
  • Dokumentacja mikrousługi (163)
    • Opis (165)
    • Diagram architektury (165)
    • Informacje kontaktowe i wzywanie dyżurnych (166)
    • Linki (167)
    • Przewodnik dla nowych programistów i podręcznik programowania (167)
    • Przepływy żądań, punkty końcowe i zależności (168)
    • Instrukcje postępowania w nagłych wypadkach (169)
    • FAQ (170)
  • Rozumienie mikrousługi (171)
    • Przeglądy architektury (172)
    • Audyty gotowości do produkcji (173)
    • Mapy gotowości do produkcji (174)
    • Automatyzacja gotowości do produkcji (175)
  • Ocena mikrousługi (176)
    • Dokumentacja mikrousługi (176)
    • Zrozumienie mikrousługi (177)

A. Lista kontrolna gotowości do produkcji (179)

B. Oceń swoją mikrousługę (183)

Słowniczek (191)

Skorowidz (201)

  • Title: Mikrousługi. Wdrażanie i standaryzacja systemów w organizacji inżynierskiej
  • Author: Susan J. Fowler
  • Original title: Production-Ready Microservices: Building Standardized Systems Across an Engineering Organization
  • Translation: Radosław Meryk
  • ISBN: 978-83-283-3683-4, 9788328336834
  • Date of issue: 2017-10-27
  • Format: Ebook
  • Item ID: mikrou
  • Publisher: Helion