- EOL
Uwaga! Sprzedaż produktu została zakończona. Sprawdź inne w tej kategorii. |
Opis produktu: Docker dla programistów. Rozwijanie aplikacji i narzędzia ciągłego dostarczania DevOps - R. McGuire, M. Schwartz, A. K. Dennis
Książka prezentuje różne metody wdrażania i uruchamiania kontenerów, pokazuje również, jak wykorzystuje się je w środowisku produkcyjnym. Podręcznik wskazuje właściwe techniki używania narzędzi Jenkins, Kubernetes i Spinnaker. Przedstawia metody monitorowania, zabezpieczania i skalowania kontenerów za pomocą takich narzędzi jak Prometheus i Grafana. Książka zawiera opis wdrożenia kontenerów w różnych środowiskach, między innymi w chmurowej usłudze Amazon Elastic Kubernetes Service. W ostatnich rozdziałach poruszone zostały kwestie bezpieczeństwa Dockera i związane z tym dobre praktyki.
Informacje o autorach
Richard Bullington-McGuire od ponad 25 lat jest architektem oprogramowania i praktykiem DevOps. Aktywnie korzysta z Dockera. Jest członkiem IEEE i ACM, posiada sześć certyfikatów AWS.
Michael Schwartz od ponad 40 lat jest architektem systemów. Rozwijał pierwsze gry wideo, a jego najnowszy projekt to RoboDomo, system domowej automatyki.
Andrew K. Dennis od blisko dwóch dekad jest architektem systemów bezpieczeństwa. Organizuje konferencję Security BSides CT.
Informacje o książce
- Tytuł oryginalny: Docker for Developers: Develop and run your application with Docker containers using DevOps tools for continuous deliver
- Autorzy: Richard Bullington-McGuire, Michael Schwartz, Andrew K. Dennis
- Tłumaczenie: Andrzej Watrak
- ISBN: 978-83-283-7727-1
- Rok wydania: 2021
- Format: 168 x 237 mm
- Ilość stron: 376
- Oprawa: miękka
- Wydawnictwo: Helion S.A.
Spis treści
O autorach 15
O recenzencie 17
Przedmowa 19
CZĘŚĆ I. WPROWADZENIE DO PLATFORMY DOCKER - KONTENERY I PROGRAMOWANIE W LOKALNYM ŚRODOWISKU 25
Rozdział 1. Wprowadzenie do platformy Docker 27
- Geneza platformy Docker 28
- Wirtualizacja jako sposób na ekonomiczne wykorzystanie zasobów 31
- Rosnące zapotrzebowanie na energię 33
- Wirtualizacja i chmura obliczeniowa 34
- Dalsza optymalizacja zasobów centrów danych przy użyciu kontenerów 36
- Podsumowanie 38
- Dalsza lektura 38
Rozdział 2. Tworzenie aplikacji z użyciem VirtualBox i kontenerów Docker 39
- Wymagania techniczne 40
- Problem zanieczyszczania systemu plików hosta 40
- Tworzenie maszyn wirtualnych za pomocą programu VirtualBox 41
- Kontenery Docker 45
- Pierwsze kroki z platformą Docker 48
- Podsumowanie 59
- Dalsza lektura 60
Rozdział 3. Udostępnianie kontenerów w serwisie Docker Hub 61
- Wymagania techniczne 62
- Wprowadzenie do serwisu Docker Hub 62
- Implementacja kontenera MongoDB w aplikacji 66
- Wprowadzenie do architektury mikrousługowej 71
- Implementacja prostej aplikacji mikrousługowej 75
- Udostępnianie kontenerów w serwisie Docker Hub 79
- Podsumowanie 82
- Dalsza lektura 82
Rozdział 4. Tworzenie systemów przy użyciu kontenerów 83
- Wymagania techniczne 84
- Wprowadzenie do narzędzia Docker Compose 84
- Lokalne sieci w platformie Docker 94
- Wiązanie systemów plików hosta i kontenera 97
- Inne narzędzia kompozycyjne 101
- Podsumowanie 102
- Dalsza lektura 103
CZĘŚĆ II. PLATFORMA DOCKER W ŚRODOWISKU PRODUKCYJNYM 105
Rozdział 5. Wdrażanie i uruchamianie kontenerów w środowisku produkcyjnym 107
- Wymagania techniczne 108
- Przykładowa aplikacja ShipIt Clicker 108
- Uruchamianie kontenerów Docker w środowisku produkcyjnym 109
- Minimalne środowisko produkcyjne 109
- Zarządzane usługi chmurowe 111
- Tworzenie własnych klastrów Kubernetes 113
- Dobieranie właściwej konfiguracji produkcyjnej 114
- Podsumowanie 121
Rozdział 6. Wdrażanie aplikacji przy użyciu Docker Compose 123
- Wymagania techniczne 124
- Dobór sprzętu i systemu operacyjnego dla aplikacji jednoserwerowej 124
- Przygotowanie hosta do uruchomienia platformy Docker i narzędzia Docker Compose 125
- Wdrażanie aplikacji przy użyciu plików konfiguracyjnych i skryptów 127
- Monitorowanie niewielkich aplikacji - dzienniki i alarmy 136
- Ograniczenia aplikacji jednoserwerowych 137
- Podsumowanie 139
- Dalsza lektura 140
Rozdział 7. Ciągłe wdrażanie oprogramowania przy użyciu systemu Jenkins 141
- Wymagania techniczne 142
- Wykorzystanie systemu Jenkins w procesie ciągłej integracji oprogramowania 143
- Plik Jenkinsfile i połączenie z serwerem 148
- Modyfikowanie konfiguracji za pomocą systemu Jenkins 154
- Wdrażanie różnych odgałęzień oprogramowania w kilku środowiskach 162
- Złożoność i ograniczenia skalowalności systemu Jenkins 165
- Podsumowanie 167
- Dalsza lektura 167
Rozdział 8. Wdrażanie kontenerów Docker przy użyciu platformy Kubernetes 169
- Wymagania techniczne 170
- Opcje lokalnej instalacji platformy Kubernetes 170
- Wdrożenie przykładowej aplikacji ShipIt Clicker v4 172
- Dobór dystrybucji platformy Kubernetes 175
- Pojęcia stosowane w platformie Kubernetes 178
- Konfigurowanie usługi AWS EKS za pomocą szablonu CloudFormation 187
- Wdrożenie aplikacji w klastrze AWS ESK i ograniczenie zasobów 197
- Repozytorium AWS Elastic Container Registry w klastrze AWS EKS 199
- Rozdzielanie środowisk za pomocą etykiet i przestrzeni nazw 202
- Podsumowanie 204
- Dalsza lektura 204
Rozdział 9. Ciągłe wdrażanie oprogramowania w chmurze przy użyciu platformy Spinnaker 207
- Wymagania techniczne 208
- Zaktualizowana wersja aplikacji ShipIt Clicker v5 208
- Usprawnienie platformy Kubernetes pod kątem utrzymywania aplikacji 209
- Platforma Spinnaker - kiedy i dlaczego są niezbędne bardziej zaawansowane wdrożenia 215
- Instalacja platformy Spinnaker w klastrze AWS EKS za pomocą programu Helm 217
- Prosta strategia wdrożenia aplikacji ShipIt Clicker za pomocą platformy Spinnaker 228
- Funkcjonalności wdrożeniowe i testowe platformy Spinnaker 235
- Podsumowanie 237
- Dalsza lektura 237
Rozdział 10. Monitorowanie kontenerów Docker przy użyciu systemów Prometheus, Grafana i Jaeger 239
- Wymagania techniczne 240
- Dzienniki kontenerów Docker i programów uruchomieniowych 243
- Testy dostępności, gotowości i uruchamiania w platformie Kubernetes 249
- Zbieranie wskaźników i wysyłanie alarmów za pomocą systemu Prometheus 252
- Wizualizacja danych operacyjnych za pomocą systemu Grafana 260
- Monitorowanie wydajności aplikacji za pomocą systemu Jaeger 264
- Podsumowanie 272
- Dalsza lektura 272
Rozdział 11. Skalowanie i testy obciążeniowe aplikacji w środowisku Docker 275
- Wymagania techniczne 276
- Skalowanie klastra Kubernetes 278
- Siatka usług Envoy i jej zastosowania 285
- Testowanie skalowalności i wydajności aplikacji za pomocą narzędzia k6 291
- Podsumowanie 298
- Dalsza lektura 299
CZĘŚĆ III. BEZPIECZEŃSTWO KONTENERÓW DOCKER 301
Rozdział 12. Wprowadzenie do bezpieczeństwa kontenerów 303
- Wymagania techniczne 304
- Wirtualizacja i modele bezpieczeństwa hiperwizora 304
- Kontenerowe modele bezpieczeństwa 308
- Docker Engine, containerd i zabezpieczenia w systemie Linux 309
- Uwaga dotycząca grup cgroups 312
- Dobre praktyki w skrócie 312
- Podsumowanie 315
Rozdział 13. Podstawy bezpieczeństwa i dobre praktyki korzystania z platformy Docker 317
- Wymagania techniczne 318
- Bezpieczeństwo obrazów kontenerów 318
- Bezpieczne korzystanie z poleceń w platformie Docker 326
- Bezpieczeństwo procesu budowania kontenerów 328
- Ograniczanie możliwości i zasobów wdrażanego kontenera 330
- Podsumowanie 332
Rozdział 14. Zaawansowane zabezpieczenia: skrytki, poufne polecenia, znaczniki i etykiety 333
- Wymagania techniczne 334
- Bezpieczne przechowywanie poufnych danych w platformie Docker 334
- Tworzenie, edytowanie i usuwanie skrytek 336
- Skrytki w akcji - przykłady 338
- Zabezpieczanie kontenerów za pomocą znaczników 340
- Umieszczanie w etykietach metadanych aplikacji 341
- Podsumowanie 342
Rozdział 15. Skanowanie, monitorowanie i zewnętrzne narzędzia 343
- Wymagania techniczne 344
- Skanowanie i monitorowanie a bezpieczeństwo kontenerów w chmurze i środowisku programistycznym 344
- Zabezpieczanie kontenerów w chmurze AWS 356
- Zabezpieczanie kontenerów w chmurze Azure 358
- Zabezpieczanie kontenerów w chmurze GCP 360
- Podsumowanie 363
- Dalsza lektura 364
Rozdział 16. Wnioski - koniec drogi, ale nie podróży 365
- Wymagania techniczne 365
- Kontenery w skrócie 366
- Czego się dowiedziałeś o tworzeniu aplikacji 366
- Poszerzenie wiedzy o tworzeniu i utrzymaniu aplikacji 369
- Bezpieczeństwo i dalsze kroki 371
- Podsumowanie 373
Przydatne linki |