Читать книгу Wzorce Cloud Native - Cornelia Davies - Страница 5
ОглавлениеSpis treści
Część 1 Kontekst cloud-native 1 Wciąż używasz tego słowa: definiując „cloud-native” 1.1. Wymagania dzisiejszych aplikacji
Skrócone cykle informacji zwrotnej
Wsparcie urządzeń mobilnych i wielu urządzeń
Połączone urządzenia – tak zwany internet rzeczy
Kierowane danymi (data-driven)
1.2. Wprowadzenie oprogramowania cloud-native
Model myślowy dla oprogramowania cloud-native
Oprogramowanie cloud-native w akcji
1.3. Cloud-native a pokój na świecie
Chmura (cloud) a cloud-native
Czym nie jest cloud-native
Cloud-native jest miłe
2 Uruchamianie aplikacji cloud-native na produkcji2.1. Przeszkody
Płatki śniegu
Ryzykowne wdrożenia
Zmiana jest wyjątkiem
Niestabilność na produkcji
2.2. Aktywatory
Ciągłe dostarczanie
Powtarzalność
Bezpieczne wdrożenia
Zmiana jest regułą
3 Platforma dla oprogramowania cloud-native3.1. Ewolucja platform cloud(-native)
Zaczęło się od chmury
Sygnał wybierania cloud-native
3.2. Podstawowe zasady platformy cloud-native
Po pierwsze, porozmawiajmy o kontenerach
Wsparcie dla „ciągle zmieniających się”
Wsparcie dla „wysoko rozproszonych”
3.3. Kto co robi?
3.4. Więcej możliwości platform cloud-native
Platforma wspiera cały cykl życia oprogramowania
Bezpieczeństwo, kontrola zmian, compliance (funkcje kontrolne)
Kontrola tego, co wchodzi do kontenera
Aktualizacje i łatanie podatności
Kontrola zmian
Część 2 Wzorce cloud-native4 Zdarzeniowe mikroserwisy: nie tylko żądanie-odpowiedź
4.1. Jesteśmy (zwykle) uczeni programowania imperatywnego
4.2. Wracamy do przetwarzania zdarzeniowego
4.3. Moja globalna książka kucharska
Żądanie-odpowiedź
Architektura zdarzeniowa
4.4. Wprowadzenie CQRS – Command Query Responsibility Segregation
4.5. Inne style, podobne wyzwania
5 Redundancja aplikacji: skalowanie poziome i bezstanowość
5.1. Aplikacje cloud-native mają wiele uruchomionych instancji
5.2. Stanowe aplikacje w chmurze
Dekompozycja monolitu i powiązanie z bazą danych
Słaba obsługa stanu sesji
5.3. Sesje HTTP i lepkie sesje
5.4. Stanowe usługi i bezstanowe aplikacje
Stanowe usługi to usługi wyjątkowe
Zmiana aplikacji na bezstanową
6 Konfiguracja aplikacji: nie tylko zmienne środowiskowe6.1. Dlaczego w ogóle rozmawiamy o konfiguracji?
Dynamiczne skalowanie – zwiększanie i zmniejszanie liczby instancji aplikacji
Zmiany infrastruktury powodujące zmiany konfiguracji
Aktualizacja konfiguracji aplikacji bez przestoju
6.2. Warstwa konfiguracji aplikacji
6.3. Wstrzykiwanie wartości systemowych/środowiskowych
Zobaczmy to w akcji: używanie zmiennych środowiskowych dla konfiguracji
6.4. Wstrzykiwanie konfiguracji aplikacji
Wprowadzenie serwera konfiguracji
Bezpieczeństwo dostarcza kolejnych wymagań
Zobaczmy to w akcji: konfiguracja aplikacji z wykorzystaniem serwera konfiguracyjnego
7 Cykl życia aplikacji: uwzględnianie ciągłych zmian
7.1. Współczucie dla działu operatorów
7.2. Cykl życia jednej aplikacji, cykle życia wielu instancji
Aktualizacje blue/green
Stopniowa aktualizacja
Równoległe wdrożenia
7.3. Koordynacja różnych cyklów życia aplikacji
7.4. Zobaczmy to w akcji: wymiana poświadczeń a cykl życia aplikacji
7.5. Radzenie sobie z efemerycznymi środowiskami uruchomieniowymi
7.6. Widoczność stanu cyklu życia aplikacji
Zobaczmy to w akcji: węzły stanu zdrowia i sondy
7.7. Serverless
8 Dostęp do aplikacji: usługi, trasy i wyszukiwanie usług8.1. Abstrakcja usługi
Przykład usługi: googlowanie
Przykład usługi: nasz agregator blogów
8.2. Dynamiczny routing
Równoważenie obciążenia po stronie serwera
Równoważenie obciążenia po stronie klienta
Aktualność tras
8.3. Wyszukiwanie usług
Wyszukiwanie usług w sieci
Wyszukiwanie usług z równoważeniem ruchu po stronie klienta
Wyszukiwanie usług w Kubernetesie
Zobaczmy to w akcji: wykorzystanie wyszukiwania usług
9 Redundancja interakcji: powtarzanie i inne pętle sterowania9.1. Powtarzanie żądań
Podstawowe powtórzenie żądania
Zobaczmy to w akcji: proste powtórzenia
Powtórzenia: co może pójść nie tak?
Wywoływanie burzy powtórzeń
Zobaczmy to w akcji: wywoływanie burzy powtórzeń
Unikanie burz powtórzeń: uprzejmi klienci
Zobaczmy to w akcji: bycie bardziej uprzejmym klientem
Kiedy nie powtarzać
9.2. Logika awaryjna
Zobaczmy to w akcji: implementacja logiki awaryjnej
9.3. Pętle sterowania
Zrozumienie typów pętli sterowania
Sterowanie pętlą sterowania
10 Fasady usług: bezpieczniki (circuit breakers) i bramy API10.1. Bezpieczniki
Bezpiecznik w oprogramowaniu
Implementacja bezpiecznika
10.2. Bramy API
Sprawa bramy API w oprogramowaniu cloud-native
Topologia bramy API
10.3. Service mesh
Sidecar
Płaszczyzna sterowania
11 Rozwiązywanie problemów: odnaleźć igłę w stogu siana
11.1. Logowanie aplikacji
11.2. Metryki aplikacji
Ściąganie metryk z aplikacji cloud-native
Wysyłanie metryk z aplikacji cloud-native
11.3. Rozproszone śledzenie
Ślady w wyjściu usług
Składanie śladów za pomocą Zipkina
Szczegóły implementacji
12 Dane cloud-native: przełamywanie monolitu danych
12.1. Każdy mikroserwis potrzebuje pamięci podręcznej
12.2. Przejście od żądań i odpowiedzi do zdarzeniowości
12.3. Dziennik zdarzeń
Zobaczmy to w akcji: implementacja zdarzeniowych mikroserwisów
Co nowego w tematach i kolejkach?
Zawartość zdarzenia
Idempotentność
12.4. Event sourcing
Dotychczasowa podróż
Źródło prawdy
Zobaczmy to w akcji: implementacja event sourcingu
12.5. Ledwo zadrapaliśmy powierzchnię