Kubernetes

Kubernetes Community

Czym jest Kubernetes i jak może to usprawnić pracę przedsiębiorstwa?

Kubernetes (lub jako skrót k8s) jest systemem do zarządzania aplikacjami działającymi na wielu komputerach jednocześnie. Jest to chmura aplikacji, w której dla programisty i użytkownika nie ma to znaczenia na którym komputerze dana aplikacja w danym momencie pracuje. A bardziej konkretnie, to nie instaluje się aplikacji w k8s w tradycyjnym rozumieniu tego pojęcia, lecz każda aplikacja działa w wirtualnym kontenerze, powszechnie znanym jako Docker Container. Czyli w odizolowanym otoczeniu, które zawiera już wszystkie dla niej niezbędne ustawienia i wymagane oprogramowanie. Kontener tworzy się z obrazu takiej instalacji na podstawie instrukcji tworzonej przez programistę. To pozwala na:

  • szybką i zautomatyzowaną reakcję w razie usterki serwera w sieci, czyli automatyczne przeniesienie kontenera z aplikacją w ciągu zaledwie kilku minut, w tym również baz danych na inny serwer.
  • powielanie kontenerów z aplikacją równolegle (Horizontal scaling). Wtedy zewnętrzny użytkownik nawet nie zauważy usterki serwera, lub nawet samej aplikacji.
  • tworzenie lokalnego programisty u programisty, które jest bardzo zbliżone środowiska do środowiska produkcyjnego w k8s. (wykluczenie efektu „u mnie działa”)
  • wykonywania zadań w tle na aktualnie najmniej obciążonych serwerach.
  • łatwy i szczegółowy monitoring aplikacji, analizę logów i tworzenia skutecznych scenariuszy alarmów, czy ustalenia priorytetów ulepszania oprogramowania.
  • niezależne aktualizacje infrastruktury i aplikacji – brak konieczności wstrzymania pracy aplikacji w razie wymiany lub konserwacji serwerów.

Kubernetes sprawdza się więc szczególnie dla tych przedsiębiorstw, które swoimi aplikacjami generują główną część obrotów i chcą zapewnić jak najwyższy poziom dostępności dla użytkowników, jednocześnie ograniczając koszty infrastruktury i rozwoju. Jedną z wielkich zalet Kubernetes jest właśnie koncepcja skalowalności, czyli możliwości używania wielu kopii aplikacji jednocześnie, aby dynamicznie rozłożyć ich pracę i zapotrzebowanie zasobów komputerowych na wiele urządzeń, zapewniając stabilność i wysoką dostępność świadczonych usług.

Dla programistów zaś daje zupełnie nowe możliwości szybszego wdrażania aktualizacji i w razie potrzeby szybkiego przywrócenia do poprzedniej wersji aplikacji. Tutaj należy zaznaczyć, że programiści, którzy nie mieli wcześniej styczności z Kubernetes, lub przynajmniej oprogramowaniem Docker, mogą mieć przez pewien czas trudności z zupełnie innym otoczeniem pracy i z nowymi zasadami. Przy wdrażaniu infrastruktury opartej na Kubernetes należy wtedy uwzględnić proces migracji, wątpliwości i zastrzeżeń. Te przechodzą jednak szybko, gdy drobne problemy nie prowadzą już do przestoju w rozwoju aplikacji, a testy odbywają się automatycznie na infrastrukturze produkcyjnej.

Kubernetes bardzo dobrze sprawdza się w „chmurze„. Pozwala skutecznie dopasować niezbędne zasoby do potrzeb i w ten sposób lepiej kontrolować wydatki na infrastrukturę.

Mamy wiele lat doświadczenia z Kubernetes. Tworzymy i zarządzamy wieloma różnymi rozwiązaniami w tym zakresie. Zapraszamy do rozmowy!

(Źródło zdjęcia: https://kubernetes.io/community/)