Создание микросервисов, 2-е издание

Товар

3 778  ₽
Создание микросервисов, 2-е издание

Доставка

  • Почта России

    1296 ₽

  • Курьерская доставка EMS

    1622 ₽

Характеристики

Артикул
15339952737
Состояние
Новый
Język publikacji
polski
Waga produktu z opakowaniem jednostkowym
0.15 kg
Okładka
miękka
Nośnik
książka papierowa
Rok wydania
2022
Tytuł
Budowanie mikrousług. Projektowanie drobnoziarnistych systemów
Autor
Sam Newman
Wydawnictwo
Helion
Liczba stron
552
Numer wydania
2
Szerokość produktu
16.5 cm
Wysokość produktu
23.5 cm

Описание

Budowanie mikrousług wyd.2

Stron: 552

Format: 16,5 x 23,4 cm

Rok wydania: 2022

Oprawa: miękka

Budowanie mikrousług

Sam Newman

Mikrousługi są dla wielu organizacji wspaniałą alternatywą. Systemy rozproszone złożone ze współpracujących ze sobą mikrousług pozwalają na efektywne i elastyczne dostarczanie oprogramowania, które ściśle odpowiada na wymagania użytkowników. Dodatkową zaletą jest możliwość relatywnie szybkiego wprowadzania modyfikacji w systemie, co ułatwia płynne zaspokajanie zmieniających się potrzeb. Pewnym wyzwaniem dla programistów jednak może być złożoność powodowana przez właściwości architektury systemów rozproszonych, a także pojawiające się wciąż nowe technologie i metodyki, które znacząco zmieniają sposób korzystania z mikrousług.

To drugie wydanie praktycznego przewodnika po projektowaniu, tworzeniu, wdrażaniu, skalowaniu i utrzymaniu systemów opartych na drobnoziarnistych mikrousługach. Publikacja została uzupełniona o informacje dotyczące najnowszych trendów i technologii związanych z mikrousługami. Sporo miejsca poświęcono na staranne przeanalizowanie przykładów dotyczących opisywanych koncepcji, a także pokazanie optymalnych sposobów rozwiązywania różnych problemów. Opisano również najnowsze rozwiązania dotyczące modelowania, integracji, testowania, wdrażania i monitorowania autonomicznych usług. Bardzo interesującą częścią są studia przypadków, w których przeanalizowano, jak organizacjom udaje się w praktyce w pełni wykorzystywać możliwości mikrousług.

Dzięki książce dowiesz się, jak:

  • przeprowadzać orkiestrację kontenerów i wdrażać rozwiązania bezserwerowe
  • dostosowywać projekt systemu do potrzeb organizacji
  • wybrać najlepszy sposób integracji usługi z systemem
  • samodzielnie wdrażać mikrousługi
  • skutecznie testować i monitorować usługi rozproszone
  • zarządzać zabezpieczeniami dla rozszerzonej zawartości

Architektura mikrousług: naucz się podejmować najlepsze decyzje projektowe!

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

Część I. Podstawy

Rozdział 1. Czym są mikrousługi?

  • Mikrousługi w skrócie
  • Kluczowe pojęcia dotyczące mikrousług

    Możliwość niezależnego wdrażania

    Zamodelowane wokół domeny biznesowej

    Posiadanie własnego stanu

    Rozmiar

    Elastyczność

    Dopasowanie architektury do organizacji zespołów

  • Monolit

    Monolit jednoprocesowy

    Monolit modułowy

    Monolit rozproszony

    Monolity i rywalizacja o dostawy

    Zalety monolitów

  • Technologie pomocnicze

    Agregacja logów i rozproszone śledzenie

    Kontenery i Kubernetes

    Przesyłanie strumieniowe

    Chmura publiczna i platformy bezserwerowe

  • Najważniejsze korzyści

    Niejednorodność technologii

    Odporność na błędy

    Skalowanie

    Łatwość wdrażania

    Dopasowanie do organizacji zespołów

    Komponowalność

  • Niedogodności związane z architekturą mikrousług

    Wrażenia programisty

    Przeciążenie technologią

    Koszty

    Raportowanie

    Monitorowanie i rozwiązywanie problemów

    Bezpieczeństwo

    Testowanie

    Opóźnienia

    Spójność danych

  • Czy powinienem korzystać z mikrousług?

    Kiedy mikrousługi mogą się nie sprawdzić?

    Gdzie mikrousługi działają dobrze?

  • Podsumowanie

