Kontenery jako usługa (CaaS) — co to takiego?

Autor: IBM Services

Kontenery jako usługa (CaaS) to model usługi chmurowej umożliwiający użytkownikom wgrywanie, organizowanie, uruchamianie, zatrzymywanie, skalowanie kontenerów, aplikacji i klastrów oraz zarządzanie nimi na różne inne sposoby. Stwarza warunki do realizacji tych procesów w oparciu o wirtualizację w kontenerach, aplikacyjny interfejs programistyczny (API) lub interfejs do portalu WWW. CaaS pomaga użytkownikom konstruować bogate w bezpieczeństwo, skalowalne aplikacje poprzez lokalne centra przetwarzania danych lub chmurę. W modelu tym kontenery i klastry wykorzystywane są jako usługa i wdrażane w chmurze lub w lokalnych centrach przetwarzania danych.

Dlaczego model CaaS jest ważny?

Jako model o szerokim zastosowaniu, CaaS pomaga twórcom oprogramowania usprawnić proces wdrażania kontenerów i aplikacji na pełną skalę. CaaS jest rozwiązaniem niezwykle cennym dla działów IT, ponieważ udostępnia usługę wdrażania w kontenerach objętą nadzorem w bezpiecznym środowisku. Model CaaS pomaga przedsiębiorstwom w uproszczeniu zarządzania kontenerami w ramach ich infrastruktur zdefiniowanych programowo.

Podobnie jak w przypadku innych usług obliczeniowych w chmurze, użytkownicy wybierają tylko te zasoby CaaS, których potrzebują, i tylko za nie płacą. Wśród przykładów zasobów CaaS wymienić można instancje obliczeniowe, funkcje planowania i równoważenie obciążenia.

W erze upowszechnienia usług przetwarzania w chmurze CaaS uznaje się za podzbiór modelu infrastruktury jako usługi (IaaS) i lokuje gdzieś między IaaS a platformą jako usługą (PaaS). W modelu CaaS podstawowym zasobem jest kontener, a nie — jak w środowiskach IaaS — maszyna wirtualna lub serwer fizyczny.

Kluczową cechą technologii CaaS jest harmonizacja, która automatyzuje najważniejsze funkcje informatyczne. Jako przykłady platform harmonizacji CaaS wskazać można Google Kubernetes i Docker Swarm. Do dostawców usług CaaS w chmurze publicznej należą: IBM, Amazon Web Services (AWS) i Google.

Dlaczego kontenery są ważne?

Korzyści z zastosowania modelu CaaS i technologii kontenerowej są odczuwalne dla klientów korporacyjnych ze wszystkich branż. Kontenery przynoszą wzrost efektywności i umożliwiają szybkie wdrażanie innowacyjnych rozwiązań z dziedziny modernizacji aplikacji, a także rozwiązań wdrażanych bezpośrednio w chmurze z zastosowaniem mikrousług. Konteneryzacja pomaga takim klientom w szybkim wydawaniu gotowego oprogramowania i sprzyja przenośności między środowiskami hybrydowymi i wielochmurowymi, a także przyczynia się do obniżenia kosztów infrastruktury, licencji na oprogramowanie i kosztów operacyjnych.  

Oto niektóre z korzyści, jakie klienci odnoszą w związku z używaniem kontenerów:

  • Przenośność: Aplikacja utworzona w kontenerze jest kompletna — ma wszystko, czego potrzebuje do działania, w tym komponenty zależne i pliki konfiguracyjne. Przenośność pozwala użytkownikom końcowym na niezawodne uruchamianie aplikacji w różnych środowiskach oraz w chmurach publicznych lub prywatnych. Z perspektywy przedsiębiorstw przenośność oznacza dużą elastyczność, przyspieszenie procesu tworzenia oprogramowania i ułatwioną zmianę dostawców lub środowisk chmurowych.
  • Wysoka efektywność i redukcja kosztów: Kontenery nie potrzebują odrębnego systemu operacyjnego, dlatego są mniej zasobochłonne niż maszyny wirtualne. Często kontenerowi do działania wystarczy tylko kilkadziesiąt megabajtów pamięci, a na jednym serwerze — w miejsce jednej maszyny wirtualnej — można uruchomić kilka kontenerów. Ta wysoka efektywność pomaga w ograniczeniu kosztów centrum przetwarzania danych. Kontenery umożliwiają również ograniczenie kosztów serwerów fizycznych, ponieważ osiągają wyższy poziom wykorzystania bazowego sprzętu i wymagają mniej zasobów sprzętowych.

