Читать книгу Docker w praktyce - Ian Miell - Страница 13

1.1.2. Do czego służy Docker?

Оглавление

Mogą pojawić się kluczowe praktyczne pytania: dlaczego mielibyśmy używać Dockera i do czego? Krótka odpowiedź na pytanie „dlaczego” brzmi, że przy odrobinie wysiłku Docker może szybko pomóc zaoszczędzić firmie dużo pieniędzy. Niektóre ze sposobów użycia (ale nie wszystkie) zostały omówione poniżej. Wszystkie te zalety widzieliśmy osobiście w rzeczywistych zastosowaniach.

Zastępowanie maszyn wirtualnych

W wielu sytuacjach Docker może być używany do zastępowania maszyn wirtualnych. Jeśli zależy nam tylko na aplikacji, a nie na systemie operacyjnym, Docker może zastąpić maszynę wirtualną i możemy zostawić martwienie się o system operacyjny komuś innemu. Docker jest nie tylko szybszy niż maszyna wirtualna, ale także lżejszy, a dzięki warstwowemu systemowi plików można łatwiej i szybciej udostępniać zmiany innym. Jest również silnie związany z linią poleceń oraz idealnie nadaje się do tworzenia skryptów.

Prototypowanie oprogramowania

Jeśli chcemy szybko eksperymentować z oprogramowaniem bez zakłócania istniejącej konfiguracji lub przechodzić przez kłopoty związane z postawieniem maszyny wirtualnej, Docker może dać nam izolowane środowisko w ciągu milisekund. Ten piorunujący efekt jest trudny do uchwycenia dopóty, dopóki samemu się tego nie doświadczy.

Pakowanie oprogramowania

Ponieważ dla użytkownika Linuksa obraz Dockera nie ma żadnych zależności, to jest to świetny sposób na pakowanie oprogramowania. Możemy zbudować nasz obraz i mieć pewność, że będzie on działał na dowolnym współczesnym komputerze z Linuksem – pomyślmy o tym jak o Javie, ale bez potrzeby używania JVM.

Ułatwienie dla architektury mikrousługowej

Docker ułatwia dekompozycję złożonego systemu na serię możliwych do złożenia części, co pozwala traktować swoje usługi w bardziej dyskretny sposób. Dzięki temu można restrukturyzować oprogramowanie, aby jego części były łatwiejsze w zarządzaniu i aby można było je wymieniać bez wpływu na całość.

Modelowanie sieci

Dzięki temu, że można połączyć setki (a nawet tysiące) pojedynczych kontenerów na jednej maszynie, modelowanie sieci jest proste. Może to być doskonałe do testowania rzeczywistych scenariuszy bez rozbijania banku.

Produktywność całego stosu nawet w trybie offline

Ponieważ możliwe jest spakowanie wszystkich części systemu do kontenerów Dockera, możemy je orkiestrować, aby działały na laptopie, nawet w trybie offline.

Redukowanie nakładów związanych z debugowaniem

Złożone negocjacje między różnymi zespołami na temat dostarczanego oprogramowania są w branży typowe. Osobiście doświadczyliśmy niezliczonych dyskusji na temat uszkodzonych bibliotek; problematycznych zależności; nieprawidłowo, w niewłaściwej kolejności lub nawet w ogóle niezastosowanych aktualizacji; nieodtwarzalnych błędów i tak dalej. Prawdopodobnie wszyscy z tym się spotykamy. Docker pozwala na wyraźne określenie (nawet w formie skryptu) kroków w celu debugowania problemu w systemie o znanych właściwościach, co sprawia, że reprodukcja błędów i środowiska jest znacznie prostsza oraz jest oddzielona od udostępnionego środowiska hosta.

Dokumentowanie zależności oprogramowania oraz punktów styczności

Tworząc obrazy w uporządkowany sposób, gotowe do przeniesienia do różnych środowisk, Docker zmusza nas do dokumentowania zależności oprogramowania, począwszy od podstawowego punktu startowego. Nawet jeśli nie zdecydujemy się używać Dockera wszędzie, ta dokumentacja pomoże nam instalować oprogramowanie w innych miejscach.

Umożliwienie ciągłego dostarczania

Ciągłe dostarczanie (continuous delivery, CD) to paradygmat dostarczania oprogramowania, przez bazowanie na strumieniu, który przebudowuje system przy każdej zmianie, a następnie dostarcza go na produkcję (lub do środowiska „rzeczywistego”) za pomocą zautomatyzowanego (lub częściowo zautomatyzowanego) procesu.

Ponieważ można dokładniej kontrolować stan środowiska, w którym odbywa się budowanie, kompilacje w Dockerze są bardziej odtwarzalne i powtarzalne niż tradycyjne metody budowania oprogramowania. To znacznie ułatwia implementację CD. Standardowe techniki CD, takie jak wdrożenia Blue/Green (gdzie „rzeczywiste” i „poprzednie” wdrożenia są utrzymywane przy życiu) oraz wdrożenia Phoenix (gdzie po każdym wydaniu są przebudowywane całe systemy), stają się trywialne dzięki implementacji procesów budowania skoncentrowanych na Dockerze.

Teraz trochę już wiemy na temat tego, jak Docker może nam pomóc. Zanim zajmiemy się ­prawdziwym przykładem, przejdźmy przez kilka podstawowych pojęć.

Docker w praktyce

Подняться наверх