W czym Administratorowi pomaga Docker?

W czym Administratorowi pomaga Docker?

Gdzie nie spojrzysz to "Docker dla programisty...", "Docker i programowanie"...

By była jasność. Nie twierdzę, że programistom nie przyda się Docker. Wręcz przeciwnie. Po prostu uważam, że zdecydowanie więcej funkcjonalności zostało tu przygotowanych z myślą o administratorach.

Od kilku lat spieram się, że Docker bardziej służy Administratorowi, niż Programiście. I jeżeli ktoś Ci powie, że Docker jest narzędziem dla programistów to powiedz mi... Gdzie znajdę programistę, który zarządza...

Chwila, moment. Nie zdradzajmy wszystkiego. Zapraszam do lektury.

Aplikacje, a administrator

Docker ułatwia administratorowi zarządzanie oraz wdrażanie aplikacji. Tam, gdzie zainstalowany jest docker, aplikacja uruchomi się w sposób identyczny jak w każdym innym, środowisku. Zrobi to z użyciem takiego samego silnika baz danych, ale zainstalowanym w kontenerze. Ponadto kontenery dockera są lekkie i można je łatwo uruchamiać na różnych platformach. W tym na serwerach, komputerach stacjonarnych, a nawet w środowiskach chmurowych.

Załóżmy teraz, że administrator systemu jest odpowiedzialny za wdrożenie i zarządzanie aplikacji internetowej. Korzysta lub ma korzystać z niej ogromna ilość użytkowników.

Jeżeli użyje dockera, może zawrzeć w kontenerze wszystkie komponenty niezbędne do jej funkcjonowania, tworząc odpowiedni obraz. Posiadając taki, może wykorzystać go w kilkunastu innych miejscach, posługując się niewielką ilością poleceń. Wszelka konfiguracja znajduje się już w kontenerze i jest niezależna od środowiska, w którym ją uruchomimy.

Dlatego docker jest oprogramowaniem, które umożliwia tworzenie obrazów, a następnie kontenerów z aplikacjami. Są one samowystarczalne i odizolowane od głównego systemu. Co ważne, tworząc dla nich odrębną sieć, kontenery są również odizolowane od samych siebie. Dzięki czemu możemy testować i używać niezliczoną ilość aplikacji, na tym samym hoście. Prezentowany sposób zapewnia łatwe i spójne wdrażanie aplikacji na dowolnym środowisku.

Dzięki prezentowanym możliwościom administratorzy korzystający z dockera tworzą spójne oraz przewidywane środowiska dla aplikacji. W związku z tym, że są one uruchamiane w kontenerach, wystarczy, aby na hoście zainstalowany był tylko docker, a aplikacja będzie zachowywała się identycznie. Dlatego nie ma znaczenia czy uruchamiasz kontener w systemie Windows, Linux czy MacOS, uruchomi się ona w identyczny sposób.

Innym powodem przemawiającym za użyciem dockera w przypadku aplikacji o dość sporym ruchu jest możliwość łatwego wdrożenia dodatkowych kontenerów. W ten sposób dostosowujemy naszą aplikację do wymogów związanych z nasilonym w tym wypadku ruchem.

Platforma magazynująca

Sama możliwość tworzenia obrazów dla aplikacji jest ogromnym ułatwieniem dla administratora. Znasz już działanie kontenera oraz co on zawiera. Natomiast wiedz jeszcze, że istnieją platformy, na których takie obrazy możesz umieszczać, a następnie pobierać. Dlatego dostęp do nich przekazujesz przy pomocy jednego polecenia. Jednym z najbardziej znanych platform służącym temu celowi jest Docker Hub.

Bardzo przydatna okazuje się możliwość pobierania obrazów innych użytkowników. Dzięki temu możesz wykorzystać pracę innych w swoich poczynaniach. Nie zawsze musisz tworzyć obraz. Może się okazać, że taki już istnieje i jedynie co Tobie pozostaje to pobranie go i uruchomienie.

