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

Товар

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

Доставка

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

    от 990 ₽

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

    от 1290 ₽

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

Артикул
15339952737
Identyfikator produktu
15339952737
Состояние
Новый
Autor
Sam Newman
Tytuł
Budowanie mikrousług. Projektowanie drobnoziarnistych systemów
Nośnik
książka papierowa
Okładka
miękka
Rok wydania
2022
Wydawnictwo
Helion
Liczba stron
552
Numer wydania
2
Język publikacji
polski
Wysokość produktu
23.5 cm
Szerokość produktu
16.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