Состояние Новый
Счет-фактура Я выставляю счет-фактуру НДС
Язык издания польский
Название Создание микросервисов
Автор Sam Newman
Издательство Гелион
Обложка мягкая
Материал бумажная книга
Количество страниц Двести семьдесят два
Год выпуска Две тысячи пятнадцать
Вес с индивидуальной упаковкой 0.395 кг
Ширина 16.5 см
Количество 1 штук
Stron: 272
Format: 16,5 x 23,4 cm
Rok wydania: 2015
Oprawa: miękka
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.
Przekonaj się, jak architektura mikrousług zmieni Twoje spojrzenie na aplikacje!
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ą.
Przedmowa (13)
1. Mikrousługi (19)
Niewielkie, skoncentrowane na dobrym wykonywaniu jednej rzeczy (20)
Autonomiczne (21)
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)
Biblioteki współdzielone (27)
Moduły (28)
2. Ewolucyjny architekt (31)
Cele strategiczne (36)
Zasady (36)
Praktyki (37)
Łączenie zasad i praktyk (37)
Praktyczny przykład (37)
Monitorowanie (39)
Interfejsy (39)
Bezpieczeństwo architektury (39)
Przykładowe egzemplarze (40)
Spersonalizowany szablon usługi (40)
3. Jak modelować usługi? (47)
Luźne sprzężenia (48)
Wysoka spójność (48)
Modele współdzielone i ukryte (49)
Moduły i usługi (51)
Przedwczesna dekompozycja (51)
4. Integracja (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)
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 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)
Opcje wyboru technologii (73)
Zawiłości architektur asynchronicznych (74)
Biblioteki klienckie (77)
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)
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)
Brak kontroli (92)
Personalizacja (92)
Makaron integracji (92)
Personalizacja na własnych warunkach (93)
Wzorzec Dusiciel (95)
5. Dzielenie monolitu (97)
Tempo zmian (99)
Struktura zespołu (99)
Bezpieczeństwo (99)
Technologia (100)
Podział na etapy (106)
Spróbuj ponownie później (108)
Odrzucenie całej operacji (109)
Transakcje rozproszone (109)
Jakie rozwiązanie wybrać? (110)
Alternatywne lokalizacje docelowe (115)
6. Wdrażanie (121)
Czy rzeczywiście to robisz? (122)
Nieuniknione wyjątki (126)
Obrazy jako artefakty (131)
Serwery niezmienne (131)
Wiele usług na hoście (134)
Kontenery aplikacji (136)
Jedna usługa na host (137)
Platforma jako usługa (138)
Dwa studia przypadków na potwierdzenie potęgi automatyzacji (139)
Tradycyjna wirtualizacja (140)
Vagrant (141)
Kontenery w Linuksie (142)
Docker (144)
Definicja środowiska (146)
7. Testowanie (149)
Testy jednostkowe (152)
Testy usług (152)
Testy od końca do końca (153)
Kompromisy (153)
Ile? (154)
Makiety lub namiastki (155)
Inteligentniejsza namiastka usługi (155)
Kto pisze te testy? (159)
Jak długo? (159)
Piętrzące się zaległości (160)
Metawersje (161)
Pact (163)
Konwersacje (165)
Oddzielenie wdrożenia od publikacji (166)
Publikacje kanarkowe (167)
Średni czas do naprawy kontra średni czas między awariami (168)
Testy wydajności (170)
8. Monitorowanie (173)
Implementacja monitorowania semantycznego (179)
9. Bezpieczeństwo (187)
Popularne implementacje pojedynczego logowania (188)
Brama pojedynczego logowania (189)
Szczegółowa autoryzacja (190)
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)
Korzystaj ze sprawdzonych sposobów (198)
Wszystko dotyczy kluczy (198)
Wybierz swoje cele (199)
Odszyfruj dane na żądanie (199)
Szyfruj kopie zapasowe (199)
Zapory firewall (199)
Rejestrowanie (200)
Systemy wykrywania włamań (i zapobiegania im) (200)
Podział sieci (200)
System operacyjny (201)
10. Prawo Conwaya a projektowanie systemów (207)
Organizacje sprzężone luźno i ściśle (208)
Windows Vista (208)
Zbyt trudne do rozdzielenia (211)
Zespoły funkcyjne (211)
Wąskie gardła dostaw (212)
Rola opiekunów (213)
Dojrzałość (213)
Narzędzia (214)
11. Mikrousługi w projektach dużej skali (219)
Limity czasu (225)
Bezpieczniki (225)
Grodzie (227)
Izolacja (229)
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)
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 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)
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)
DNS (251)
Zookeeper (252)
Consul (253)
Eureka (254)
Tworzenie własnych rozwiązań (254)
Nie zapomnij o ludziach! (255)
Swagger (256)
HAL i przeglądarka HAL (256)
12. Podsumowanie (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)
Skorowidz (265)