Kontenery nie wchodzą w interakcje z innymi kontenerami na tych samych serwerach i są od nich w pewnym stopniu odizolowane, choć korzystają z tych samych zasobów. Jeśli aplikacja ulegnie awarii w jednym z kontenerów, pozostałe kontenery nadal mogą jej używać bez żadnych problemów technicznych.

  • Bezpieczeństwo: Separacja między kontenerami jest jednocześnie czynnikiem minimalizującym ryzyko. Niekorzystne skutki naruszenia zabezpieczeń jednej aplikacji nie rozprzestrzenią się na pozostałe kontenery.

Ponadto, ponieważ procesy aplikacyjne w kontenerach są odseparowane od systemu operacyjnego i nie wymagają do działania szczególnego oprogramowania, zarządzanie systemem hosta jest prostsze. Ta cecha umożliwia szybkie wdrażanie aktualizacji i poprawek zabezpieczeń.    

  • Szybkość: Uruchomienie, utworzenie, zreplikowanie i likwidacja kontenera to kwestia sekund, ponieważ kontenery nie potrzebują systemu operacyjnego. Cecha ta przyspiesza również tworzenie oprogramowania, udostępnianie gotowego oprogramowania i procesy operacyjne, a także upraszcza, ułatwia i przyspiesza wydawanie nowych wersji lub nowego oprogramowania. Szybkość przekłada się na jakość doświadczenia klienta, ponieważ przedsiębiorstwa i programiści mogą szybko reagować na błędy i uwzględniać nowe funkcje potrzebne klientom.
  • Skalowanie: Kontenery są skalowalne poziomo, zatem użytkownicy końcowi mogą wdrożyć wiele identycznych kontenerów w tym samym klastrze, skalując swoje środowisko wszerz. Dzięki inteligentnemu skalowaniu i uruchamianiu tylko kontenerów potrzebnych w danej chwili można radykalnie obniżyć koszty i zwiększyć zwrot z inwestycji. 
  • Usprawnione tworzenie oprogramowania: Efektywny i wydajny potok tworzenia oprogramowania jest ważną zaletą infrastruktury kontenerowej. Ponieważ aplikacje mogą w kontenerach działać tak szybko, jak lokalnie, wyeliminowane są różnice między środowiskami. To z kolei przekłada się na wzmocnienie procesów testowania i debugowania, czyniąc je mniej skomplikowanymi i czasochłonnymi. Ta same cecha jest przydatna przy aktualizacji aplikacji, ponieważ programista musi jedynie zmodyfikować plik konfiguracyjny, a następnie wygenerować nowe kontenery i usunąć poprzednie — cały proces powinien zająć dosłownie kilka chwil. 

Zarządzane usługi kontenerowe i stosy kontenerów w chmurze

Klienci korporacyjni zainteresowani wzmocnieniem swojej działalności z wykorzystaniem kontenerów muszą wybrać jedną z dwóch opcji:

  1. platformę CaaS i wdrożenie w chmurze publicznej lub na lokalnej platformie infrastrukturalnej;

  2. zarządzaną usługę kontenerową świadczoną przez Google, Amazon lub Microsoft Azure — jednego z trzech najpopularniejszych dostawców chmur publicznych.

Jednak żadna z tych opcji nie ogranicza swobody późniejszej zmiany dostawcy. Ponieważ fundacja Cloud Native Computing Foundation (CNCF), będąca efektem współpracy firmy Google i Linux Foundation, uruchomiła program certyfikacji Kubernetes, wszyscy dostawcy przestrzegają tego samego standardu przenośności i zgodności kontenerów między platformami.   

Zanim klient korporacyjny wybierze pomiędzy zarządzaną platformą kontenerową a wdrożeniem lokalnym, powinien odpowiedzieć sobie na kilka pytań:

  • Czy kontener, który ma być używany, wymaga wdrożenia lokalnego, czy można go wdrożyć w chmurze publicznej?
  • Czy firmowy dział IT ma kompetencje potrzebne do zaprojektowania i wdrożenia środowiska Kubernetes oraz administrowania nim? Jakie są potrzeby szkoleniowe?
  • Na której platformie chmury publicznej mają być wdrażane kontenery? Na przykład Google, AWS lub Azure.
  • Czy korzystanie ze współużytkowanej płaszczyzny sterowania Kubernetes z wieloma podmiotami użytkującymi ma jakieś implikacje?

Jeśli przedsiębiorstwo jest jeszcze na etapie eksperymentów z kontenerami, najlepszym wyborem mogą być zarządzane usługi kontenerowe. Zarządzane usługi kontenerowe są dobrym punktem wyjścia, który nie wymaga menedżera klastrów, udostępniania zasobów ani wdrożenia minimalnej platformy. Dużą zaletą zarządzanych usług kontenerowych jest ich przydatność do początkowego testowania wdrożenia kontenerów i możliwość późniejszego dostosowania procesów programistycznych i operacyjnych.

