POLECAMY
Autor:
Wydawca:
Format:
epub, mobi, ibuk
Platformy chmurowe obiecują Świętego Grala: niemal zerowe przestoje działania, nieskończoną skalowalność, krótką pętle zwrotnych informacji, odporność na problemy i kontrolę kosztów. Ale jak to osiągnąć? Stosując podejście cloud-native, programiści mogą budować odporne, zdolne do łatwego dostosowywania się, rozproszone aplikacje w skali internetowej, które obsługują olbrzymie ilości użytkowników i obciążenia danymi. Poznaj te podstawowe wzorce i praktyki, a będziesz gotowy na prosperowanie w dynamicznym, rozproszonym, wirtualnym świecie chmury.
Bazując na 25 latach swojego doświadczenia, Cornelia Davis uczy praktyk i wzorców, które odróżniają aplikacje cloud-native od innych. Wraz z realistycznymi przykładami i eksperckimi poradami w temacie pracy z aplikacjami, danymi, usługami czy routingiem autorka pokazuje, jak projektować i budować oprogramowanie, które doskonale działa na nowoczesnych platformach chmurowych.
W książce omówiono:
• Cykl życia aplikacji cloud-native
• Zarządzanie konfiguracją na skalę chmury
• Aktualizacje bez przestojów, wersjonowane usługi i równoległe wdrożenia
• Wyszukiwanie usług i dynamiczny routing
• Zarządzanie interakcjami pomiędzy usługami, w tym powtórzenia i bezpieczniki
Publikacja jest przeznaczona dla czytelników posiadających podstawowe umiejętności projektowania oprogramowania i czytania Javy lub podobnego języka.
Rok wydania | 2020 |
---|---|
Liczba stron | 416 |
Kategoria | Programowanie |
Wydawca | Wydawnictwo Naukowe PWN |
Tłumaczenie | Wojciech Urbański |
ISBN-13 | 978-83-01-21349-7 |
Numer wydania | 1 |
Język publikacji | polski |
Informacja o sprzedawcy | ePWN sp. z o.o. |
POLECAMY
Ciekawe propozycje
Spis treści
przedmowa XIII | |
wstęp XV | |
podziękowania XVII | |
o książce XIX | |
o autorce XXIII | |
o ilustracji na okładce XXV | |
Część 1 KONTEKST CLOUD-NATIVE 1 | |
1. Wciąż używasz tego słowa: definiując „cloud‑native” | 3 |
1.1. Wymagania dzisiejszych aplikacji | 7 |
Brak przestojów | 7 |
Skrócone cykle informacji zwrotnej | 8 |
Wsparcie urządzeń mobilnych i wielu urządzeń | 8 |
Połączone urządzenia – tak zwany internet rzeczy | 9 |
Kierowane danymi (data-driven) | 9 |
1.2. Wprowadzenie oprogramowania cloud‑native | 10 |
Definiując cloud‑native | 11 |
Model myślowy dla oprogramowania cloud‑native | 13 |
Oprogramowanie cloud‑native w akcji | 19 |
1.3. Cloud‑native a pokój na świecie | 23 |
Chmura (cloud) a cloud‑native | 23 |
Czym nie jest cloud-native | 24 |
Cloud‑native jest miłe | 25 |
2. Uruchamianie aplikacji cloud-native na produkcji | 28 |
2.1. Przeszkody | 29 |
Płatki śniegu | 31 |
Ryzykowne wdrożenia | 32 |
Zmiana jest wyjątkiem | 36 |
Niestabilność na produkcji | 37 |
2.2. Aktywatory | 37 |
Ciągłe dostarczanie | 39 |
Powtarzalność | 43 |
Bezpieczne wdrożenia | 48 |
Zmiana jest regułą | 52 |
3. Platforma dla oprogramowania cloud-native | 56 |
3.1. Ewolucja platform cloud(-native) | 57 |
Zaczęło się od chmury | 58 |
Sygnał wybierania cloud-native | 63 |
3.2. Podstawowe zasady platformy cloud‑native | 63 |
Po pierwsze, porozmawiajmy o kontenerach | 63 |
Wsparcie dla „ciągle zmieniających się” | 65 |
Wsparcie dla „wysoko rozproszonych” | 68 |
3.3. Kto co robi? | 72 |
3.4. Więcej możliwości platform cloud‑native | 74 |
Platforma wspiera cały cykl życia oprogramowania | 74 |
Bezpieczeństwo, kontrola zmian, compliance (funkcje kontrolne) | 78 |
Kontrola tego, co wchodzi do kontenera | 80 |
Aktualizacje i łatanie podatności | 83 |
Kontrola zmian | 85 |
Część 2 Wzorce cloud -native native | 89 |
4. Zdarzeniowe mikroserwisy: nie tylko żądanie-odpowiedź | 91 |
4.1. Jesteśmy (zwykle) uczeni programowania imperatywnego | 92 |
4.2. Wracamy do przetwarzania zdarzeniowego | 94 |
4.3. Moja globalna książka kucharska | 95 |
Żądanie-odpowiedź | 96 |
Architektura zdarzeniowa | 102 |
4.4. Wprowadzenie CQRS – Command Query Responsibility Segregation | 111 |
4.5. Inne style, podobne wyzwania | 114 |
5. Redundancja aplikacji: skalowanie poziome i bezstanowość 117 | |
5.1. Aplikacje cloud-native mają wiele uruchomionych instancji | 119 |
5.2. Stanowe aplikacje w chmurze | 121 |
Dekompozycja monolitu i powiązanie z bazą danych | 121 |
Słaba obsługa stanu sesji | 125 |
5.3. Sesje HTTP i lepkie sesje | 139 |
5.4. Stanowe usługi i bezstanowe aplikacje | 141 |
Stanowe usługi to usługi wyjątkowe | 141 |
Zmiana aplikacji na bezstanową | 143 |
6. Konfiguracja aplikacji: nie tylko zmienne środowiskowe 149 | |
6.1. Dlaczego w ogóle rozmawiamy o konfiguracji? | 150 |
Dynamiczne skalowanie – zwiększanie i zmniejszanie liczby instancji aplikacji | 151 |
Zmiany infrastruktury powodujące zmiany konfiguracji | 151 |
Aktualizacja konfiguracji aplikacji bez przestoju | 152 |
6.2. Warstwa konfiguracji aplikacji | 154 |
6.3. Wstrzykiwanie wartości systemowych/środowiskowych | 159 |
Zobaczmy to w akcji: używanie zmiennych środowiskowych dla konfiguracji | 159 |
6.4. Wstrzykiwanie konfiguracji aplikacji | 168 |
Wprowadzenie serwera konfiguracji | 169 |
Bezpieczeństwo dostarcza kolejnych wymagań | 176 |
Zobaczmy to w akcji: konfiguracja aplikacji z wykorzystaniem serwera konfiguracyjnego | 177 |
7. Cykl życia aplikacji: uwzględnianie ciągłych zmian | 181 |
7.1. Współczucie dla działu operatorów | 183 |
7.2. Cykl życia jednej aplikacji, cykle życia wielu instancji | 184 |
Aktualizacje blue/green | 188 |
Stopniowa aktualizacja | 189 |
Równoległe wdrożenia | 191 |
7.3. Koordynacja różnych cyklów życia aplikacji | 193 |
7.4. Zobaczmy to w akcji: wymiana poświadczeń a cykl życia aplikacji | 197 |
7.5. Radzenie sobie z efemerycznymi środowiskami uruchomieniowymi | 206 |
7.6. Widoczność stanu cyklu życia aplikacji | 208 |
Zobaczmy to w akcji: węzły stanu zdrowia i sondy | 213 |
7.7. Serverless | 217 |
8. Dostęp do aplikacji: usługi, trasy i wyszukiwanie usług | 220 |
8.1. Abstrakcja usługi | 223 |
Przykład usługi: googlowanie | 224 |
Przykład usługi: nasz agregator blogów | 226 |
8.2. Dynamiczny routing | 227 |
Równoważenie obciążenia po stronie serwera | 227 |
Równoważenie ruchu po stronie klienta | 229 |
Aktualność tras | 230 |
8.3. Wyszukiwanie usług | 232 |
Wyszukiwanie usług w sieci | 236 |
Wyszukiwanie usług z równoważeniem ruchu po stronie klienta | 237 |
Wyszukiwanie usług w Kubernetesie | 238 |
Zobaczmy to w akcji: wykorzystanie wyszukiwania usług | 240 |
9. Redundancja interakcji: powtarzanie i inne pętle sterowania | 245 |
9.1. Powtarzanie żądań | 247 |
Podstawowe powtórzenie żądania | 248 |
Zobaczmy to w akcji: proste powtórzenia | 249 |
Powtórzenia: co może pójść nie tak? | 253 |
Wywoływanie burzy powtórzeń | 254 |
Zobaczmy to w akcji: wywoływanie burzy powtórzeń | 255 |
Unikanie burz powtórzeń: uprzejmi klienci | 266 |
Zobaczmy to w akcji: bycie bardziej uprzejmym klientem | 266 |
Kiedy nie powtarzać | 272 |
9.2. Logika awaryjna | 273 |
Zobaczmy to w akcji: implementacja logiki awaryjnej | 274 |
9.3. Pętle sterowania | 280 |
Zrozumienie typów pętli sterowania | 280 |
Sterowanie pętlą sterowania | 281 |
10. Fasady usług: bezpieczniki (circuit breakers) i bramy API | 285 |
10.1. Bezpieczniki | 287 |
Bezpiecznik w oprogramowaniu | 287 |
Implementacja bezpiecznika | 290 |
10.2. Bramy API | 303 |
Sprawa bramy API w oprogramowaniu cloud-native | 305 |
Topologia bramy API | 305 |
10.3. Service mesh | 308 |
Sidecar 308 Płaszczyzna sterowania | 310 |
11. Rozwiązywanie problemów: odnaleźć igłę w stogu siana | 314 |
11.1. Logowanie aplikacji | 315 |
11.2. Metryki aplikacji | 319 |
Ściąganie metryk z aplikacji cloud-native | 321 |
Wysyłanie metryk z aplikacji cloud-native | 323 |
11.3. Rozproszone śledzenie | 326 |
Ślady w wyjściu usług | 330 |
Składanie śladów za pomocą Zipkina | 333 |
Szczegóły implementacji | 338 |
12. Dane cloud-native: przełamywanie monolitu danych | 340 |
12.1. Każdy mikroserwis potrzebuje pamięci podręcznej | 343 |
12.2. Przejście od żądań i odpowiedzi do zdarzeniowości | 346 |
12.3. Dziennik zdarzeń | 349 |
Zobaczmy to w akcji: implementacja zdarzeniowych mikroserwisów | 351 |
Co nowego w tematach i kolejkach? | 365 |
Zawartość zdarzenia | 369 |
Idempotentność | 371 |
12.4. Event sourcing | 372 |
Dotychczasowa podróż | 372 |
Źródło prawdy | 373 |
Zobaczmy to w akcji: implementacja event sourcingu | 376 |
12.5. Ledwo zadrapaliśmy powierzchnię | 379 |
indeks | 381 |