Przejdź do treści
Wczytuję...

Konteneryzacja obok chmury obliczeniowej jest jednym z najbardziej interesujących pojęć ostatnich lat w branży IT. Konteneryzacja i orkiestracja to niezwykle dynamicznie rozwijające się dziedziny współczesnej informatyki, przyczynek do modernizacji systemów IT w przedsiębiorstwie.

Kontenery

Podstawowym zamysłem konteneryzacji jest umieszczenie aplikacji, jej procesów, konfiguracji i zależności w wirtualnej jednostce zwanej kontenerem. Z punktu widzenia aplikacji, kontenery te są odrębnymi i niezależnymi instancjami środowiska uruchomieniowego. Posiadają one własny wydzielony obszar pamięci RAM oraz dysku, jak również prywatny adres IP. Pomimo izolacji, kontenery mogą komunikować się między sobą w ramach ściśle zdefiniowanych kanałów wymiany informacji. Wykorzystanie maszyn wirtualnych prowadzi do spadku wydajności aplikacji w nich uruchomionych względem tychże aplikacji uruchomionych na fizycznym sprzęcie, tj. bez wykorzystania wirtualizacji. Konteneryzacja pozwala obniżyć ilość warstw systemowych poprzez usunięcie zduplikowanego systemu operacyjnego i hypervisora VM. Różnica w wydajności pomiędzy aplikacją kontenerową, a aplikacją działającą na fizycznym sprzęcie staje się stosunkowo niewielka, przy czym zachowana jest skalowalność, przenośność i separacja instancji.


Docker

Najbardziej znanym obecnie i najczęściej stosowanym narzędziem służącym do konteneryzacji jest Docker, który stał się wręcz synonimem słowa konteneryzacja. Docker jest otwartym źródłowym oprogramowaniem pozwalającym umieścić aplikację oraz jej zależności (biblioteki, pliki konfiguracyjne, lokalne bazy danych itd.) w niewielkim, przenośnym, wirtualnym kontenerze, który można uruchomić na serwerze z systemem operacyjnym Linux (także Windows i macOS poprzez dodatkowe oprogramowanie). Cecha charakterystyczną Dockera jest prostota i fakt, że odpowiada za pełny cykl życia kontenera – tworzenie, zarządzanie, usunięcie. Docker jest usługą działającą w modelu klient-serwer i wykorzystuje otwartą bibliotekę runc powstałą w ramach inicjatywy Open Container Initiative. Platforma czerpie swe możliwości wprost z funkcjonalności samego jądra Linux stanowiąc głębokie powiązanie z systemami linuksowymi.

Zalety stosowania kontenerów:

Mobilność

Aplikacje, konfiguracja, biblioteki są umieszczone w kontenerze, możliwość zapewnienia identycznego zachowania w czasie testów, na produkcji oraz bezproblemowe przenoszenie i powielanie kontenerów.

Wydajność

Usunięcie warstwy systemu operacyjnego, zapotrzebowanie na zasoby kontenerów jest zależne niemalże wyłącznie od zapotrzebowania aplikacji, która jest umieszczona w kontenerze, bez dodatkowego narzutu systemu operacyjnego.

Sprawność

Uruchomienie aplikacji umieszczonej w kontenerze jest równie szybkie, jak uruchomienie aplikacji natywnej. Dystrybucja kontenerów jest mniej wymagająca pod względem zasobów pamięci masowej.

Automatyzacja i orkiestracja

Zarządzanie jednym, kilkoma lub kilkunastoma kontenerami Dockera nie powinno stanowić problemu, o tyle sytuacja zmienia się, gdy ilość kontenerów wynosi setki lub tysiące. Są one rozproszone, dynamicznie tworzone i niszczone, konieczna jest automatyzacja działań, zapewnienie odpowiedniego workflow i skalowania. Orkiestracja to forma automatyzacji rozszerzonej do całych systemów i kompleksowych zadań z tym związanych. Polega na zarządzaniu wieloma grupami zautomatyzowanych zadań, realizacji złożonych procesów z wykorzystaniem wielu odrębnych systemów i usług. Celem jest optymalizacja, czyli skuteczne, sprawne wykonywanie powtarzalnych procesów oraz zagwarantowanie szybszego i bardziej dokładnego ich wykonania.


Kubernetes

Platforma zarządzania, automatyzacji i skalowania aplikacji kontenerowych. Kubernetes umożliwia pilnowanie (kontrolę) dużej liczby instancji skonteneryzowanych aplikacji, dodając także własną, zintegrowaną formę load-balancingu. Zapewnia zarówno automatyzację, jak i tworzenie zadań deklaratywnych. Pozwala umieszczać kontenery i woluminy w grupach – podach z własnymi adresami IP, te zaś w wirtualnych lub fizycznych maszynach – node’ach.


Ważniejsze funkcjonalności Kubernetes:

  • Load Balancing – umożliwia wystawianie kontenera zarówno poprzez nazwę DNS, jak i adres IP. W przypadku znacznego obciążenia danego kontenera, Kubernetes potrafi rozdystrybuować ruch pomiędzy instancjami,
  • Orkiestracja storage – automatyczne podłączanie lokalnych i chmurowych systemów storage’owych,
  • Zautomatyzowane wdrażanie i wycofywanie – możliwość automatycznego tworzenia, wprowadzenia zmian i niszczenia kontenerów,
  • Przydzielanie zasobów – Kubernetes pozwala na przydzielanie poszczególnym kontenerom i grup kontenerów zasobów sprzętowych, jak i automatyczne dostosowywanie tych przedziałów zgodnie z obciążeniem,
  • Automatyczna naprawa błędów – naprawa, wymiana lub usuwanie kontenerów, które nie przechodzą ustawionych przez administratora testów poprawnego działania,
  • Bezpieczeństwo – przechowywanie i zarządzanie hasłami, tokenami Oauth i kluczami SSH za pomocą tzw. secrets.

Rozwiązanie RedHat OpenShift oferuje unikalne właściwości, spójną podstawę chmury hybrydowej do tworzenia i skalowania aplikacji kontenerowych.

To zaawansowana platforma kontenerowa, która obsługuje orkiestrację i funkcje scentralizowanego zarządzania, takie jak monitorowanie, klastrowanie, load balancing, rejestrowanie. Już ponad 2000 + klientów, którzy dostarczają krytyczne aplikacje biznesowe dla swoich klientów korzysta z tego rozwiązania. Red Hat OpenShift jest objęty 9-letnim cyklem pomocy technicznej dla przedsiębiorstw, prowadzonym przez czołowych współpracowników Kubernetes.

Chętnie pomożemy Ci w zakresie:

Jeżeli nie wiesz od czego zacząć, szukasz wsparcia w zakresie modernizacji systemów, nowoczesnej architektury integracyjnej, architektury aplikacyjnej wystarczy, że skontaktujesz się z nami.

Opracowaniu projektu nowoczesnej architektury aplikacyjnej

Implementacji platformy konteneryzacji oraz integracji

Instalacji, konfiguracji i utrzymaniu platformy RedHat OpenSchift

Modernizacji systemów IT przygotowaniu do chmury hybrydowej