Dodano produkt do koszyka

Promocja

INFRASTRUKTURA JAKO KOD. DYNAMICZNE SYSTEMY W EPOCE CHMURY

INFRASTRUKTURA JAKO KOD. DYNAMICZNE SYSTEMY W EPOCE CHMURY

KIEF MORRIS

Wydawnictwo: APN PROMISE

Cena: 98.70 zł 88.83 brutto

Koszty dostawy:
  • Paczkomaty InPost 14.99 zł brutto
  • Poczta Polska - odbiór w punkcie 9.99 zł brutto
  • Poczta Polska - przedpłata 15.99 zł brutto
  • Poczta Polska - pobranie 19.99 zł brutto
  • Kurier DHL - przedpłata 18.99 zł brutto
  • Kurier DHL - pobranie 21.99 zł brutto
  • Odbiór osobisty - UWAGA - uprzejmie prosimy poczekać na informację z księgarni o możliwości odbioru zamówienia - 0.00 zł brutto

Opis

Opis produktu

ISBN: 978-83-7541-442-4

396 stron
format: B5
oprawa: miękka
Rok wydania: 2021

Sześć lat temu pojęcie infrastruktury jako kodu było czymś nowym. Dzisiaj, gdy nawet banki i inne konserwatywne organizacje planują przejść na korzystanie z chmury, zespoły programistów w firmach na całym świecie próbują budować duże bazy kodu infrastruktury. W swojej praktycznej książce Kief Morris z ThoughtWorks wyjaśnia, jak efektywnie zarządzać infrastrukturą w epoce chmury, używając zasad, praktyk i wzorców zainicjowanych przez zespoły DevOps.

Nowe, uaktualnione wydanie, przeznaczone dla administratorów systemów, inżynierów infrastruktury, programistów, kierowników zespołów i architektów, pokazuje, jak wykorzystywać technologie chmury i automatyzacji do łatwego, bezpiecznego, szybkiego i odpowiedzialnego wprowadzania zmian. Czytając tę książkę dowiesz się, jak definiować wszystko jako kod i jak używać projektów oprogramowania i praktyk inżynieryjnych do tworzenia systemów składających się z małych, luźno sprzężonych elementów.

SPIS TREŚCI

Przedmowa

Podziękowania

Część I. Podstawy

1. Co to znaczy infrastruktura jako kod?
Od˙epoki żelaza do˙epoki chmury
Infrastruktura jako kod
Korzyści z˙infrastruktury jako kodu
Używanie infrastruktury jako kodu do˙optymalizacji pod kątem zmian
Zarzut: nie dokonujemy zmian tak często, aby była uzasadniona ich
automatyzacja
Zarzut: najpierw trzeba utworzyć, a˙potem automatyzować
Zarzut: musimy wybierać między szybkością i˙jakością
Cztery kluczowe wskaźniki
Trzy podstawowe praktyki dotyczące infrastruktury jako kodu
Podstawowa praktyka: definiowanie wszystkiego jako kodu
Podstawowa praktyka: stałe testowanie i˙dostarczanie wszystkiego na˙bieżąco
Podstawowa praktyka: tworzenie małych, prostych elementów, które
można zmieniać niezależnie
Podsumowanie

2. Zasady infrastruktury w epoce chmury
Zasada: zakładaj, że˙systemy są˙zawodne
Zasada: rób tak, aby wszystko było odtwarzalne
Pułapka: systemy śnieżynki
Zasada: twórz rzeczy zastępowalne
Zasada: minimalizuj zróżnicowanie
Dryf konfiguracji
Zasada: pilnuj, abyś mógł powtórzyć każdy proces
Podsumowanie

3. Platformy infrastruktury
Części systemu infrastruktury
Platformy infrastruktury
Zasoby infrastruktury
Zasoby obliczeniowe
Zasoby pamięci masowej
Zasoby sieciowe
Podsumowanie