Rozdział 2. Jak modelować mikrousługi?

  • Przedstawiamy firmę MusicCorp
  • Co decyduje o tym, że granice mikrousługi są dobre?

    Ukrywanie informacji

    Spójność

    Sprzężenia

    Wzajemne oddziaływanie pomiędzy sprzężeniami a spójnością

  • Rodzaje sprzężeń

    Sprzężenie domen

    Sprzężenia przelotowe

    Sprzężenie wspólnych danych

    Sprzężenia treści

  • Wprowadzenie do metodologii projektowania opartego na domenie (DDD)

    Język wszechobecny

    Agregat

    Kontekst ograniczony

    Mapowanie agregatów i kontekstów ograniczonych na mikrousługi

    Event Storming

  • Projektowanie DDD w kontekście mikrousług
  • Alternatywy dla granic domen biznesowych

    Ulotność

    Dane

    Technologia

    Względy organizacyjne

  • Modele mieszane i wyjątki
  • Podsumowanie

Rozdział 3. Dzielenie monolitu

  • Określenie celu
  • Migracja przyrostowa
  • Monolit rzadko jest Twoim wrogiem

    Niebezpieczeństwa przedwczesnej dekompozycji

  • Co podzielić najpierw?
  • Dekompozycja według warstwy

    Najpierw kod

    Najpierw dane

  • Przydatne wzorce dekompozycji

    Wzorzec figowca-dusiciela

    Uruchamianie równoległe

    Przełącznik funkcji

  • Problemy z dekompozycją danych

    Wydajność

    Integralność danych

    Transakcje

    Narzędzia

    Bazy danych raportowania

  • Podsumowanie

Rozdział 4. Rodzaje komunikacji mikrousług

  • Od komunikacji wewnątrz procesu do komunikacji między procesami

    Wydajność

    Modyfikacje interfejsów

    Obsługa błędów

  • Technologia komunikacji między procesami: wiele możliwości do wyboru
  • Style komunikacji mikrousług

    Łącz i dopasowuj

  • Wzorzec komunikacja synchroniczna blokująca

    Zalety

    Wady

    Gdzie stosować wzorzec?

  • Wzorzec komunikacja asynchroniczna nieblokująca

    Zalety

    Wady

    Gdzie stosować wzorzec?

  • Wzorzec komunikacja za pośrednictwem współdzielonych danych

    Implementacja

    Zalety

    Wady

    Gdzie stosować wzorzec?

  • Wzorzec komunikacja żądanie - odpowiedź

    Implementacja: komunikacja synchroniczna kontra asynchroniczna

    Gdzie stosować wzorzec?

  • Wzorzec komunikacja sterowana zdarzeniami

    Implementacja

    Co jest wewnątrz zdarzenia?

    Gdzie stosować wzorzec?

  • Zachowaj ostrożność
  • Podsumowanie

Część II. Implementacja