Jeśli przedsiębiorstwo jest już na bardziej zaawansowanym etapie wdrożenia kontenerów w środowisku Kubernetes lub AWS albo na platformie lokalnej, można zdecydować się na własne rozwiązanie CaaS. Własna platforma CaaS może być wyposażona w bogatszy zestaw funkcji, w tym środowiska i usługi potrzebne do realizacji systemu klasy produkcyjnej.

Rosnące znaczenie Kubernetes

 

Wojnę między standardami harmonizacji kontenerów, przyrównywaną do stoczonej przed laty walki między standardami Betamax i VHS, przewidywano już w 4. kwartale 2017 r. Rozstrzygnięcie nastąpiło przed 2. kwartałem 2018 r. Zwycięzcą okazało się rozwiązanie Google Kubernetes Engine, obecnie znane po prostu jako Kubernetes. Jednoznaczne zwycięstwo jednego ze standardów skłoniło dostawców i użytkowników do zintensyfikowania prac nad rozwojem i doskonaleniem wdrożeń dla środowiska Kubernetes.

Udostępnienie zarządzanych usług Kubernetes i hybrydowego stosu kontenerowego sprzyjało upowszechnieniu się tej technologii. Ponieważ to właśnie platforma GKE przetarła szlak dla zarządzanych usług kontenerowych, zainteresowanie technologią Kubernetes zawsze było większe niż konkurencyjnymi usługami kontenerowymi, AWS i Azure. Pojawienie się w połowie 2018 roku usług Amazon Elastic Container Service for Kubernetes (Amazon EKS) i Azure Kubernetes Service (AKS) ugruntowało dominującą pozycję GKE.

Obejrzyj wideo

Kubernetes (K8s) to system harmonizacji kontenerów służący do automatyzacji wdrażania i skalowania aplikacji oraz zarządzania nimi. Będąc rozwiązaniem pierwotnie zaprojektowanym przez firmę Google i przekształconym w Open Source w roku 2014, technologia Kubernetes znajduje się obecnie pod opieką fundacji CNCF. W serwisie internetowym Kubernetes system opisano jako „przenośną, rozszerzalną platformę Open Source służącą do zarządzania konteneryzowanymi obciążeniami i usługami, która usprawnia zarówno deklaratywną konfigurację, jak i automatyzację”.

Kubernetes funkcjonuje w istocie jako trzy główne platformy:

  • Kontenery
  • Mikrousługi
  • Przenośna chmura

Jako zorientowane na kontenery środowisko zarządzania Kubernetes koordynuje infrastrukturę obliczeniową, sieciową i pamięci masowe na rzecz obciążeń użytkowników. Kubernetes charakteryzuje się tą samą łatwością używania, co PaaS, oraz swobodą kształtowania infrastruktury, co IaaS, oferując jednocześnie przenośność między dostawcami infrastruktury.   

Wspólna droga Kubernetes, IBM i Red Hat ku rozwiązaniom otwartym

Od ponad dwudziestu lat IBM i Red Hat wspólnie eksplorują coraz to nowe możliwości. Jako jeden z pierwszych promotorów systemu Linux, IBM współpracował z Red Hat i pomagał w opracowywaniu i wspieraniu platformy Linux klasy korporacyjnej. Ostatnimi czasy ta współpraca pomogła w upowszechnieniu technologii Kubernetes i chmur hybrydowych wśród szerokiego grona klientów. Kubernetes jest także jednym z fundamentów wspólnej strategii chmury hybrydowej IBM i Red Hat.

Te innowacje stały się kluczowymi składnikami technicznymi działalności IBM w sektorze chmur hybrydowych, która warta jest obecnie USD 19 miliardów. Po finalizacji przejęcia, oczekiwanej z końcem 2019 roku, Red Hat stanie się najnowszą odrębną jednostką w zespole IBM zajmującym się chmurami hybrydowymi.  

Kubernetes, IBM i Hertz

Firma Hertz Corporation, znana po prostu jako Hertz, świętowała w 2018 roku setną rocznicę powstania. By raz na zawsze wyeliminować problemy stwarzane przez starsze technologie, firma musiała usprawnić swoją architekturę biznesowo-techniczną. Specjaliści firmy Hertz nawiązali współpracę z zespołem IBM Cloud Garage™ i opracowali architekturę Kubernetes, która pomogła firmie zbudować i wdrożyć oparte na mikrousługach aplikacje w chmurze IBM Cloud™ Private i usłudze IBM Cloud Container Service.

