Wzorce Cloud Native
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.
- Kategorie:
- Język wydania: polski
- ISBN: 978-83-01-21349-7
- ISBN druku: 978-83-01-21195-0
- Liczba stron: 416
-
Sposób dostarczenia produktu elektronicznegoProdukty elektroniczne takie jak Ebooki czy Audiobooki są udostępniane online po opłaceniu zamówienia kartą lub przelewem na stronie Twoje konto > Biblioteka.Pliki można pobrać zazwyczaj w ciągu kilku-kilkunastu minut po uzyskaniu poprawnej autoryzacji płatności, choć w przypadku niektórych publikacji elektronicznych czas oczekiwania może być nieco dłuższy.Sprzedaż terytorialna towarów elektronicznych jest regulowana wyłącznie ograniczeniami terytorialnymi licencji konkretnych produktów.
-
Ważne informacje techniczneMinimalne wymagania sprzętowe:procesor: architektura x86 1GHz lub odpowiedniki w pozostałych architekturachPamięć operacyjna: 512MBMonitor i karta graficzna: zgodny ze standardem XGA, minimalna rozdzielczość 1024x768 16bitDysk twardy: dowolny obsługujący system operacyjny z minimalnie 100MB wolnego miejscaMysz lub inny manipulator + klawiaturaKarta sieciowa/modem: umożliwiająca dostęp do sieci Internet z prędkością 512kb/sMinimalne wymagania oprogramowania:System Operacyjny: System MS Windows 95 i wyżej, Linux z X.ORG, MacOS 9 lub wyżej, najnowsze systemy mobilne: Android, iPhone, SymbianOS, Windows MobilePrzeglądarka internetowa: Internet Explorer 7 lub wyżej, Opera 9 i wyżej, FireFox 2 i wyżej, Chrome 1.0 i wyżej, Safari 5Przeglądarka z obsługą ciasteczek i włączoną obsługą JavaScriptZalecany plugin Flash Player w wersji 10.0 lub wyżej.Informacja o formatach plików:
- PDF - format polecany do czytania na laptopach oraz komputerach stacjonarnych.
- EPUB - format pliku, który umożliwia czytanie książek elektronicznych na urządzeniach z mniejszymi ekranami (np. e-czytnik lub smartfon), dając możliwość dopasowania tekstu do wielkości urządzenia i preferencji użytkownika.
- MOBI - format zapisu firmy Mobipocket, który można pobrać na dowolne urządzenie elektroniczne (np.e-czytnik Kindle) z zainstalowanym programem (np. MobiPocket Reader) pozwalającym czytać pliki MOBI.
- Audiobooki w formacie MP3 - format pliku, przeznaczony do odsłuchu nagrań audio.
Rodzaje zabezpieczeń plików:- Watermark - (znak wodny) to zaszyfrowana informacja o użytkowniku, który zakupił produkt. Dzięki temu łatwo jest zidentyfikować użytkownika, który rozpowszechnił produkt w sposób niezgodny z prawem. Ten rodzaj zabezpieczenia jest zdecydowanie bardziej przyjazny dla użytkownika, ponieważ aby otworzyć książkę zabezpieczoną Watermarkiem nie jest potrzebne konto Adobe ID oraz autoryzacja urządzenia.
- Brak zabezpieczenia - część oferowanych w naszym sklepie plików nie posiada zabezpieczeń. Zazwyczaj tego typu pliki można pobierać ograniczoną ilość razy, określaną przez dostawcę publikacji elektronicznych. W przypadku zbyt dużej ilości pobrań plików na stronie WWW pojawia się stosowny komunikat.
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