Rozdział 5. Implementacja komunikacji mikrousług

  • Poszukiwanie idealnej technologii

    Łatwość zachowania zgodności wstecz

    Zdefiniuj interfejs w sposób jawny

    Zachowaj niezależność technologii interfejsów API

    Spraw, aby Twoja usługa była prosta dla konsumentów

    Ukryj szczegóły wewnętrznej implementacji

  • Wybór technologii

    Zdalne wywołania procedur

    REST

    GraphQL

    Brokery wiadomości

  • Formaty serializacji

    Formaty tekstowe

    Formaty binarne

  • Schematy

    Strukturalne i semantyczne naruszenia kontraktu

    Czy należy używać schematów?

  • Obsługa zmian między mikrousługami
  • Unikanie zmian naruszających kontrakt

    Zmiany rozszerzające

    Tolerancyjny konsument

    Właściwa technologia

    Jawny interfejs

    Wczesne wykrywanie zmian naruszających kontrakt

  • Zarządzanie zmianami naruszającymi zgodność wstecz

    Wdrażanie lockstep

    Współistnienie niezgodnych ze sobą wersji mikrousług

    Emulowanie starego interfejsu

    Jakie podejście preferuję?

    Umowa społeczna

    Śledzenie użycia

    Środki ekstremalne

  • Zasada DRY i niebezpieczeństwa wielokrotnego wykorzystywania kodu w świecie mikrousług

    Udostępnianie kodu za pośrednictwem bibliotek

  • Wykrywanie usług

    DNS

    Dynamiczne rejestry usług

    Nie zapomnij o ludziach

  • Siatki usług i bramy interfejsów API

    Bramy API

    Siatki usług

    A co z innymi protokołami?

  • Dokumentowanie usług

    Jawne schematy

    System samoopisujący się

  • Podsumowanie

Rozdział 6. Przepływy pracy

  • Transakcje bazodanowe

    Transakcje ACID

    Nadal ACID, ale bez niepodzielności?

  • Transakcje rozproszone - dwufazowe zatwierdzanie
  • Transakcje rozproszone - po prostu powiedz "nie"
  • Sagi

    Tryby awarii dla sag

    Implementacja sag

    Sagi a transakcje rozproszone

  • Podsumowanie

Rozdział 7. Budowanie

  • Krótkie wprowadzenie do ciągłej integracji

    Czy rzeczywiście stosujesz mechanizmy CI?

    Modele rozgałęziania

  • Potoki budowania a ciągłe dostawy

    Narzędzia

    Kompromisy i środowiska

    Tworzenie artefaktów

  • Mapowanie kodu źródłowego i kompilacji na mikrousługi

    Jedno gigantyczne repozytorium, jedna gigantyczna kompilacja

    Wzorzec jedno repozytorium na mikrousługę (tzw. multirepo)

    Wzorzec monorepo

    Jakie podejście bym zastosował?

  • Podsumowanie

Rozdział 8. Wdrażanie

  • Od widoku logicznego do fizycznego

    Wiele egzemplarzy

    Baza danych

    Środowiska

  • Zasady wdrażania mikrousług

    Odizolowane uruchamianie

    Koncentracja na automatyzacji

    Infrastruktura jako kod (IaC)

    Wdrażanie bez przestojów

    Zarządzanie pożądanym stanem

  • Opcje wdrażania

    Maszyny fizyczne

    Maszyny wirtualne

    Kontenery

    Kontenery aplikacji

    Platforma jako usługa (PaaS)

    Funkcja jako usługa (FaaS)

  • Która opcja wdrażania jest dla Ciebie odpowiednia?
  • Kubernetes i orkiestracja kontenerów

    Przypadek orkiestracji kontenerów

    Uproszczony widok pojęć związanych z Kubernetes

    Wielodostępność i federacja

    Cloud Native Computing Federation (CNCF)

    Platformy i przenośność

    Helm, Operator, CRD. O mój Boże!

    I jeszcze Knative

    Przyszłość

    Czy powinieneś korzystać z Kubernetes?

  • Dostawy progresywne

    Oddzielenie wdrożenia od wydania

    Na drodze do dostaw progresywnych

    Przełączniki funkcji

    Wydania kanarkowe

    Uruchamianie równoległe

  • Podsumowanie

Rozdział 9. Testowanie

  • Rodzaje testów
  • Zakres testów

    Testy jednostkowe

    Testy usług

    Testy od końca do końca

    Kompromisy

  • Implementacja testów usług

    Mocki czy namiastki usług

    Inteligentniejsza namiastka usługi

  • Kłopotliwe testy od końca do końca

    Testy kruche i łamliwe

    Kto pisze testy od końca do końca?

    Jak długo?

    Piętrzące się zaległości

    Metawersje

    Brak niezależnej testowalności

  • Czy należy unikać testów od końca do końca?

    Testy kontraktu oraz kontrakty konsumenckie

    Czy należy używać testów od końca do końca?

  • Wygoda pracy programistów
  • Od fazy przedprodukcyjnej do testowania w produkcji

    Rodzaje testów w produkcji

    Bezpieczeństwo testowania w produkcji

    Średni czas do naprawy kontra średni czas między awariami

  • Testy współzależności funkcjonalnych

    Testy wydajności

    Testy wytrzymałości

  • Podsumowanie