Dobrym przykładem takiego wykorzystania zasobów, jest sytuacja, gdy potrzebujemy serwera WWW i bazy danych. Jeżeli skorzystamy z dockera jako administrator, powinniśmy utworzyć dwa kontenery. Pierwszy będzie naszym serwerem, natomiast drugi bazą danych. Do tego celu nie tworzymy nowych obrazów, tylko pobieramy gotowe spełniające nasze potrzeby.

Aplikacje z wieloma kontenerami

Dodatkiem przy tworzeniu aplikacji składających się z kilku kontenerów jest Docker Compose. Pozwoli on na kompleksowe stworzenie i dalsze wykorzystanie, w tym wypadku serwera, z niezbędnymi komponentami i konfiguracją.

Co więcej, stosując się do tej zasady, możemy na jednym hoście stworzyć kilka takich usług. Będą one posiadały, więcej niż jeden kontener. Dlatego, jeżeli chcemy, to możemy uruchomić zarówno wspomniany przed chwilą serwer, jak i naszą aplikację.

Jeżeli skorzystamy z Docker Compose i dwóch oddzielnych plików, to serwer, jak i aplikacja będą dwiema oddzielnymi instancjami, niewiedzącymi o swoim istnieniu. Przyczyną tego jest możliwość tworzenia własnych sieci, a jeżeli używamy Docker Compose, automatycznie takie są generowane. Kilka serwisów na jednym hoście jest możliwe dzięki kontenerom o minimalnej zawartości oprogramowania. Zmniejsza to zużycie zasobów, dlatego kontenery są określane jako bardziej wydajniejsze, niż maszyny wirtualne.

Klastry

Innym rozwiązaniem problemu ze zwiększonymi zasobami aplikacji  może okazać się Docker Swarm. Wykorzystuje się go do zarządzania klastrami węzłów, które są pojedynczymi hostami. Na każdym z takich hostów uruchomione są kontenery dockera. Dzięki temu administrator w łatwy sposób, może tworzyć nowe oraz nimi zarządzać.

Dzięki dodawaniu nowych węzłów do klastra jesteśmy w stanie zaopatrzyć uruchomioną aplikację w niezbędne zasoby, potrzebne do jej funkcjonowania. Naturalnie, mamy tu również funkcjonalność High Availabilty.

Klaster oparty o Docker Swarm posiada funkcje automatycznego skalowania kontenerów, które są dodawane do klastra na zasadzie zdefiniowanych reguł, czy też warunków. Dlatego administratorzy mogą zorganizować sobie środowisko, w które nie będą musieli ingerować ręcznie.

Zatem, jeżeli ktoś Ci powie, że Docker jest narzędziem dla programistów to powiedz mi... Gdzie znajdę programistę, który zarządza klastrem?

Docker posiada wiele narzędzi oraz funkcji, które służą do zarządzania, oraz skalowania kontenerów. Do takich możemy zaliczyć na przykład Docker Engine, dzięki któremu uruchamiamy omawiany Docker Swarm. Jak i również Docker Compose. Dzięki nim w łatwy oraz przewidywany sposób jesteśmy w stanie zarządzać aplikacjami. Natomiast istotną możliwością okazuje się łatwość wprowadzania aktualizacji oraz zmian w sposób zautomatyzowany i kontrolowany. Dzięki takiemu rozwiązaniu redukujemy liczbę błędów i poprawiamy wydajność aplikacji. Wynikają z tego następstwa braku konieczności wykonywania wielu czynności ręcznie. Dlatego maleje ryzyko niespójności lub błędów w trakcie wdrażania aplikacji i zarządzania nimi.

Dzięki wykorzystaniu Docker Compose administrator może zdefiniować odpowiednie kontenery. Następnie definicje tam ujęte udostępnić innym administratorom, do modyfikacji na własne potrzeby lub do ponownego użycia. Dzięki temu nakład pracy zmniejsza się do minimum, a sama modyfikacja dość często polega, na dopisaniu lub zamianie kilku linii.

Innym dobrym połączeniem okazuje się możliwość zdefiniowania kontenerów przy pomocy Docker Compose w klastrach Docker Swarm. Dzięki temu otrzymujemy możliwość łatwego skalowania aplikacji poprzez dodawanie nowych kontenerów w razie rozrostu aplikacji.

