Kilka słów o Dockerze, konteneryzacji i korzyściach płynących z ich wdrożenia

Jesteś deweloperem, testerem lub inżynierem DevOps? Chcesz stworzyć aplikację, spakować ją i uruchomić w innym miejscu? Użyj Dockera. Brzmi prosto, ale fascynujące jest to, że kod który programista stworzy w swoim laptopie będzie dokładnie w ten sam sposób działać na rozwiązaniach IaaS i PaaS takich jak Amazon Web Services. Robi wrażenie?

Docker to otwarta platforma dla programistów, administratorów i testerów oprogramowania zajmujących się tworzeniem, wdrażaniem i uruchamianiem aplikacji rozproszonych, czyli zbudowanych z różnych niezależnych elementów. Docker jest określany jako narzędzie, za pomocą którego można umieścić program oraz biblioteki przez niego wymagane, w lekkim, przenośnym, wirtualnym kontenerze, dzięki temu można uruchomić go na prawie każdym serwerze z systemem Linux.

Docker sprawia, że wykorzystanie konteneryzacji do prototypowania, tworzenia, uruchamiania i działania aplikacji staje się dużo łatwiejsze i zapewnia jej działanie w różnych środowiskach. Docker działa w pewnym sensie jak wirtualizacja, dzięki izolowaniu zasobów z pominięciem konieczności tworzenia wirtualnego systemu operacyjnego – na jednym systemie operacyjnym może działać bardzo dużo kontenerów. Ogromną wartością tej technologii jest jej otwarte źródło, co oznacza, że każdy może ją współtworzyć poprzez chociażby dostosowywanie go do potrzeb swojego własnego środowiska. Ze względu na mniejszy narzut konteneryzacji aplikacje działają często szybciej niż w środowisku wirtualnym.

Docker znacznie ułatwia DevOps i niweluje niespójności środowiskowe, co przy skomplikowanych aplikacjach daje dodatkowe korzyści:

  • ujednolicenie środowiska deweloperskiego, testowego (QA, UAT) i produkcyjnego
  • używanie tych samych narzędzi
  • procesy testowania: Continous Integration i Continous Development
  • skrócenie czasu pomiędzy wydaniami (release’ami)
  • zmniejszenie liczby nieudanych wdrożeń
  • szybsze przywracanie systemu po awarii

Rozwiązanie Docker charakteryzuje się czterema następującymi cechami:

Lekkość

Odrębne kontenery działające na pojedynczej maszynie korzystają z tego samego jądra systemu operacyjnego, więc mogą rozpocząć pracę natychmiast i w bardziej wydajny sposób wykorzystywać RAM. Obrazy stworzone są z warstwowych systemów plików, w związku z tym mogą współdzielić niektóre pliki czyniąc wykorzystanie dysków i pobieranie obrazów znacznie szybszym i wydajnym.

Otwarte źródła

Konteneryzacja jest projektem otwartym, kierującym się standardami oprogramowania otwartego, dzięki temu Docker działa na większości dystrybucji systemów operacyjnych Linux oraz Microsoft i jest wspierany przez większość producentów infrastruktury. Poza tym jest rozwijany przez ogromną grupę członków społeczności (1600 + kontrybutorów i 50 000 + zewnętrznych projektów wykorzystujących Dockera) dzięki czemu jest bardzo dynamicznie rozwijany i cały czas ulepszany.

Bezpieczeństwo

Kontenery oddzielają aplikacje od siebie oraz infrastruktury, na której działają zapewniając dodatkową warstwę ochronną dla aplikacji. O ile prawdą jest, że Docker jest technologią młodą i zawiera wzwiązku z tym więcej błędów, z drugiej strony ogromna liczba deweloperów pracujących nad i z Dokerem pozwala je bardzo szybko wykryć i wyeliminować.

Zasada DRY (Don’t Repeat Yourself)

Pracujący z Dockerem mają do dyspozycji gotowe do pobrania „szkielety”, powstające wg. tzw best practices, dlatego też programiści nie muszą projektować infrastruktury niskopoziomowo. Można zdać się na ludzi, którzy tworzą obrazy, gdyż znają lepiej dane rozwiązanie.
Dostępne są regularne aktualizacje związane z bezpieczeństwem. Proces releasu nowej aplikacji polega na wgraniu nowego kontenera. Obraz kontenera jest de facto aplikacją, wa więc aktualizacja to podmiana kontenera – aplikacji. Wiele środowisk developerskich nie jest w stanie monitorować i aktualizować używanych komponentów i bibliotek, w przypadku Dockera aktualizacja “przychodzi” wraz z kontenerem (o ile się go aktualizuje :)).

Na zakończenie

Idea tworzenia oprogramowania z wykorzystaniem konteneryzacji umożliwia też bardzo łatwe dzielenie się tworzonym kodem z innymi programistami i specjalistami DevOps, co znacznie przyśpiesza wdrażanie aplikacji.
LinuxPolska, jest obecnie jedynym w regionie Partnerem firmy Docker. Jeśli jesteście Państwo zainteresowani technologią konteneryzacji, zapraszamy na bezpłatny webinar oraz więcej informacji na naszej stronie Linux Polska Docker

Tags

Dodaj komentarz

avatar
2000
  Subscribe  
Powiadom o
top