Rozdział 10. Od monitorowania do obserwowalności

  • Niepokój, panika i zamieszanie
  • Jedna usługa, jeden serwer
  • Jedna usługa, wiele serwerów
  • Wiele usług, wiele serwerów
  • Obserwowalność a monitorowanie

    Filary obserwowalności? Nie tak szybko

  • Elementy składowe obserwowalności

    Agregacja logów

    Agregacja metryk

    Rozproszone śledzenie

    Czy postępujemy właściwie?

    Ostrzeganie

    Monitorowanie semantyczne

    Testowanie w produkcji

  • Standaryzacja
  • Wybór narzędzi

    Wybór powinien być demokratyczny

    Wybieraj narzędzia łatwe do integracji

    Zapewniaj odpowiedni kontekst

    Informacje w czasie rzeczywistym

    Informacje odpowiednie dla Twojej skali

  • Maszynowy ekspert
  • Od czego zacząć?
  • Podsumowanie

Rozdział 11. Bezpieczeństwo

  • Podstawowe zasady

    Zasada najmniejszych uprawnień

    Obrona w głąb

    Automatyzacja

    Wbuduj zabezpieczenia w proces dostaw

  • Pięć funkcji cyberbezpieczeństwa

    Identyfikacja

    Ochrona

    Wykrywanie

    Reagowanie

    Odtwarzanie

  • Podstawy zabezpieczeń aplikacji

    Poświadczenia

    Łatki bezpieczeństwa

    Kopie zapasowe

    Odbudowa

  • Zaufanie domyślne kontra zaufanie zerowe

    Zaufanie domyślne

    Zaufanie zerowe

    To jest pasmo

  • Zabezpieczanie danych

    Dane podczas przesyłania

    Zabezpieczanie danych w spoczynku

  • Uwierzytelnianie i autoryzacja

    Uwierzytelnianie między usługami

    Uwierzytelnianie użytkowników

    Popularne implementacje pojedynczego logowania

    Brama pojedynczego logowania

    Szczegółowa autoryzacja

    Problem zdezorientowanego zastępcy

    Scentralizowana autoryzacja w górze strumienia przetwarzania

    Autoryzacja zdecentralizowana

    Tokeny JWT

  • Podsumowanie

Rozdział 12. Niezawodność

  • Co to jest niezawodność?

    Solidność

    Zdolność do odtwarzania

    Rozszerzalność z wdziękiem

    Trwałe zdolności adaptacyjne

    Architektura mikrousług

  • Awarie zdarzają się wszędzie
  • Jak wiele to zbyt wiele?
  • Degradowanie funkcjonalności
  • Wzorce stabilności

    Limity czasu

    Ponowienia prób

    Grodzie

    Bezpieczniki

    Izolacja

    Redundancja

    Middleware

    Idempotencja

  • Rozłożenie ryzyka
  • 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

    Antykrucha organizacja

  • Inżynieria chaosu

    Dni ćwiczeń

    Eksperymenty produkcyjne

    Wykraczając poza solidność

  • Szukanie winnych
  • Podsumowanie

Rozdział 13. Skalowanie

  • Cztery osie skalowania

    Skalowanie pionowe

    Implementacja

    Najważniejsze korzyści

    Ograniczenia

    Zwielokrotnianie w poziomie

    Partycjonowanie danych

    Dekompozycja funkcjonalna

  • Łączenie modeli
  • Zacznij od małych rozmiarów
  • Buforowanie

    Buforowanie w celu poprawy wydajności

    Buforowanie w celu skalowania

    Buforowanie w celu poprawy niezawodności

    Gdzie buforować

    Unieważnianie

    Złota zasada buforowania

    Aktualność danych a optymalizacja

    Zatrucie pamięcią podręczną - historia ku przestrodze

  • Autoskalowanie
  • Zaczynanie od nowa
  • Podsumowanie

