Budowanie mikrousług
Tyt. oryg.: : "Building microservices ".
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.
Odpowiedzialność: | Sam Newman ; [tłumaczenie z angielskiego Radosław Meryk]. |
Hasła: | Programowanie (informat.) Podręczniki |
Adres wydawniczy: | Gliwice : Wydawnictwo Helion, cop. 2015. |
Opis fizyczny: | 271, [1] s. : il. ; 24 cm. |
Uwagi: | Na okł.: Wykorzystaj potencjał architektury usług! Na okł. i na s. tyt.: O`Reilly. Indeks. |
Skocz do: | Dodaj recenzje, komentarz |
- 1. Mikrousługi
- Czym są mikrousługi?
- Niewielkie, skoncentrowane na dobrym wykonywaniu jednej rzeczy
- Autonomiczne
- Najważniejsze korzyści
- Niejednorodność technologii
- Odporność na błędy
- Skalowanie
- Łatwość wdrażania
- Dopasowanie do organizacji zespołów
- Interoperatywność
- Optymalizacja w kierunku wymienności
- Architektura zorientowana na usługi
- Inne techniki dekompozycji
- Biblioteki współdzielone
- Moduły
- Nie istnieje panaceum na wszystko
- Podsumowanie
- 2. Ewolucyjny architekt
- Niedokładne porównania
- Ewolucyjna wizja architekta
- Podział na strefy
- Pryncypialne podejście
- Cele strategiczne
- Zasady
- Praktyki
- Łączenie zasad i praktyk
- Praktyczny przykład
- Wymagane standardy
- Monitorowanie
- Interfejsy
- Bezpieczeństwo architektury
- Zarządzanie za pośrednictwem kodu
- Przykładowe egzemplarze
- Spersonalizowany szablon usługi
- Dług techniczny
- Obsługa wyjątków
- Zarządzanie i przewodnictwo od środka
- Budowanie zespołu
- Podsumowanie
- 3. Jak modelować usługi?
- Przedstawiamy firmę MusicCorp
- Co decyduje o tym, że usługa jest dobra?
- Luźne sprzężenia
- Wysoka spójność
- Ograniczony kontekst
- Modele współdzielone i ukryte
- Moduły i usługi
- Przedwczesna dekompozycja
- Możliwości biznesowe
- Żółwie aż do spodu
- Komunikacja w kategoriach pojęć biznesowych
- Granice techniczne
- Podsumowanie
- 4. Integracja
- Poszukiwanie idealnej technologii integracji
- Unikanie wprowadzania przełomowych zmian
- Dbanie o niezależność interfejsów API od technologii
- Dbałość o zapewnienie prostoty usługi dla konsumentów
- Ukrycie wewnętrznych szczegółów implementacji
- Interfejs z klientami
- Wspólna baza danych
- Komunikacja synchroniczna kontra asynchroniczna
- Aranżacja kontra choreografia
- Zdalne wywołania procedur
- Sprzężenia technologii
- Wywołania lokalne różnią się od zdalnych
- Kruchość
- Czy wywołania RPC są złym rozwiązaniem?
- REST
- REST a HTTP
- Hipermedium jako silnik stanu aplikacji
- JSON, XML czy coś innego?
- Uważaj na zbyt wielkie wygody
- Wady interfejsu REST przez HTTP
- Implementacja współpracy asynchronicznej, bazującej na zdarzeniach
- Opcje wyboru technologii
- Zawiłości architektur asynchronicznych
- Usługi jako maszyny stanów
- Rozszerzenia reaktywne
- DRY i perypetie wielokrotnego wykorzystania kodu w świecie mikrousług
- Biblioteki klienckie
- Dostęp przez referencję
- Zarządzanie wersjami
- Odkładaj modyfikowanie interfejsu tak długo, jak to możliwe
- Wczesne wychwytywanie zmian naruszających zgodność interfejsu
- Zastosowanie semantycznej kontroli wersji
- Współistnienie różnych punktów końcowych
- Korzystanie z wielu równoległych wersji usługi
- Interfejsy użytkownika
- W stronę środowiska cyfrowego
- Ograniczenia
- Kompozycja interfejsów API
- Kompozycja fragmentu interfejsu użytkownika
- Zaplecza dla frontonów
- Podejście hybrydowe
- Integracja z oprogramowaniem zewnętrznych producentów
- Brak kontroli
- Personalizacja
- Makaron integracji
- Personalizacja na własnych warunkach
- Wzorzec Dusiciel
- Podsumowanie
- 5. Dzielenie monolitu
- To wszystko są szwy
- Podział systemu w firmie MusicCorp
- Powody dzielenia monolitu
- Tempo zmian
- Struktura zespołu
- Bezpieczeństwo
- Technologia
- Splątane zależności
- Baza danych
- Zlikwidowanie problemu
- Przykład: eliminowanie relacji kluczy obcych
- Przykład: wspólne statyczne dane
- Przykład: współdzielone dane
- Przykład: wspólne tabele
- Refaktoryzacja baz danych
- Podział na etapy
- Granice transakcyjne
- Spróbuj ponownie później
- Odrzucenie całej operacji
- Transakcje rozproszone
- Jakie rozwiązanie wybrać?
- Raportowanie
- Bazy danych raportowania
- Pobieranie danych za pośrednictwem wywołania usługi
- Pompy danych
- Alternatywne lokalizacje docelowe
- Pompa danych sterowana zdarzeniami
- Pompa danych z kopii zapasowej
- W stronę czasu rzeczywistego
- Koszty zmiany
- Zrozumieć przyczyny
- Podsumowanie
- 6. Wdrażanie
- Krótkie wprowadzenie do ciągłej integracji
- Czy rzeczywiście to robisz?
- Mapowanie ciągłej integracji na mikrousługi
- Potoki kompilacji a ciągłe dostawy
- Nieuniknione wyjątki
- Artefakty specyficzne dla platformy
- Artefakty systemu operacyjnego
- Spersonalizowane obrazy
- Obrazy jako artefakty
- Serwery niezmienne
- Środowiska
- Konfiguracja usługi
- Odwzorowanie usługa-host
- Wiele usług na hoście
- Kontenery aplikacji
- Jedna usługa na host
- Platforma jako usługa
- Automatyzacja
- Dwa studia przypadków na potwierdzenie potęgi automatyzacji
- Od świata fizycznego do wirtualnego
- Tradycyjna wirtualizacja
- Vagrant
- Kontenery w Linuksie
- Docker
- Interfejs instalacji
- Definicja środowiska
- Podsumowanie
- 7. Testowanie
- Rodzaje testów
- Zakres testów
- Testy jednostkowe
- Testy usług
- Testy od końca do końca
- Kompromisy
- Ile?
- Implementacja testów usług
- Makiety lub namiastki
- Inteligentniejsza namiastka usługi
- Kłopotliwe testy od końca do końca
- Wady testowania od końca do końca
- Testy kruche i łamliwe
- Kto pisze te testy?
- Jak długo?
- Piętrzące się zaległości
- Metawersje
- Testuj ścieżki, a nie historie
- Testy sterowane potrzebami konsumentów
- Pact
- Konwersacje
- Czy należy używać testów od końca do końca?
- Testowanie po opublikowaniu systemu do produkcji
- Oddzielenie wdrożenia od publikacji
- Publikacje kanarkowe
- Średni czas do naprawy kontra średni czas między awariami
- Testy współzależności funkcjonalnych
- Testy wydajności
- Podsumowanie
- 8. Monitorowanie
- Jedna usługa, jeden serwer
- Jedna usługa, wiele serwerów
- Wiele usług, wiele serwerów
- Logi, logi i jeszcze raz logi...
- Śledzenie metryk dotyczących wielu usług
- Metryki usług
- Monitorowanie syntetyczne
- Implementacja monitorowania semantycznego
- Identyfikatory korelacji
- Kaskada
- Standaryzacja
- Weź pod uwagę użytkowników
- Przyszłość
- Podsumowanie
- 9. Bezpieczeństwo
- Uwierzytelnianie i autoryzacja
- Popularne implementacje pojedynczego logowania
- Brama pojedynczego logowania
- Szczegółowa autoryzacja
- Uwierzytelnianie i autoryzacja w trybie usługa-usługa
- Zezwalaj na wszystko wewnątrz obszaru
- Podstawowe uwierzytelnianie HTTP(S)
- Korzystanie z SAML lub OpenID Connect
- Certyfikaty klienta
- HMAC przez HTTP
- Klucze API
- Problem zastępcy
- Zabezpieczanie danych w spoczynku
- Korzystaj ze sprawdzonych sposobów
- Wszystko dotyczy kluczy
- Wybierz swoje cele
- Odszyfruj dane na żądanie
- Szyfruj kopie zapasowe
- Obrona wielostrefowa
- Zapory firewall
- Rejestrowanie
- Systemy wykrywania włamań (i zapobiegania im)
- Podział sieci
- System operacyjny
- Praktyczny przykład
- Bądź oszczędny
- Czynnik ludzki
- Złota reguła
- Wdrażanie zabezpieczeń
- Zewnętrzna weryfikacja
- Podsumowanie
- 10. Prawo Conwaya a projektowanie systemów
- Dowody
- Organizacje sprzężone luźno i ściśle
- Windows Vista
- Netflix i Amazon
- Co można z tym zrobić?
- Dostosowanie się do ścieżek komunikacyjnych
- Własność usługi
- Powody współdzielenia usług
- Zbyt trudne do rozdzielenia
- Zespoły funkcyjne
- Wąskie gardła dostaw
- Wewnętrzne Open Source
- Rola opiekunów
- Dojrzałość
- Narzędzia
- Konteksty ograniczone a struktura zespołów
- Usługa osierocona?
- Studium przypadku: RealEstate.com.au
- Odwrócone prawo Conwaya
- Ludzie
- Podsumowanie
- 11. Mikrousługi w projektach dużej skali
- Awarie zdarzają się wszędzie
- Jak wiele jest zbyt wiele?
- Degradowanie funkcjonalności
- Środki bezpieczeństwa architektury
- Antykrucha organizacja
- Limity czasu
- Bezpieczniki
- Grodzie
- Izolacja
- Idempotencja
- Skalowanie
- Zwiększenie rozmiarów
- Podział obciążeń
- Rozłożenie ryzyka
- Równoważenie obciążenia
- Systemy bazujące na wątkach roboczych
- Zaczynanie od nowa
- Skalowanie baz danych
- Dostępność usługi kontra trwałość danych
- Skalowanie do obsługi operacji odczytu
- Skalowanie do obsługi operacji zapisu
- Wspólna infrastruktura bazy danych
- CQRS
- Buforowanie
- Buforowanie po stronie klienta, na serwerze proxy i po stronie serwera
- Buforowanie w HTTP
- Buforowanie operacji zapisu
- Buforowanie w celu poprawy niezawodności
- Ukrywanie źródła
- Zachowaj prostotę
- Zatrucie pamięcią podręczną: historia ku przestrodze
- Autoskalowanie
- Twierdzenie CAP
- Poświęcenie spójności
- Poświęcenie dostępności
- Poświęcenie tolerancji podziału?
- AP czy CP?
- To nie jest zasada "wszystko albo nic"
- Świat rzeczywisty
- Wykrywanie usług
- DNS
- Dynamiczne rejestry usług
- Zookeeper
- Consul
- Eureka
- Tworzenie własnych rozwiązań
- Nie zapomnij o ludziach!
- Dokumentowanie usług
- Swagger
- HAL i przeglądarka HAL
- System samoopisujący się
- Podsumowanie
- 12. Podsumowanie
- Zasady dotyczące mikrousług
- Wzorowanie na koncepcjach działania biznesu
- Przyjęcie kultury automatyzacji
- Ukrywanie wewnętrznych szczegółów implementacji
- Decentralizacja wszystkich operacji
- Możliwość niezależnej instalacji
- Izolowanie awarii
- Łatwe do obserwacji
- Kiedy nie należy używać mikrousług?
- Ostatnie słowo
Zobacz spis treści
Sprawdź dostępność, zarezerwuj (zamów):
(kliknij w nazwę placówki - więcej informacji)