APLIKACJE W CHMURZE INFRASTRUKTURA

Kubernetes i technologie chmurowe, o których będzie głośno.

Platformy do zarządzania kontenerami, w szczególności Kubernetes, stają się filarem natywnych technologii w chmurze i katalizatorem ich rozwoju. Kubernetes jest projektem open source, nad którym opiekę sprawuje Cloud Native Computing Foundation (CNCF) i od czasu przekazania go tej organizacji zyskał w branży niespotykane zainteresowanie zdobywając praktycznie wszystkie środowiska chmury publicznej. Kubernetes szybko staje się systemem operacyjnym dla nowoczesnych, kontenerowych aplikacji.

Kubernetes, platforma do zarządzania kontenerami o otwartym kodzie źródłowym, staje się podstawą dla natywnych rozwiązań w chmurze. Od czasu przekazania do zarządzania przez Cloud Native Computing Foundation (CNCF) projekt zyskał niespotykane dotąd zainteresowanie ze strony branży. Praktycznie wszystkie duże środowiska chmury publicznej oferują wsparcie dla kontenerów zarządzanych przez Kubernetes. Popularyzacja tej platformy zarządzania kontenerami spowodowała wytworzenie się zupełnie odrębnego ekosystemu aplikacji dedykowanych dla tego środowiska.

I tak decydując się na wykorzystanie Kubernetes na potrzeby aplikacji o architekturze opartej na mikroserwisach, od razu warto rozpatrzeć wykorzystanie oprogramowania Istio. Jest ono przeznaczone do ułatwienia integracji mikroserwisów zapewniając między innymi: automatyczne równoważenie obciążenia, drobnoziarnistą kontrolę przepływów oraz odporność na uszkodzenia, a także bezpieczną komunikację między usługami mikroserwisów.

Zarządzanie instalacją i aktualizacjami złożonych środowisk kontenerowych warto zlecić rozwiązaniu Helm, które jako zarządca pakietów dla Kubernetes ma za zadanie pełnić funkcje analogiczne do poleceń zarządzających pakietami deb w Debianie i rpm w systemie RedHat Linux.

Dodatkowym wsparciem dla zarządcy mikroserwisów Istio może być oprogramowanie Prometheus, przeznaczone do monitorowania i zgłaszania alertów na podstawie reguł wyrażonych w zaawansowanym języku opisu reguł. Reguły mogą odnosić się zarówno do wynajdywania statycznych wyrażeń regularnych jak i na przykład zależności czasowych dotyczących strumieni przesyłanej informacji. Podstawowym celem rozwiązania Prometheus jest wsparcie administratorów aplikacji chmurowych w wykrywaniu źródeł problemów dotyczących niezawodności, w sytuacji ich wystąpienia.

Wykorzystując Kubernetes do uruchamiania złożonych aplikacji w środowisku chmurowym warto również przeanalizować możliwość zastosowania rozwiązania do ciągłej integracji i wdrażania Spinnaker, które zarządza aplikacjami oraz ich docelowym rozmieszczaniem w środowiskach chmurowych (w tym również w heterogenicznych środowiskach wielochmurowych). Przy czym jako aplikację rozumie się w tym kontekście usługę poddaną kontroli oprogramowania Spinnaker wraz z jej konfiguracją oraz logiczną infrastrukturą, na której usługa jest przewidziana do uruchamiania.

Koncepcja wykorzystywania chmury do uruchamiania usług określanych mianem bezserwerowych (ang. serverless), czyli inaczej koncepcja FaaS (ang. Function as a Service), w której wytwarzając rozwiązanie chmurowe można mieć komfort abstrahowania od konieczności definiowania konfiguracji logicznej infrastruktury rozmieszczania kontenerów czy maszyn wirtualnych, ma także swoją dedykowaną reprezentację na potrzeby środowiska Kubernetes. Takim dedykowanym rozwiązaniem FaaS dla środowiska Kubernetes jest Kubeless – jako oprogramowanie, które umożliwia definiowanie jako zasobów oferowanych przez Kubernetes właśnie pojedynczych funkcji. Warto wspomnieć, że Kubeless na poziomie interfejsu komendy jest zgodne z rozwiązaniem AWS Lambda, co dobrze wróży szybkiej adaptacji tego rozwiązania.

Więcej informacji można znaleźć tutaj.