4. Podstawowa praktyka: definiuj wszystko jako kod
Dlaczego należy definiować infrastrukturę jako kod
Co˙można zdefiniować jako kod
Wybieraj narzędzia z˙eksternalizacją konfiguracji
Zarządzaj kodem w˙systemie kontroli wersji
Języki kodowania infrastruktury
Skrypty infrastruktury
Deklaratywne języki infrastruktury
Programowalne, imperatywne języki infrastruktury
Języki deklaratywne czy imperatywne do˙infrastruktury
Języki dziedzinowe infrastruktury
Języki ogólnego przeznaczenia czy DSL infrastruktury
Zasady implementacji w˙przypadku definiowania infrastruktury jako kodu
Oddzielaj kod deklaratywny od˙imperatywnego
Traktuj kod infrastruktury jak prawdziwy kod
Podsumowanie

Część II. Praca ze stosami infrastruktury

5. Tworzenie stosów infrastruktury jako kodu
Co˙to˙jest stos infrastruktury?
Kod stosu
Instancja stosu
Konfigurowanie serwerów w˙stosie
Języki infrastruktury niskiego poziomu
Języki infrastruktury wysokiego poziomu
Wzorce i˙antywzorce konstruowania stosów
Antywzorzec: stos monolityczny
Wzorzec: stos grupy aplikacji
Wzorzec: stos usług
Wzorzec: mikrostos
Podsumowanie

6. Tworzenie środowisk przy użyciu stosów
O˙co˙chodzi w˙tych środowiskach
Środowiska dostarczania
Wiele środowisk produkcyjnych
Środowiska, spójność i˙konfiguracja
Wzorce budowania środowisk
Antywzorzec: stos wielu środowisk
Antywzorzec: środowiska kopiuj-wklej
Wzorzec: stos wielokrotnego użytku
Tworzenie środowisk z˙wieloma stosami
Podsumowanie

7. Konfigurowanie instancji stosu
Używanie parametrów stosu do˙tworzenia unikatowych identyfikatorów
Przykładowe parametry stosu
Wzorce konfigurowania stosów
Antywzorzec: ręczne parametry stosu
Wzorzec: zmienne środowiskowe stosu
Wzorzec: parametry skryptowe
Wzorzec: pliki konfiguracyjne stosu
Wzorzec: stos opakowujący
Wzorzec: parametry stosu potokowego
Wzorzec: rejestr parametrów stosu
Rejestr konfiguracji
Implementowanie rejestru konfiguracji
Jeden czy wiele rejestrów konfiguracji
Obsługa wpisów tajnych jako parametrów
Szyfrowanie wpisów tajnych
Autoryzacja bez wpisu tajnego
Wstrzykiwanie wpisów tajnych podczas wykonywania
Wpisy tajne jednorazowe
Podsumowanie

8. Podstawowa praktyka: ciągle testuj i dostarczaj
Po˙co˙ciągle testować kod infrastruktury?
Co˙oznacza ciągłe testowanie
Co˙należy testować w˙przypadku infrastruktury?
Wyzwania związane z˙testowaniem kodu infrastruktury
Wyzwanie: testy kodu deklaratywnego mają często małą wartość
Wyzwanie: testowanie kodu infrastruktury jest powolne
Wyzwanie: zależności komplikują testowanie infrastruktury
Testowanie progresywne
Piramida testów
Model testowania "ser szwajcarski"
Potoki dostarczania infrastruktury
Etapy potoku
Zakres komponentów testowanych w˙ramach etapu
Zakres zależności używanych w˙etapie
Elementy platformy wymagane przez etap
Usługi i˙oprogramowanie potoków dostarczania
Testowanie w˙środowisku produkcyjnym
Czego nie można powielić poza środowiskiem produkcyjnym
Zarządzanie ryzykiem testowania w˙środowisku produkcyjnym
Podsumowanie