Dzięki współpracy z IBM Hertz zmodernizował swoje podstawowe systemy obsługujące kanały cyfrowe, rezerwacje, wybór stawek i inne funkcje, korzystając z elastycznych architektur kontenerów i mikrousług. Jako globalna firma prowadząca działalność na wielką skalę, Hertz musi dbać o wysoką dostępność i skalowalność swoich aplikacji, które po produkcyjnym wdrożeniu będą, jak się przewiduje, odbierać 1,5 miliarda połączeń i 30 milionów aktualizacji danych na dobę.

Kubernetes i oprogramowanie Open Source

Oprogramowanie Open Source wciąż zyskuje na znaczeniu w świecie IT. W opracowaniu działu IBM Services™ na temat rozwiązań wsparcia dla środowisk oprogramowania Open Source zauważono, że „96 procent aplikacji komercyjnych zawiera jakieś komponenty Open Source” (PDF, 3,9 MB)1.

Arturo Suarez to ważna figura w świecie oprogramowania Open Source. Suarez stworzył pierwszą komercyjną dystrybucję bezpłatnej i otwartej platformy oprogramowania do przetwarzania w chmurze, OpenStack. W wywiadzie z serwisem IT Biz Advisor przeprowadzonym w roku 2019 Suarez dzieli się swoimi doświadczeniami z technologią Kubernetes, zauważając, że „technologia Kubernetes wygrywa wyścig rozwiązań do harmonizacji kontenerów” i „ewoluuje jeszcze szybciej niż OpenStack (wydania pojawiają się co trzy miesiące), ma lepszy model nadzoru i bardziej korzystną krzywą upowszechnienia”2.  

IBM Cloud Kubernetes Service

W połowie maja 2018 r. i po strategicznej inwestycji IBM w technologię Kubernetes dotychczasowa nazwa usługi IBM Cloud Container Service została zmieniona na IBM Cloud Kubernetes Service. Ta nowa usługa w istocie dostępna była już od maja 2017 roku.

Jako zarządzana usługa kontenerowa do szybkiego udostępniania aplikacji IBM Cloud Kubernetes Service może współdziałać z IBM Watson®, łańcuchem bloków i innymi zaawansowanymi usługami. Oto niektóre z cech usługi IBM Cloud Kubernetes Service:

  • Inteligentne planowanie
  • Zdolność do samonaprawy
  • Skalowanie poziome
  • Wykrywanie usług
  • Równoważenie obciążenia
  • Zautomatyzowane wdrażanie i wycofywanie
  • Zarządzanie danymi szyfrującymi i konfiguracją

Obok zaawansowanych możliwości zbudowanych wokół intuicyjnych narzędzi do zarządzania klastrami, z opcją zaprojektowania własnego klastra, IBM Cloud Kubernetes Service oferuje także strategie zabezpieczania i separacji kontenerów oraz zintegrowane narzędzia operacyjne ułatwiające zachowanie spójności wdrożeń.

IBM Cloud Kubernetes Service obsługuje obecnie ponad 10 tysięcy zarządzanych płatnych klastrów produkcyjnych, a korzystają z niej tacy klienci, jak Think Research, Eurobits Technologies i The Weather Company, firma należąca do IBM. Przedsiębiorstwa używają IBM Cloud Kubernetes Service do wykonywania następujących zadań:

  • tworzenia klastrów;
  • wdrażania skalowalnych aplikacji WWW na platformie Kubernetes;
  • analizowania dzienników i monitorowania stanu poprawności aplikacji Kubernetes;
  • wdrażania w trybie ciągłym oprogramowania na platformie Kubernetes.

Aby uzyskać więcej informacji o potencjalnych zastosowaniach usług kontenerowych, usług chmurowych i technologii Kubernetes w Twojej firmie, umów się na indywidualną bezpłatną konsultację z ekspertem IBM. Możesz także zarejestrować się w usłudze IBM Cloud Kubernetes Service i bezpłatnie budować oraz prowadzić prace programistyczne w środowisku IBM Cloud. IBM służy pomocą w bezpiecznym rozwoju działalności.

Pogłębione informacje o kontenerach Kubernetes

Źródła

  1. IBM Services. „Support solutions for your open source software environment”, IBM, 2019. https://www.ibm.com/downloads/cas/BWJWOJRD (PDF, 3,9 MB)
  2. Camilla Sharpe. „Q&A: How open source technology is shaking up the IT landscape”, IBM, 16 maja 2019. https://itbizadvisor.com/2019/05/qa-how-open-source-technology-is-shaking-up-the-it-landscape