Docker dla programistów. Rozwijanie aplikacji i narzędzia ciągłego dostarczania DevOps
- Ocena:
- 2.0/6 Opinie: 1
- Stron:
- 376
- Druk:
- oprawa miękka
- Dostępne formaty:
-
PDFePubMobi
Opis ebooka: Docker dla programistów. Rozwijanie aplikacji i narzędzia ciągłego dostarczania DevOps
Docker zyskuje coraz większe uznanie programistów. Dzięki swojej niezależności od platformy kontenery pozwalają na uruchamianie kodu w różnych środowiskach, zarówno w centrach danych, jak i w chmurze. Zastosowanie kontenerów bardzo upraszcza opracowanie, testowanie, wdrażanie i skalowanie aplikacji. Pozwala też na automatyzację przepływu pracy i stałe doskonalenie aplikacji. Aby skorzystać ze wszystkich tych zalet, architekci, projektanci i programiści muszą wszechstronnie i głęboko poznać wiele różnych aspektów zarządzania środowiskiem kontenerowym.
Oto wyczerpujące omówienie wszystkich zagadnień niezbędnych do tworzenia i rozwijania aplikacji w Dockerze. W książce zaprezentowano różne metody wdrażania i uruchamiania kontenerów, pokazano również, jak wykorzystuje się je w środowisku produkcyjnym. Wskazano właściwe techniki używania narzędzi Jenkins, Kubernetes i Spinnaker. Przedstawiono metody monitorowania, zabezpieczania i skalowania kontenerów za pomocą takich narzędzi jak Prometheus i Grafana. Nie zabrakło opisu wdrażania kontenerów w różnych środowiskach, między innymi w chmurowej usłudze Amazon Elastic Kubernetes Service, a także - na koniec - kwestii bezpieczeństwa Dockera i związanych z tym dobrych praktyk.
W książce:
- gruntowne wprowadzenie do Dockera i programowania w VirtualBox
- tworzenie systemów z kontenerów i ich wdrażanie w środowisku produkcyjnym
- ciągłe wdrażanie oprogramowania
- skalowanie, testy obciążeniowe i zagadnienia bezpieczeństwa
- stosowanie zewnętrznych narzędzi: AWS, Azure, GCP i innych
Docker. Wszechstronne wdrożenia w najlepszym stylu
Wybrane bestsellery
-
To gruntownie zaktualizowane i uzupełnione wydanie praktycznego przewodnika po wdrażaniu i testowaniu kontenerów Dockera. Przedstawia proces przygotowania pakietu aplikacji ze wszystkimi ich zależnościami, a także jego testowania, wdrażania, skalowania i utrzymywania w środowiskach produkcyjnych....
Docker. Niezawodne kontenery produkcyjne. Praktyczne zastosowania. Wydanie III Docker. Niezawodne kontenery produkcyjne. Praktyczne zastosowania. Wydanie III
(52.20 zł najniższa cena z 30 dni)60.90 zł
87.00 zł(-30%) -
Kurs, który Ci dziś przedstawiamy, dotyczy jednej z najważniejszych i najbardziej dynamicznych dziedzin w branży IT, czyli development and operations (DevOps). DevOps to praktyka łącząca procesy rozwoju oprogramowania (Dev) i operacje IT (Ops), co umożliwia szybszą i efektywniejszą produkcję opro...
DevOps w praktyce. Kurs video. Jenkins, Ansible, Terraform i Docker DevOps w praktyce. Kurs video. Jenkins, Ansible, Terraform i Docker
(39.90 zł najniższa cena z 30 dni)99.49 zł
199.00 zł(-50%) -
W ostatnich latach na lidera konteneryzacji wyrosło środowisko uruchomieniowe Docker. Dzięki funkcjonalności, wygodnej obsłudze i szerokiej kompatybilności z różnymi systemami operacyjnymi stanowi on dziś techniczny standard. Docker otwiera przed badaczami cyberbezpieczeństwa nowe możliwości test...
Laboratorium cyberbezpieczeństwa w Dockerze. Zrób to sam Laboratorium cyberbezpieczeństwa w Dockerze. Zrób to sam
(29.40 zł najniższa cena z 30 dni)34.30 zł
49.00 zł(-30%) -
To trzecie wydanie przewodnika autorstwa twórców Kubernetesa. Zostało starannie zaktualizowane i wzbogacone o tak ważne zagadnienia jak bezpieczeństwo, dostęp do Kubernetesa za pomocą kodu napisanego w różnych językach programowania czy tworzenie aplikacji wieloklastrowych. Dzięki książce poznasz...
Kubernetes. Tworzenie niezawodnych systemów rozproszonych. Wydanie III Kubernetes. Tworzenie niezawodnych systemów rozproszonych. Wydanie III
(41.40 zł najniższa cena z 30 dni)48.30 zł
69.00 zł(-30%) -
Oto znakomity przewodnik po Kubernetesie. Dzięki niemu w ciągu 22 godzinnych lekcji poznasz najważniejsze możliwości Kubernetesa. Od początku będziesz się koncentrować na praktyce: dzięki codziennym ćwiczeniom, przykładom i laboratoriom zdobędziesz biegłość w używaniu najlepszych narzędzi Kuberne...(77.40 zł najniższa cena z 30 dni)
90.30 zł
129.00 zł(-30%) -
Frameworki bardzo ułatwiają życie programistom. Pozwalają na szybkie tworzenie nawet rozbudowanych aplikacji, ale praca z frameworkiem najczęściej oznacza duże ograniczenia w doborze technologii. Wszystko jest w porządku, dopóki deweloper stosuje dokładnie te rozwiązania, które zaplanowali twórcy...
Flask. Tworzenie aplikacji internetowych w Pythonie. Wydanie II Flask. Tworzenie aplikacji internetowych w Pythonie. Wydanie II
(41.40 zł najniższa cena z 30 dni)48.30 zł
69.00 zł(-30%) -
Odkryj moc Dockera i przekształć swój sposób pracy z aplikacjami i infrastrukturą! Ta książka to Twój bilet do świata, gdzie wdrożenia stają się szybsze, a aplikacje bardziej przenośne i bezpieczne. Oto, jak Docker może rewolucjonizować Twój workflow: Izolacja aplikacji: Każda aplikacja dział...
Docker w 1 dzień. Docker od podstaw, po projektowanie i praktyczne zastosowania Docker w 1 dzień. Docker od podstaw, po projektowanie i praktyczne zastosowania
-
Docker and Linux containers have fundamentally changed the way that organizations develop, deliver, and run software at scale. But understanding why these tools are important and how they can be successfully integrated into your organization's ecosystem can be challenging. This fully updated guid...(203.15 zł najniższa cena z 30 dni)
211.65 zł
249.00 zł(-15%) -
Platforma Docker znacznie ułatwiła życie programistom. Dzięki niej zarówno program, jak i jego zależności, takie jak biblioteki, pliki konfiguracyjne czy lokalne bazy danych, można umieścić w lekkim, przenośnym wirtualnym kontenerze, uruchamialnym na praktycznie każdym serwerze z systemem pracują...(39.90 zł najniższa cena z 30 dni)
58.04 zł
129.00 zł(-55%) -
Na szczęście Docker należy do tych technologii, w które łatwo się wdrożyć. Zresztą istnieje sporo szkoleń, kursów i książek dla początkujących użytkowników tego oprogramowania. Gorzej z opracowaniami na temat zaawansowanej obsługi Dockera. Tymczasem oferuje on wiele narzędzi i sztuczek, których z...(39.90 zł najniższa cena z 30 dni)
51.60 zł
129.00 zł(-60%)
O autorach ebooka
Richard Bullington-McGuire od ponad ćwierćwiecza 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 czterdziestu 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.
Richard Bullington-McGuire, Michael Schwartz, Andrew K. Dennis - pozostałe książki
-
Regardless of whether you are a DevOps engineer, a Software Engineering lead, or a software developer, everyone seeks to create repeatable environments with Docker containers. By reading this book and completing the exercises, you will learn how to build and deploy applications in Docker with eas...
Docker for Developers. Develop and run your application with Docker containers using DevOps tools for continuous delivery Docker for Developers. Develop and run your application with Docker containers using DevOps tools for continuous delivery
Richard Bullington-McGuire, Andrew K. Dennis, Michael Schwartz
-
With the release of the Raspberry Pi 2, a new series of the popular compact computer is available for you to build cheap, exciting projects and learn about programming.In this book, we explore Raspberry Pi 2’s hardware through a number of projects in a variety of programming languages. We ...
Raspberry Pi Computer Architecture Essentials. Click here to enter text Raspberry Pi Computer Architecture Essentials. Click here to enter text
-
Raspberry Pi Home Automation with Arduino. Unleash the power of the most popular microboards to build convenient, useful, and fun home automation projects Raspberry Pi Home Automation with Arduino. Unleash the power of the most popular microboards to build convenient, useful, and fun home automation projects
-
A cluster is a type of parallel/distributed processing system which consists of a collection of interconnected stand-alone computers cooperatively working together. Using Raspberry Pi computers, you can build a two-node parallel computing cluster which enhances performance and availability.This p...
Raspberry Pi Super Cluster. As a Raspberry Pi enthusiast have you ever considered increasing their performance with parallel computing? Discover just how easy it can be with the right help – this guide takes you through the process from start to finish Raspberry Pi Super Cluster. As a Raspberry Pi enthusiast have you ever considered increasing their performance with parallel computing? Discover just how easy it can be with the right help – this guide takes you through the process from start to finish
Zobacz pozostałe książki z serii Packt
-
Oto kompleksowe omówienie sposobów wdrażania najnowszych dostępnych środków zabezpieczających systemy linuksowe. Z książki dowiesz się, jak skonfigurować laboratorium do ćwiczeń praktycznych, tworzyć konta użytkowników z odpowiednimi poziomami uprawnień, chronić dane dzięki uprawnieniom i szyfrow...
Bezpieczeństwo systemu Linux. Hardening i najnowsze techniki zabezpieczania przed cyberatakami. Wydanie III Bezpieczeństwo systemu Linux. Hardening i najnowsze techniki zabezpieczania przed cyberatakami. Wydanie III
(77.40 zł najniższa cena z 30 dni)90.30 zł
129.00 zł(-30%) -
Ta książka pomoże Ci w doskonaleniu umiejętności potrzebnych na każdym etapie dochodzenia cyfrowego, od zbierania dowodów, poprzez ich analizę, po tworzenie raportów. Dzięki wielu wskazówkom i praktycznym ćwiczeniom przyswoisz techniki analizy, ekstrakcji danych i raportowania przy użyciu zaawans...
Informatyka śledcza i Kali Linux. Przeprowadź analizy nośników pamięci, ruchu sieciowego i zawartości RAM-u za pomocą narzędzi systemu Kali Linux 2022.x. Wydanie III Informatyka śledcza i Kali Linux. Przeprowadź analizy nośników pamięci, ruchu sieciowego i zawartości RAM-u za pomocą narzędzi systemu Kali Linux 2022.x. Wydanie III
(59.40 zł najniższa cena z 30 dni)69.30 zł
99.00 zł(-30%) -
Oto uzupełnione i zaktualizowane wydanie bestsellerowego przewodnika dla inżynierów sieci. Dzięki niemu przejdziesz trudną (ale ekscytującą!) drogę od tradycyjnej platformy do platformy sieciowej opartej na najlepszych praktykach programistycznych. Zaczniesz od zagadnień podstawowych, aby następn...
Zaawansowana inżynieria sieci w Pythonie. Automatyzacja, monitorowanie i zarządzanie chmurą. Wydanie IV Zaawansowana inżynieria sieci w Pythonie. Automatyzacja, monitorowanie i zarządzanie chmurą. Wydanie IV
(77.40 zł najniższa cena z 30 dni)90.30 zł
129.00 zł(-30%) -
Oto zaktualizowane wydanie bestsellerowego przewodnika dla architektów rozwiązań. Dzięki niemu dobrze poznasz wzorce projektowe wbudowane w chmurę, czyli model AWS Well-Architected Framework. Zaznajomisz się z sieciami w chmurze AWS z uwzględnieniem sieci brzegowych i tworzeniem hybrydowych połąc...
AWS dla architektów rozwiązań. Tworzenie, skalowanie i migracja aplikacji do chmury Amazon Web Services. Wydanie II AWS dla architektów rozwiązań. Tworzenie, skalowanie i migracja aplikacji do chmury Amazon Web Services. Wydanie II
Saurabh Shrivastava, Neelanjali Srivastav, Alberto Artasanchez, Imtiaz Sayed
(83.40 zł najniższa cena z 30 dni)97.30 zł
139.00 zł(-30%) -
Ten szczegółowy przewodnik pozwoli Ci na błyskawiczne zapoznanie się z .NET MAUI i sprawne rozpoczęcie pisania aplikacji za pomocą tej technologii. Zaprezentowano w nim filozofię działania .NET MAUI, jak również przebieg prac nad tworzeniem kompletnej aplikacji wieloplatformowej dla systemów: And...
Projektowanie aplikacji w .NET MAUI. Jak budować doskonałe interfejsy użytkownika dla aplikacji wieloplatformowych Projektowanie aplikacji w .NET MAUI. Jak budować doskonałe interfejsy użytkownika dla aplikacji wieloplatformowych
(47.40 zł najniższa cena z 30 dni)55.30 zł
79.00 zł(-30%) -
Ta książka szczególnie przyda się osobom, które rozpoczynają pracę z Angularem. Dzięki niej szybko zaczniesz tworzyć aplikacje z wykorzystaniem wiersza poleceń (CLI), pisać testy jednostkowe i używać stylów zgodnych ze standardem Material Design. Dowiesz się również, jak wdrażać aplikacje w środo...
Poznaj Angular. Rzeczowy przewodnik po tworzeniu aplikacji webowych z użyciem frameworku Angular 15. Wydanie IV Poznaj Angular. Rzeczowy przewodnik po tworzeniu aplikacji webowych z użyciem frameworku Angular 15. Wydanie IV
(53.40 zł najniższa cena z 30 dni)62.30 zł
89.00 zł(-30%) -
Oto praktyczny, przystępnie napisany przewodnik, który stanowi wprowadzenie do pracy z technologią Blazor. Opisuje możliwości modeli Server i WebAssembly, przedstawia także krok po kroku proces powstawania aplikacji internetowej. Dzięki temu płynnie przejdziesz do tworzenia projektów Blazor, nauc...
Platforma Blazor. Praktyczny przewodnik. Jak tworzyć interaktywne aplikacje internetowe z C# i .NET 7. Wydanie II Platforma Blazor. Praktyczny przewodnik. Jak tworzyć interaktywne aplikacje internetowe z C# i .NET 7. Wydanie II
(41.40 zł najniższa cena z 30 dni)48.30 zł
69.00 zł(-30%) -
To książka przeznaczona dla profesjonalnych administratorów i użytkowników Linuksa. Dzięki niej szybciej zrozumiesz, w jakim stopniu dobre zarządzanie systemami na poziomie systemu operacyjnego może wynieść działanie infrastruktury biznesowej na zupełnie inny poziom. Znajdziesz tu najlepsze prakt...
Linux dla admina. Najlepsze praktyki. O czym pamiętać podczas projektowania i zarządzania systemami Linux dla admina. Najlepsze praktyki. O czym pamiętać podczas projektowania i zarządzania systemami
(53.40 zł najniższa cena z 30 dni)62.30 zł
89.00 zł(-30%) -
Książka stanowi wprowadzenie do pracy z funkcjami SI dostępnymi w Power BI; jest skierowana do osób znających to środowisko. Dowiesz się z niej, w jaki sposób sztuczna inteligencja może być używana w Power BI i jakie funkcje są w nim domyślnie dostępne. Nauczysz się też eksplorować i przygotowywa...
Power BI i sztuczna inteligencja. Jak w pełni wykorzystać funkcje AI dostępne w Power BI Power BI i sztuczna inteligencja. Jak w pełni wykorzystać funkcje AI dostępne w Power BI
(47.40 zł najniższa cena z 30 dni)55.30 zł
79.00 zł(-30%) -
To drugie wydanie popularnego przewodnika dla śledczych. Dzięki niemu sprawnie przygotujesz się do pracy z narzędziami kryminalistycznymi i zapoznasz się ze stosowanymi w informatyce śledczej technikami. Nauczysz się pozyskiwać informacje o podejrzanych i zabezpieczać znajdujące się w sieci dane,...
Informatyka śledcza. Gromadzenie, analiza i zabezpieczanie dowodów elektronicznych dla początkujących. Wydanie II Informatyka śledcza. Gromadzenie, analiza i zabezpieczanie dowodów elektronicznych dla początkujących. Wydanie II
(47.40 zł najniższa cena z 30 dni)55.30 zł
79.00 zł(-30%)
Ebooka "Docker dla programistów. Rozwijanie aplikacji i narzędzia ciągłego dostarczania DevOps" przeczytasz na:
-
czytnikach Inkbook, Kindle, Pocketbook, Onyx Boox i innych
-
systemach Windows, MacOS i innych
-
systemach Windows, Android, iOS, HarmonyOS
-
na dowolnych urządzeniach i aplikacjach obsługujących formaty: PDF, EPub, Mobi
Masz pytania? Zajrzyj do zakładki Pomoc »
Audiobooka "Docker dla programistów. Rozwijanie aplikacji i narzędzia ciągłego dostarczania DevOps" posłuchasz:
-
w aplikacji Ebookpoint na Android, iOS, HarmonyOs
-
na systemach Windows, MacOS i innych
-
na dowolnych urządzeniach i aplikacjach obsługujących format MP3 (pliki spakowane w ZIP)
Masz pytania? Zajrzyj do zakładki Pomoc »
Kurs Video "Docker dla programistów. Rozwijanie aplikacji i narzędzia ciągłego dostarczania DevOps" zobaczysz:
-
w aplikacjach Ebookpoint i Videopoint na Android, iOS, HarmonyOs
-
na systemach Windows, MacOS i innych z dostępem do najnowszej wersji Twojej przeglądarki internetowej
Recenzje ebooka: Docker dla programistów. Rozwijanie aplikacji i narzędzia ciągłego dostarczania DevOps (1) Poniższe recenzje mogły powstać po przekazaniu recenzentowi darmowego egzemplarza poszczególnych utworów bądź innej zachęty do jej napisania np. zapłaty.
-
Recenzja: FSGeek Patschek AleksanderRecenzja dotyczy produktu: ksiązka drukowanaCzy recenzja była pomocna:
Docker to jest aktualnie standard w branży - wykorzystujemy go na produkcji, do testów oraz podczas developmentu. Ale dla początkujących jest to ciężki temat. Nawet doświadczeni programiści mogą mieć problemy z Dockerem jeśli nie pracują z nim na co dzień. Czy ta książka pomoże uzupełnić luki w wiedzy? Mam problem z książkami technicznymi. Za każdym razem, gdy biorę taką do ręki, to boję się, że będzie nieaktualna, z mało przydatną wiedzą i tematem potraktowanym po macoszemu. Z tą książką jest na szczęście inaczej. Książka została wydana w 2021, a oryginał w 2020 więc jest to świeża pozycja. W opisywanych bibliotekach doszły oczywiście aktualizacje, ale są to drobne zmiany, których początkujący użytkownik nawet nie zauważy. Książka przechodzi od krótkiej historii, przez podstawową obsługę aż do tematów deployu na produkcję i bezpieczeństwa. Dzięki temu nawet mało zaawansowany programista może się rozwijać krok po kroku. Fajnym elementem są pliki, które można uruchamiać wraz z postępem lektury - już sama analiza takich plików przynosi wiele wiedzy i może stanowić bazę przy tworzeniu własnych. No i najważniejsze. Dla kogo ta książka? Ja jestem frontend developerem od kilku lat i dockera najczęściej wykorzystuję, by postawić środowisko lokalne, budowanie obrazów w CI oraz parę razy do tworzenia własnych obrazów. I z tej książki wyciągnąłem sporo wiedzy - szczególnie w temacie Kubernetes i AWS. Początkujący programiści (i osoby, które nigdy nic nie robiły z Dockerem) powinni przeczytać pierwsze 4 rozdziały, by dowiedzieć się co to jest Docker, po co jest i nauczyć się podstawowej obsługi. Bardziej doświadczeni programiści będą zadowoleni z kolejnych rozdziałów, gdzie wchodzi tematyka Kubernetes, deploy na produkcję (z przykładami jak to robić na AWS) oraz kwestie bezpieczeństwa. W skrócie - jeśli nigdy nie korzystałeś z Dockera albo wykorzystanie ogranicza się do docker-compose up i down to książka da ci sporo fajnej wiedzy. Polecam 5/5.
Szczegóły ebooka
- Tytuł oryginału:
- Docker for Developers: Develop and run your application with Docker containers using DevOps tools for continuous deliver
- Tłumaczenie:
- Andrzej Watrak
- ISBN Książki drukowanej:
- 978-83-283-7727-1, 9788328377271
- Data wydania książki drukowanej:
- 2021-06-22
- ISBN Ebooka:
- 978-83-283-7728-8, 9788328377288
- Data wydania ebooka:
- 2021-06-22 Data wydania ebooka często jest dniem wprowadzenia tytułu do sprzedaży i może nie być równoznaczna z datą wydania książki papierowej. Dodatkowe informacje możesz znaleźć w darmowym fragmencie. Jeśli masz wątpliwości skontaktuj się z nami sklep@ebookpoint.pl.
- Format:
- 168x237
- Numer z katalogu:
- 144599
- Rozmiar pliku Pdf:
- 15.3MB
- Rozmiar pliku ePub:
- 10.5MB
- Rozmiar pliku Mobi:
- 25.5MB
- Przykłady na ftp
Ebook zawiera materiały dodatkowe, które możesz pobrać z serwera FTP - link znajdziesz na stronie redakcyjnej.
- Zgłoś erratę
- Serie wydawnicze: Packt
Spis treści ebooka
- Geneza platformy Docker 28
- Hosting kolokacyjny 28
- Hosting samodzielny 29
- Centra danych 29
- 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
- Wymagania techniczne 40
- Problem zanieczyszczania systemu plików hosta 40
- Tworzenie maszyn wirtualnych za pomocą programu VirtualBox 41
- Wprowadzenie do wirtualizacji 41
- Tworzenie maszyny wirtualnej 42
- Dodatki do systemu gościa 43
- Instalacja programu VirtualBox 44
- Kontenery Docker 45
- Wprowadzenie do kontenerów 45
- Tworzenie aplikacji przy użyciu platformy Docker 47
- Pierwsze kroki z platformą Docker 48
- Automatyzacja poleceń za pomocą skryptów 49
- Podsumowanie 59
- Dalsza lektura 60
- Wymagania techniczne 62
- Wprowadzenie do serwisu Docker Hub 62
- Korzystanie z serwisu Docker Hub za pomocą wiersza poleceń 63
- Korzystanie z serwisu Docker Hub za pomocą przeglądarki 64
- Implementacja kontenera MongoDB w aplikacji 66
- Uruchomienie powłoki kontenera 69
- Wprowadzenie do architektury mikrousługowej 71
- Skalowalność 72
- Komunikacja między kontenerami 72
- Implementacja prostej aplikacji mikrousługowej 75
- Udostępnianie kontenerów w serwisie Docker Hub 79
- Podsumowanie 82
- Dalsza lektura 82
- Wymagania techniczne 84
- Wprowadzenie do narzędzia Docker Compose 84
- Problem ze skryptami 85
- Pliki konfiguracyjne narzędzia Docker Compose 86
- Dziedziczenie konfiguracji 89
- Sekcja depends_on 90
- Definiowanie udostępnianych portów 91
- Lokalne sieci w platformie Docker 94
- Definiowanie sieci za pomocą skryptów 94
- Tworzenie sieci za pomocą narzędzia Docker Compose 96
- Wiązanie systemów plików hosta i kontenera 97
- Optymalizacja wielkości kontenera 98
- Skrypt build.sh 100
- Inne narzędzia kompozycyjne 101
- Docker Swarm 101
- Kubernetes 101
- Packer 102
- Podsumowanie 102
- Dalsza lektura 103
- Wymagania techniczne 108
- Przykładowa aplikacja ShipIt Clicker 108
- Uruchamianie kontenerów Docker w środowisku produkcyjnym 109
- Minimalne środowisko produkcyjne 109
- Niezbędne minimum - Docker i Docker Compose na jednym hoście 110
- Wsparcie dla platformy Docker 110
- Problemy z wdrażaniem na pojedynczym hoście 110
- Zarządzane usługi chmurowe 111
- Google Kubernetes Engine 111
- AWS Elastic Beanstalk 112
- AWS ECS i Fargate 112
- AWS EKS 112
- Microsoft Azure Kubernetes Service 113
- DigitalOcean Docker Swarm 113
- Tworzenie własnych klastrów Kubernetes 113
- Dobieranie właściwej konfiguracji produkcyjnej 114
- Ćwiczenie - dołącz do zespołu ShipIt Clicker 116
- Ćwiczenie - wybór właściwej metody wdrożenia 119
- Ćwiczenie - ocena plików Dockerfile i docker-compose.yml 121
- Podsumowanie 121
- Wymagania techniczne 124
- Przykładowa aplikacja - ShipIt Clicker v2 124
- Dobór sprzętu i systemu operacyjnego dla aplikacji jednoserwerowej 124
- Wymagania dla wdrożenia jednoserwerowego 124
- Przygotowanie hosta do uruchomienia platformy Docker i narzędzia Docker Compose 125
- Instalacja platformy Docker i narzędzia Git 126
- Wdrażanie aplikacji przy użyciu plików konfiguracyjnych i skryptów 127
- Weryfikacja pliku Dockerfile 127
- Weryfikacja pliku docker-compose.yml 129
- Przygotowanie produkcyjnego pliku .env 131
- Skrypty 132
- Ćwiczenie - przechowywanie plików aplikacyjnych poza serwerem produkcyjnym 135
- Ćwiczenie - zabezpieczenie środowiska produkcyjnego 135
- Monitorowanie niewielkich aplikacji - dzienniki i alarmy 136
- Dzienniki 136
- Alarmy 137
- Ograniczenia aplikacji jednoserwerowych 137
- Brak automatycznego przełączania awaryjnego 138
- Brak skalowalności w poziomie wraz ze wzrostem obciążenia 138
- Niestabilność działania z powodu błędnej konfiguracji 138
- Katastrofalne skutki awarii w przypadku braku kopii zapasowej 139
- Studium przypadku - migracja z systemu CoreOS i usługi DigitalOcean do CentOS 7 i AWS 139
- Podsumowanie 139
- Dalsza lektura 140
- Wymagania techniczne 142
- Przykładowa aplikacja - ShipIt Clicker v3 142
- Wykorzystanie systemu Jenkins w procesie ciągłej integracji oprogramowania 143
- Pułapki, których powinieneś unikać 143
- Wykorzystanie istniejącego serwera 144
- Instalacja systemu Jenkins 144
- Ciągłe wdrażanie oprogramowania przy użyciu systemu Jenkins 148
- Plik Jenkinsfile i połączenie z serwerem 148
- Testowanie systemu Jenkins i platformy Docker za pomocą skryptu procesowego 148
- Łączenie z serwerem produkcyjnym za pomocą usługi SSH 150
- Modyfikowanie konfiguracji za pomocą systemu Jenkins 154
- Umieszczenie pliku Jenkinsfile w serwisie GitHub 154
- Zmiana źródeł wszystkich repozytoriów 156
- Definiowanie zmiennych środowiskowych dla serwera produkcyjnego 157
- Budowanie kontenerów i umieszczanie ich w serwisie Docker Hub 158
- Umieszczanie kontenerów w serwisie Docker Hub i wdrażanie ich w środowisku produkcyjnym 159
- Wdrażanie różnych odgałęzień oprogramowania w kilku środowiskach 162
- Utworzenie środowiska testowego 162
- Definiowanie zmiennych środowiskowych dla serwera testowego 163
- Wymuszenie wdrożenia testowego odgałęzienia projektu 163
- Złożoność i ograniczenia skalowalności systemu Jenkins 165
- Zarządzanie wieloma hostami 165
- Złożoność skryptów 166
- Kiedy wiadomo, że została osiągnięta granica? 166
- Podsumowanie 167
- Dalsza lektura 167
- Wymagania techniczne 170
- Opcje lokalnej instalacji platformy Kubernetes 170
- Docker Desktop i platforma Kubernetes 170
- Minikube 171
- Sprawdzenie poprawności działania platformy Kubernetes 172
- Wdrożenie przykładowej aplikacji ShipIt Clicker v4 172
- Instalacja programu Helm 172
- Lokalne wdrożenie aplikacji ShipIt Clicker i kontrolera NGINX Ingress Controller 173
- Dobór dystrybucji platformy Kubernetes 175
- Google Kubernetes Engine 175
- AWS EKS 175
- Red Hat OpenShift 176
- Microsoft Azure Kubernetes Service 176
- Inne opcje 177
- Pojęcia stosowane w platformie Kubernetes 178
- Obiekty 178
- Mapy ConfigMap 179
- Pody 180
- Węzły 180
- Usługi 180
- Kontrolery wejściowe 181
- Skrytki 182
- Przestrzenie nazw 187
- Konfigurowanie usługi AWS EKS za pomocą szablonu CloudFormation 187
- Wprowadzenie do szablonów AWS EKS Quick Start CloudFormation 188
- Przygotowanie konta AWS 188
- Szablony AWS EKS Quick Start CloudFormation 192
- Konfigurowanie klastra EKS 195
- Wdrożenie aplikacji w klastrze AWS ESK i ograniczenie zasobów 197
- Konfigurowanie ograniczeń chroniących przed wyciekiem pamięci i przeciążeniem procesora 197
- Przygotowanie aplikacji ShipIt Clicker do korzystania z kontrolera ALB 198
- Wdrożenie aplikacji ShipIt Clicker w klastrze EKS 198
- Repozytorium AWS Elastic Container Registry w klastrze AWS EKS 199
- Tworzenie repozytorium ECR 200
- Rozdzielanie środowisk za pomocą etykiet i przestrzeni nazw 202
- Przykład - oznaczenie etykietami środowisk w domyślnej przestrzeni nazw 202
- Środowiska programistyczne, akceptacyjne, testowe i produkcyjne 203
- Podsumowanie 204
- Dalsza lektura 204
- Wymagania techniczne 208
- Zaktualizowana wersja aplikacji ShipIt Clicker v5 208
- Usprawnienie platformy Kubernetes pod kątem utrzymywania aplikacji 209
- Zarządzanie klastrem EKS za pomocą lokalnej stacji roboczej 209
- Diagnozowanie problemów z połączeniem narzędzia kubectl z klastrem 210
- Przełączanie pomiędzy kontekstem klastra i lokalnej stacji 210
- Sprawdzenie poprawności działania kontrolera wejściowego ALB 211
- Przygotowanie domeny Route 53 i certyfikatu 211
- Utworzenie i wdrożenie aplikacji ShipIt Clicker v5 212
- Platforma Spinnaker - kiedy i dlaczego są niezbędne bardziej zaawansowane wdrożenia 215
- Wprowadzenie do platformy Spinnaker 215
- Instalacja platformy Spinnaker w klastrze AWS EKS za pomocą programu Helm 217
- Komunikacja z platformą Spinnaker za pomocą proxy kubectl 218
- Udostępnianie platformy za pomocą kontrolera wejściowego ALB 218
- Konfiguracja platformy Spinnaker za pomocą programu Halyard 220
- Połączenie platformy Spinnaker z systemem Jenkins 220
- Integracja systemu Jenkins z platformą Spinnaker i repozytorium ECR 221
- Połączenie platformy Spinnaker z serwisem GitHub 226
- Połączenie platformy Spinnaker z serwisem Docker Hub 226
- Diagnozowanie problemów z platformą Spinnaker 227
- Prosta strategia wdrożenia aplikacji ShipIt Clicker za pomocą platformy Spinnaker 228
- Definiowanie aplikacji w platformie Spinnaker 228
- Definiowanie procesu w platformie Spinnaker 229
- Utworzenie wpisu DNS dla kontrolera wejściowego 234
- Funkcjonalności wdrożeniowe i testowe platformy Spinnaker 235
- Wdrożenie kanarkowe 235
- Wdrożenie "czerwone/czarne" 235
- Anulowanie wdrożenia 236
- Testowanie aplikacji 236
- Podsumowanie 237
- Dalsza lektura 237
- Wymagania techniczne 240
- Wdrożenie demonstracyjnej aplikacji ShipIt Clicker v7 240
- Dzienniki kontenerów Docker i programów uruchomieniowych 243
- Dzienniki kontenerów Docker 243
- Cechy idealnego systemu zarządzania dziennikami 244
- Diagnozowanie problemów z warstwą sterowania platformy Kubernetes na podstawie dzienników 245
- Zapisywanie dzienników w usłudze CloudWatch Logs 246
- Długotrwałe przechowywanie dzienników w usłudze S3 247
- Analiza dzienników za pomocą usług CloudWatch Insights i Amazon Athena 248
- Ćwiczenie - sprawdzenie liczby uruchomień gry ShipIt Clicker 249
- Testy dostępności, gotowości i uruchamiania w platformie Kubernetes 249
- Sprawdzanie za pomocą testów dostępności, czy kontener odpowiada na zapytania 250
- Sprawdzanie za pomocą testów gotowości, czy usługa może przetwarzać ruch 250
- Przystosowanie aplikacji ShipIt Clicker do osobnych testów dostępności i gotowości 251
- Ćwiczenie - wymuszenie negatywnego wyniku testu gotowości aplikacji ShipIt Clicker 252
- Zbieranie wskaźników i wysyłanie alarmów za pomocą systemu Prometheus 252
- Historia systemu 253
- Zapytania i interfejs WWW 253
- Definiowanie w aplikacji wskaźników dla systemu Prometheus 254
- Odczytywanie niestandardowych wskaźników 256
- Konfiguracja alarmów 256
- Wysyłanie powiadomień za pomocą modułu Alertmanager 258
- Szczegóły zapytań i zewnętrznego monitoringu 260
- Wizualizacja danych operacyjnych za pomocą systemu Grafana 260
- Dostęp do systemu 260
- Dodawanie paneli opracowanych przez społeczność użytkowników 261
- Utworzenie nowego panelu z niestandardowym zapytaniem 262
- Monitorowanie wydajności aplikacji za pomocą systemu Jaeger 264
- Interfejs OpenTracing API 264
- Wprowadzenie do systemu Jaeger 265
- Instalacja klienta systemu Jaeger w aplikacji ShipIt Clicker 267
- Instalacja rozszerzenia Jaeger Operator 270
- Podsumowanie 272
- Dalsza lektura 272
- Wymagania techniczne 276
- Nowa aplikacja ShipIt Clicker v8 276
- Skalowanie klastra Kubernetes 278
- Ręczne skalowanie klastra 279
- Dynamiczne skalowanie klastra 281
- Siatka usług Envoy i jej zastosowania 285
- Zarządzanie ruchem w sieci 286
- Instalacja siatki Envoy 287
- Testowanie skalowalności i wydajności aplikacji za pomocą narzędzia k6 291
- Rejestrowanie i odtwarzanie sesji 292
- Ręczne tworzenie realistycznego testu 293
- Wykonanie testu obciążeniowego 297
- Podsumowanie 298
- Dalsza lektura 299
- Wymagania techniczne 304
- Wirtualizacja i modele bezpieczeństwa hiperwizora 304
- Wirtualizacja i pierścienie ochronne 304
- Platforma Docker i pierścienie ochronne 306
- Kontenerowe modele bezpieczeństwa 308
- Docker Engine, containerd i zabezpieczenia w systemie Linux 309
- Przestrzeń PID 310
- Przestrzeń MNT 311
- Przestrzeń NET 311
- Przestrzeń IPC 311
- Przestrzeń UTS 311
- Przestrzeń USER 312
- Uwaga dotycząca grup cgroups 312
- Dobre praktyki w skrócie 312
- Regularnie instaluj poprawki 313
- Zabezpieczaj gniazdo sieciowe 313
- Nie uruchamiaj błędnego kodu 315
- Zawsze twórz konto użytkownika z minimalnymi uprawnieniami 315
- Podsumowanie 315
- Wymagania techniczne 318
- Bezpieczeństwo obrazów kontenerów 318
- Weryfikacja obrazu 320
- Minimalny obraz bazowy 322
- Ograniczanie uprawnień 323
- Zapobieganie wyciekowi danych 324
- Bezpieczne korzystanie z poleceń w platformie Docker 326
- Polecenia COPY i ADD - jaka jest różnica? 326
- Kopiowanie rekurencyjne - bądź ostrożny 327
- Bezpieczeństwo procesu budowania kontenerów 328
- Wieloetapowy proces budowania obrazu 329
- Ograniczanie możliwości i zasobów wdrażanego kontenera 330
- Ograniczanie zasobów 330
- Ograniczanie możliwości 331
- Podsumowanie 332
- Wymagania techniczne 334
- Bezpieczne przechowywanie poufnych danych w platformie Docker 334
- Dziennik Raft 335
- Tworzenie, edytowanie i usuwanie skrytek 336
- Tworzenie skrytek 336
- Odczytywanie skrytek 336
- Usuwanie skrytek 337
- Skrytki w akcji - przykłady 338
- Zabezpieczanie kontenerów za pomocą znaczników 340
- Umieszczanie w etykietach metadanych aplikacji 341
- Podsumowanie 342
- Wymagania techniczne 344
- Skanowanie i monitorowanie a bezpieczeństwo kontenerów w chmurze i środowisku programistycznym 344
- Skanowanie obrazów kontenerów za pomocą programu Anchore Engine 345
- Chef InSpec 349
- Lokalny monitoring platformy Docker za pomocą natywnego narzędzia stats 350
- Agregowanie danych monitoringowych w chmurze za pomocą narzędzia Datadog 353
- Zabezpieczanie kontenerów w chmurze AWS 356
- Alarmy bezpieczeństwa w usłudze AWS GuardDuty 357
- Zabezpieczanie kontenerów w chmurze Azure 358
- Monitorowanie kontenerów w chmurze Azure 358
- Zabezpieczanie kontenerów przy użyciu usługi Security Center 359
- Zabezpieczanie kontenerów w chmurze GCP 360
- Analiza kontenerów i uwierzytelnienie binarne 361
- Wykrywanie ataków za pomocą usługi Security Command Center 362
- Podsumowanie 363
- Dalsza lektura 364
- Wymagania techniczne 365
- Kontenery w skrócie 366
- Czego się dowiedziałeś o tworzeniu aplikacji 366
- Wzorce projektowe 366
- Poszerzenie wiedzy o tworzeniu i utrzymaniu aplikacji 369
- Inżynieria chaosu i tworzenie niezawodnych systemów produkcyjnych 369
- Bezpieczeństwo i dalsze kroki 371
- Metasploit i testy penetracyjne 371
- Podsumowanie 373
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
Rozdział 2. Tworzenie aplikacji z użyciem VirtualBox i kontenerów Docker 39
Rozdział 3. Udostępnianie kontenerów w serwisie Docker Hub 61
Rozdział 4. Tworzenie systemów przy użyciu kontenerów 83
CZĘŚĆ II. PLATFORMA DOCKER W ŚRODOWISKU PRODUKCYJNYM 105
Rozdział 5. Wdrażanie i uruchamianie kontenerów w środowisku produkcyjnym 107
Rozdział 6. Wdrażanie aplikacji przy użyciu Docker Compose 123
Rozdział 7. Ciągłe wdrażanie oprogramowania przy użyciu systemu Jenkins 141
Rozdział 8. Wdrażanie kontenerów Docker przy użyciu platformy Kubernetes 169
Rozdział 9. Ciągłe wdrażanie oprogramowania w chmurze przy użyciu platformy Spinnaker 207
Rozdział 10. Monitorowanie kontenerów Docker przy użyciu systemów Prometheus, Grafana i Jaeger 239
Rozdział 11. Skalowanie i testy obciążeniowe aplikacji w środowisku Docker 275
CZĘŚĆ III. BEZPIECZEŃSTWO KONTENERÓW DOCKER 301
Rozdział 12. Wprowadzenie do bezpieczeństwa kontenerów 303
Rozdział 13. Podstawy bezpieczeństwa i dobre praktyki korzystania z platformy Docker 317
Rozdział 14. Zaawansowane zabezpieczenia: skrytki, poufne polecenia, znaczniki i etykiety 333
Rozdział 15. Skanowanie, monitorowanie i zewnętrzne narzędzia 343
Rozdział 16. Wnioski - koniec drogi, ale nie podróży 365
Helion - inne książki
-
Oto zaktualizowane wydanie popularnego przewodnika, dzięki któremu skorzystasz z ponad dwustu sprawdzonych receptur bazujących na najnowszych wydaniach bibliotek Pythona. Wystarczy, że skopiujesz i dostosujesz kod do swoich potrzeb. Możesz też go uruchamiać i testować za pomocą przykładowego zbio...
Uczenie maszynowe w Pythonie. Receptury. Od przygotowania danych do deep learningu. Wydanie II Uczenie maszynowe w Pythonie. Receptury. Od przygotowania danych do deep learningu. Wydanie II
(57.84 zł najniższa cena z 30 dni)62.30 zł
89.00 zł(-30%) -
Dzięki tej przystępnej książce zrozumiesz metody działania wielkich modeli językowych i techniki szkolenia modeli generatywnych. Następnie zapoznasz się z przypadkami użycia, w których ChatGPT sprawdzi się najlepiej, a w efekcie zwiększy produktywność i kreatywność. Dowiesz się też, jak wchodzić ...
Generatywna sztuczna inteligencja z ChatGPT i modelami OpenAI. Podnieś swoją produktywność i innowacyjność za pomocą GPT3 i GPT4 Generatywna sztuczna inteligencja z ChatGPT i modelami OpenAI. Podnieś swoją produktywność i innowacyjność za pomocą GPT3 i GPT4
(51.35 zł najniższa cena z 30 dni)55.30 zł
79.00 zł(-30%) -
Ta książka jest przewodnikiem dla profesjonalistów do spraw cyberbezpieczeństwa. Przedstawia podstawowe zasady reagowania na incydenty bezpieczeństwa i szczegółowo, na przykładach, omawia proces tworzenia zdolności szybkiej i skutecznej reakcji na takie zdarzenia. Zaprezentowano tu techniki infor...
Informatyka śledcza. Narzędzia i techniki skutecznego reagowania na incydenty bezpieczeństwa. Wydanie III Informatyka śledcza. Narzędzia i techniki skutecznego reagowania na incydenty bezpieczeństwa. Wydanie III
(79.20 zł najniższa cena z 30 dni)69.30 zł
99.00 zł(-30%) -
Czy wiesz, co kryje się w centrum naszej Galaktyki? Czy zastanawiasz się czasem, jak powstają czarne dziury i co one oznaczają dla naszego zrozumienia wszechrzeczy? Czy chcesz poznać tajemnice tych niesamowitych obiektów, które wykraczają poza granice wyobraźni? Jeśli tak, to bestseller Czarne dz...(47.20 zł najniższa cena z 30 dni)
41.30 zł
59.00 zł(-30%) -
To piąte, gruntownie zaktualizowane wydanie podręcznika, który doceni każdy student informatyki i inżynier oprogramowania. Książka obejmuje szeroki zakres zagadnień, od podstawowych pojęć po zaawansowaną problematykę związaną z najnowszymi trendami w systemach operacyjnych. Wyczerpująco omawia pr...(143.20 zł najniższa cena z 30 dni)
125.30 zł
179.00 zł(-30%) -
Jak sądzisz, co stanowi bazę informatyki? Od czego powinien zacząć przyszły programista? Może od opanowania jednego z najpopularniejszych języków programowania? Oczywiście mógłby od tego rozpocząć, tyle że to trochę tak, jakby uczyć się korzystać z narzędzia bez świadomości, do czego ono właściwi...
Informacja i kodowanie. Krótkie wprowadzenie z przykładami zastosowań Informacja i kodowanie. Krótkie wprowadzenie z przykładami zastosowań
(47.20 zł najniższa cena z 30 dni)41.30 zł
59.00 zł(-30%) -
Oto drugie, zaktualizowane wydanie znakomitego przewodnika dla analityków danych. Dzięki niemu dowiesz się, w jaki sposób używać języka R do importowania, przekształcania i wizualizowania danych, a także do przekazywania uzyskanych wyników analizy. Nauczysz się też rozwiązywać najczęściej występu...
Język R w data science. Importowanie, porządkowanie, przekształcanie, wizualizowanie i modelowanie danych. Wydanie II Język R w data science. Importowanie, porządkowanie, przekształcanie, wizualizowanie i modelowanie danych. Wydanie II
(103.20 zł najniższa cena z 30 dni)90.30 zł
129.00 zł(-30%) -
Książkę szczególnie docenią analitycy bezpieczeństwa, którzy chcą się zapoznać z zestawem poleceń ARM i zdobyć wiedzę umożliwiającą im efektywne korzystanie z technik inżynierii wstecznej. Poza zestawem potrzebnych poleceń znalazło się w niej mnóstwo przydatnych informacji. Znajdziesz tu przegląd...
Niebieski lis. Polecenia procesorów Arm i inżynieria wsteczna Niebieski lis. Polecenia procesorów Arm i inżynieria wsteczna
(57.84 zł najniższa cena z 30 dni)62.30 zł
89.00 zł(-30%) -
Ewolucja formularzy internetowych zaczęła się od prostych znaczników języka HTML 2.0 opublikowanego w 1993 roku. Z czasem HTML oferował bardziej zaawansowane funkcje obsługi formularzy. Późniejsze wersje, HTML4, a następnie HTML5, wprowadziły nowe typy pól, takie jak pola daty, koloru czy też adr...
Angular i formularze reaktywne. Praktyczny przewodnik Angular i formularze reaktywne. Praktyczny przewodnik
(44.85 zł najniższa cena z 30 dni)48.30 zł
69.00 zł(-30%) -
Tę książkę docenią praktycy: inżynierowie uczenia maszynowego i analitycy danych, poszukujący sposobu praktycznego zaadaptowania modeli transformacyjnych do swoich potrzeb. Autorzy skupili się na praktycznej stronie tworzenia aplikacji językowych, a w poszczególnych rozdziałach ujęto wszystkie na...
Przetwarzanie języka naturalnego z wykorzystaniem transformerów. Budowanie aplikacji językowych za pomocą bibliotek Hugging Face Przetwarzanie języka naturalnego z wykorzystaniem transformerów. Budowanie aplikacji językowych za pomocą bibliotek Hugging Face
(59.40 zł najniższa cena z 30 dni)69.30 zł
99.00 zł(-30%)
Dzieki opcji "Druk na żądanie" do sprzedaży wracają tytuły Grupy Helion, które cieszyły sie dużym zainteresowaniem, a których nakład został wyprzedany.
Dla naszych Czytelników wydrukowaliśmy dodatkową pulę egzemplarzy w technice druku cyfrowego.
Co powinieneś wiedzieć o usłudze "Druk na żądanie":
- usługa obejmuje tylko widoczną poniżej listę tytułów, którą na bieżąco aktualizujemy;
- cena książki może być wyższa od początkowej ceny detalicznej, co jest spowodowane kosztami druku cyfrowego (wyższymi niż koszty tradycyjnego druku offsetowego). Obowiązująca cena jest zawsze podawana na stronie WWW książki;
- zawartość książki wraz z dodatkami (płyta CD, DVD) odpowiada jej pierwotnemu wydaniu i jest w pełni komplementarna;
- usługa nie obejmuje książek w kolorze.
Masz pytanie o konkretny tytuł? Napisz do nas: sklep[at]helion.pl.
Książka, którą chcesz zamówić pochodzi z końcówki nakładu. Oznacza to, że mogą się pojawić drobne defekty (otarcia, rysy, zagięcia).
Co powinieneś wiedzieć o usłudze "Końcówka nakładu":
- usługa obejmuje tylko książki oznaczone tagiem "Końcówka nakładu";
- wady o których mowa powyżej nie podlegają reklamacji;
Masz pytanie o konkretny tytuł? Napisz do nas: sklep[at]helion.pl.
Książka drukowana
Oceny i opinie klientów: Docker dla programistów. Rozwijanie aplikacji i narzędzia ciągłego dostarczania DevOps Richard Bullington-McGuire, Michael Schwartz, Andrew K. Dennis (1) Weryfikacja opinii następuję na podstawie historii zamówień na koncie Użytkownika umieszczającego opinię. Użytkownik mógł otrzymać punkty za opublikowanie opinii uprawniające do uzyskania rabatu w ramach Programu Punktowego.
(0)
(0)
(0)
(0)
(1)
(0)