9. Testowanie stosów infrastruktury
Przykładowa infrastruktura
Przykładowy stos
Potok dla przykładowego stosu
Etapy testowania offline dla stosów
Sprawdzanie składni
Statyczna analiza kodu w˙trybie offline
Statyczna analiza kodu z˙użyciem API
Testowanie z˙użyciem atrapy API
Etapy testowania online dla stosów
Podgląd: patrzenie, jakie zmiany zostaną dokonane
Weryfikacja: stosowanie asercji dotyczących zasobów infrastruktury
Wyniki: potwierdzanie prawidłowego działania infrastruktury
Używanie warunków początkowych testu do˙obsługi zależności
Atrapy dla zależności nadrzędnych
Warunki początkowe testu dla zależności podrzędnych
Refaktoryzacja komponentów w˙celu umożliwienia ich izolowania
Wzorce cyklu życia dla testowych instancji stosów
Wzorzec: trwały stos testowy
Wzorzec: efemeryczny stos testowy
Antywzorzec: podwójny etap stosu˙- trwały i˙efemeryczny
Wzorzec: okresowa odbudowa stosu
Wzorzec: ciągłe resetowanie stosu
Orkiestracja testów
Wspomaganie lokalnego testowania
Unikanie silnego sprzężenia z˙narzędziami potoku
Narzędzia do˙orkiestracji testów
Podsumowanie

Część III. Praca z serwerami i innymi platformami wykonawczymi aplikacji

10. Środowiska wykonawcze aplikacji
Infrastruktura natywna dla chmury i˙oparta na˙aplikacjach
Cele środowiska wykonawczego aplikacji
Wdrażalne części aplikacji
Pakiety wdrożenia
Wdrażanie aplikacji na˙serwerach
Pakowanie aplikacji do˙kontenerów
Wdrażanie aplikacji w˙klastrach serwerów
Wdrażanie aplikacji w˙klastrach aplikacji
Pakiety do˙wdrażania aplikacji w˙klastrach
Wdrażanie aplikacji bezserwerowych na˙platformach FaaS
Dane aplikacji
Schematy i˙struktury danych
Infrastruktura magazynu aplikacji natywna dla chmury
Łączność aplikacji
Odnajdywanie usług
Podsumowanie

11. Budowanie serwerów jako kodu
Co˙jest trzymane na˙serwerze
Skąd pochodzą rzeczy trzymane na˙serwerze
Kod konfiguracji serwera
Moduły kodu konfiguracji serwera
Projektowanie modułów kodu konfiguracji serwera
Wersjonowanie i˙promowanie kodu serwera
Role serwerów
Testowanie kodu serwera
Testowanie progresywne kodu serwera
Co˙testować w˙przypadku kodu serwera
Jak testować kod serwera
Tworzenie nowej instancji serwera
Ręczne tworzenie nowej instancji serwera
Tworzenie serwera przy użyciu skryptu
Tworzenie serwera przy użyciu narzędzia zarządzania stosem
Konfigurowanie automatycznego tworzenia serwerów przez platformę
Tworzenie serwera przy użyciu sieciowego narzędzia wyposażania
Wstępne budowanie serwerów
Klonowanie serwera "na˙gorąco"
Używanie migawek serwera
Tworzenie czystego obrazu serwera
Konfigurowanie nowej instancji serwera
Smażenie instancji serwera
Pieczenie obrazów serwera
Łączenie pieczenia i˙smażenia
Stosowanie konfiguracji serwera podczas tworzenia serwera
Podsumowanie

12. Zarządzanie zmianami w serwerach
Wzorce zarządzania zmianami: kiedy stosować zmiany
Antywzorzec: stosowanie każdej zmiany oddzielnie
Wzorzec: ciągła synchronizacja konfiguracji
Wzorzec: serwer niezmienialny
Jak stosować kod konfiguracji serwera
Wzorzec: wypychanie konfiguracji serwera
Wzorzec: pobieranie konfiguracji serwera
Pozostałe zdarzenia w˙cyklu życia serwera
Zatrzymywanie i˙restartowanie instancji serwera
Zastępowanie instancji serwera
Odzyskiwanie serwera po˙awarii
Podsumowanie