Część III. Ludzie

Rozdział 14. Interfejsy użytkownika

  • W stronę środowiska cyfrowego
  • Modele własności

    Przesłanki dla tworzenia dedykowanych zespołów frontendowych

  • Zespoły dopasowane do strumienia przetwarzania

    Współdzielenie specjalistów

    Zapewnienie spójności

    Pokonywanie technicznych wyzwań

  • Wzorzec monolityczny frontend

    Kiedy należy korzystać ze wzorca?

  • Wzorzec mikrofrontend

    Implementacja

    Kiedy stosować wzorzec?

  • Wzorzec dekompozycja na bazie stron

    Gdzie stosować wzorzec?

  • Wzorzec dekompozycja oparta na widżetach

    Implementacja

    Kiedy korzystać ze wzorca?

  • Ograniczenia
  • Wzorzec centralna brama agregująca

    Własność

    Różne typy interfejsów użytkownika

    Wiele obaw

    Kiedy korzystać ze wzorca?

  • Wzorzec backend dla frontendu (BFF)

    Ile komponentów BFF?

    Wielokrotne użycie kodu a BFF

    BFF dla desktopowego interfejsu webowego i nie tylko

    Kiedy korzystać ze wzorca?

  • GraphQL
  • Podejście hybrydowe
  • Podsumowanie

Rozdział 15. Struktury organizacyjne

  • Organizacje luźno sprzężone
  • Prawo Conwaya

    Dowody

  • Wielkość zespołu
  • Zrozumieć prawo Conwaya
  • Małe zespoły, duża organizacja
  • O autonomii
  • Własność silna kontra własność kolektywna

    Własność silna

    Własność kolektywna

    Na poziomie zespołu kontra na poziomie organizacji

    Równoważenie modeli

  • Zespoły wspomagające

    Społeczności praktyków

    Platforma

  • Mikrousługi współdzielone

    Zbyt trudne do rozdzielenia

    Przekrojowe zmiany

    Wąskie gardła dostaw

  • Wewnętrzne open source

    Rola opiekunów

    Dojrzałość

    Narzędzia

  • Mikrousługi modułowe

    Przeglądy zmian

  • Usługa osierocona
  • Studium przypadku: RealEstate.com.au
  • Rozproszenie geograficzne
  • Odwrócone prawo Conwaya
  • Ludzie
  • Podsumowanie

Rozdział 16. Ewolucyjny architekt

  • Co oznacza ta nazwa?
  • Czym jest architektura oprogramowania?
  • Umożliwienie wprowadzania zmian
  • Ewolucyjna wizja architekta
  • Definiowanie granic systemowych
  • Konstrukt społeczny
  • Warunki do "zamieszkiwania"
  • Pryncypialne podejście

    Cele strategiczne

    Zasady

    Praktyki

    Łączenie zasad i praktyk

    Praktyczny przykład

  • Kierowanie architekturą ewolucyjną
  • Architektura w organizacji dostosowanej do strumienia przetwarzania
  • Budowanie zespołu
  • Wymagane standardy

    Monitorowanie

    Interfejsy

    Bezpieczeństwo architektury

  • Zarządzanie i droga utwardzona

    Przykładowe egzemplarze

    Spersonalizowany szablon usługi

    Utwardzona droga na dużą skalę

  • Dług techniczny
  • Obsługa wyjątków
  • Podsumowanie

Posłowie: mikrousługi w pigułce

Bibliografia

Glosariusz

Гарантии

  • Гарантии

    Мы работаем по договору оферты и предоставляем все необходимые документы.

  • Лёгкий возврат

    Если товар не подошёл или не соответсвует описанию, мы поможем вернуть его.

  • Безопасная оплата

    Банковской картой, электронными деньгами, наличными в офисе или на расчётный счёт.

Отзывы о товаре

Рейтинг товара 4.62 / 5

13 отзывов

Russian English Polish