Zarządzanie zasobami

Docker posiada wbudowane narzędzia służące do alokacji zasobów. Dzięki nim administratorzy mogą przydzielać i zarządzać wartościami takimi jak procesor i pamięć. W ten sposób upewniamy się, że pomiędzy uruchomionymi kontenerami, nie będzie występowała rywalizacja o zasoby. Ze względu na maksymalne wartości, jakie zostały im przydzielone. Wprowadzając wspomnianą konfigurację, upewniamy się, że są one efektywnie zarządzane.

Jak wspomniałem, w tych działaniach wspiera nas docker. Narzędzia, w które jest wyposażony, służą do rejestrowania i monitorowania wydajności kontenerów. W tych dwóch czynnościach wspiera nas przy pomocy poleceń Docker Logs i Docker Stats. Dzięki nim mamy możliwość śledzenia i monitorowania wydajności kontenerów, jak i również wykorzystania procesora, pamięci czy też ruchu sieciowego. Pomaga to identyfikować problemy oraz błędy w kontenerach. Dzięki takim informacjom możemy wprowadzać niezbędne poprawki w celu zapewnienia płynnego i niezawodnego działania.

Sieci i bezpieczeństwo kontenerów

A co z kwestiami sieci i bezpieczeństwa? Docker pozwala tworzyć własne sieci. Dzięki nim izolujemy kontenery od głównej sieci i od naszego hosta. W ten sam sposób możemy uniemożliwić im komunikację między sobą, rozmieszczając je w inne sieci. Upraszczając, są to takie dockerowe VLANy.

I teraz ktoś kto nie wie co to VLAN:

To już temat z działki sieciowców. Jeżeli chcesz bym rozwinął ten temat to napisz w komentarzu.

Wracając do temat... Te dockerowe sieci mają ogromną zaletę. To, co zostanie uruchomione w kontenerze, w nim pozostaje.

Dlatego, jeżeli jest to złośliwe oprogramowanie, jego zasięg obejmuje tylko określone przez nas zasoby. Takie podejście blokuje możliwość dostępu do poufnych danych lub zasobów systemowych, jak i również blokuje możliwość ich modyfikacji. Do opisywanego celu korzystamy z takich narzędzi jak Docker Network, Docker Port, czy też Docker Service.

Lista powodów, dla których powinieneś korzystać z dockera jako administrator

Wszystko, co do tej pory przeczytałeś, możemy sprowadzić do pięciu punktów. W nich wymieniam najważniejsze powody, dla których administrator systemowy powinien używać dockera.

 1.     Docker umożliwia łatwe wdrożenie i zarządzanie aplikacjami w jeden spójny, przewidywany sposób. Dzięki temu unikamy wielu błędów, przez co możemy poprawić wydajność i skupić się na innych czynnościach.

2.     Docker tworzy lekkie, izolowane środowisko, w którym uruchamia aplikację. Dzięki temu zyskujemy większe bezpieczeństwo oraz zmniejszamy zużycie zasobów.

3.     Docker jest mocno skalowalny, dlatego administrator uzyskuje narzędzie, dzięki któremu w bardzo szybki sposób, jest w stanie stworzyć nowe kontenery w celu zaspokojenia rosnących potrzeb.

4.     Docker posiada szereg gotowych narzędzi i funkcji, dzięki którym możesz monitorować, tworzyć własne sieci czy też odpowiednio przydzielać pamięć.

5.     Wszystko, co stworzysz w dockerze, możesz łatwo udostępnić. W związku z tym ułatwia on współpracę z innymi współpracownikami czy też z ogólnie rozumianą społecznością. W ten prosty sposób przyspieszysz rozwój oraz polepszysz jakość aplikacji.

Must have!

Jak zatem widzisz, korzystanie z Dockera przynosi administratorowi wiele korzyści.

Chcesz poznać Dockera i konteneryzację? Zapraszam na darmowe warsztaty:

https://asdevops.pl/s29/

To view or add a comment, sign in

Explore topics