13. Obrazy serwerów jako kod
Budowanie obrazu serwera
Po˙co˙budować obraz serwera?
Jak zbudować obraz serwera
Narzędzia do˙budowania obrazów serwerów
Proces budowania obrazu online
Proces budowania obrazu offline
Zawartość źródłowa obrazu serwera
Budowanie przy użyciu stockowego obrazu serwera
Budowanie obrazu serwera od˙podstaw
Pochodzenie obrazu serwera i˙jego zawartości
Zmienianie obrazu serwera
Odgrzewanie czy pieczenie świeżego obrazu
Wersjonowanie obrazu serwera
Aktualizowanie instancji serwera po˙zmianie obrazu
Udostępnianie obrazu serwera do˙wykorzystania przez wiele zespołów
Obsługa istotnych zmian w˙obrazie
Używanie potoku do˙testowania i˙dostarczania obrazu serwera
Etap budowy obrazu serwera
Etap testowania obrazu serwera
Etap dostarczania obrazu serwera
Używanie wielu obrazów serwera
Obrazy serwera dla różnych platform infrastruktury
Obrazy serwera dla różnych systemów operacyjnych
Obrazy serwera dla różnych architektur sprzętowych
Obrazy serwera dla różnych ról
Warstwowanie obrazów serwera
Współdzielenie kodu przez obrazy serwerów
Podsumowanie

14. Budowanie klastrów jako kodu
Rozwiązania dla klastrów aplikacji
Klaster jako usługa
Spakowana dystrybucja klastra
Topologie stosu dla klastrów aplikacji
Stos monolityczny wykorzystujący klaster jako usługę
Stos monolityczny dla spakowanego rozwiązania klastrowego
Potok dla monolitycznego stosu klastra aplikacji
Przykład wielu stosów dla klastra
Strategie współdzielenia dla klastrów aplikacji
Jeden duży klaster do˙wszystkiego
Oddzielne klastry dla etapów dostarczania
Klastry dla nadzoru
Klastry dla zespołów
Siatka usług
Infrastruktura dla bezserwerowej usługi FaaS
Podsumowanie

Część IV. Projektowanie infrastruktury

15. Podstawowa praktyka: małe, proste elementy
Projektowanie pod kątem modularności
Cechy dobrze zaprojektowanych komponentów
Zasady projektowania komponentów
Używanie testowania do˙podejmowania decyzji projektowych
Modularyzacja infrastruktury
Komponenty stosów a˙stosy jako komponenty
Używanie serwera w˙stosie
Wytyczanie granic między komponentami
Dopasowywanie granic do˙naturalnych wzorców zmian
Dopasowywanie granic do˙cyklów życia komponentów
Dopasowywanie granic do˙struktur organizacyjnych
Wytyczanie granic wspierających odporność
Tworzenie granic wspierających skalowanie
Dopasowywanie granic do˙zasad bezpieczeństwa i˙nadzoru
Podsumowanie

16. Budowanie stosów z komponentów
Języki infrastruktury dla komponentów stosu
Ponowne używanie kodu deklaratywnego za˙pomocą modułów
Dynamiczne tworzenie elementów stosu za˙pomocą bibliotek
Wzorce dla komponentów stosu
Wzorzec: moduł fasady
Antywzorzec: moduł zaciemniający
Antywzorzec: moduł niewspółdzielony
Wzorzec: moduł pakietowy
Antywzorzec: moduł spaghetti
Wzorzec: jednostka domeny infrastruktury
Budowanie warstwy abstrakcji
Podsumowanie

17. Używanie stosów jako komponentów
Wykrywanie zależności między stosami
Wzorzec: dopasowywanie zasobów
Wzorzec: wyszukiwanie danych w˙stosie
Wzorzec: wyszukiwanie w˙rejestrze integracji
Wstrzykiwanie zależności
Podsumowanie

Część V. Dostarczanie infrastruktury

18. Organizowanie kodu infrastruktury
Organizowanie projektów i˙repozytoriów
Jedno repozytorium czy wiele?
Jedno repozytorium na˙wszystko
Oddzielne repozytorium dla każdego projektu (mikrorepo).
Wiele repozytoriów z˙wieloma projektami
Organizowanie różnych rodzajów kodu
Pliki pomocnicze projektu
Testy wielu projektów
Dedykowane projekty testów integracji
Organizowanie kodu według koncepcji domeny
Organizowanie plików z˙wartościami konfiguracyjnymi
Zarządzanie kodem infrastruktury i˙aplikacji
Dostarczanie infrastruktury i˙aplikacji
Testowanie aplikacji razem z˙infrastrukturą
Testowanie infrastruktury przed integracją
Używanie kodu infrastruktury do˙wdrażania aplikacji
Podsumowanie

19. Dostarczanie kodu infrastruktury
Dostarczanie kodu infrastruktury
Budowanie projektu infrastruktury
Pakowanie kodu infrastruktury jako artefaktu
Używanie repozytorium do˙dostarczania kodu infrastruktury
Integrowanie projektów
Wzorzec: integracja projektów podczas budowania
Wzorzec: integracja projektów podczas dostarczania
Wzorzec: integracja projektów podczas stosowania
Używanie skryptów do˙opakowywania narzędzi infrastruktury
Zbieranie wartości konfiguracyjnych
Upraszczanie skryptów opakowujących
Podsumowanie

20. Przepływy pracy zespołowej
Ludzie
Kto pisze kod infrastruktury?
Stosowanie kodu do˙infrastruktury
Stosowanie kodu z˙poziomu lokalnej stacji roboczej
Stosowanie kodu z˙poziomu scentralizowanej usługi
Prywatne instancje infrastruktury
Gałęzie kodu źródłowego w˙przepływach pracy
Zapobieganie dryfowi konfiguracji
Minimalizacja opóźnienia automatyzacji
Unikanie stosowania ad hoc
Ciągłe stosowanie kodu
Infrastruktura niezmienialna
Nadzór w˙przepływie pracy opartym na˙potoku
Reorganizowanie obowiązków
Przesunięcie w˙lewo
Przykładowy proces w˙przypadku infrastruktury jako kodu podlegającej
nadzorowi
Podsumowanie

21. Bezpieczne zmienianie infrastruktury
Ograniczanie zasięgu zmiany
Małe zmiany
Przykład refaktoryzacji
Wypychanie niekompletnych zmian do˙produkcji
Instancje równoległe
Transformacje kompatybilne wstecz
Przełączniki funkcji
Zmiana działającej infrastruktury
Chirurgia infrastruktury
Powiększanie i˙zmniejszanie
Zmiany bez przestojów
Ciągłość
Ciągłość poprzez zapobieganie błędom
Ciągłość poprzez szybkie odzyskiwanie
Ciągłe odzyskiwanie po˙awarii
Inżynieria chaosu
Planowanie na˙wypadek awarii
Ciągłość danych w˙zmieniającym się systemie
Blokowanie
Segregowanie
Replikacja
Ponowne ładowanie
Mieszane podejścia do˙ciągłości danych
Podsumowanie

Indeks

O autorze

Kod wydawnictwa: 978-83-7541-442-4

Opinie, recenzje, testy:

Ten produkt nie ma jeszcze opinii

Twoja opinia

aby wystawić opinię.

Ocena:
  • Wszystkie pola są wymagane
Zapytaj o produkt

Produkty powiązane

Kontakt

Księgarnia Ekonomiczna Kazimierz Leki Sp. z o.o.

ul. Grójecka 67

02-094 Warszawa

NIP: 7010414095

Tel. 22 822 90 41

www.24naukowa.com.pl

naukowa@ksiegarnia-ekonomiczna.com.pl