5-8 minut

6 powodów, dla których warto budować aplikacje w oparciu o Kubernetes

Pandemia i związany z nią lockdown, który miał miejsce w większości krajów rozwiniętych, przyspieszyły trwającą już od dłuższego czasu transformację cyfrową przedsiębiorstw. W artykule przyjrzymy się, które z rozwiązań informatycznych i telekomunikacyjnych są najbardziej oczekiwane przez przedsiębiorstwa i w jakim stopniu nowe oraz rozwijające się technologie ICT zmienią funkcjonowanie biznesu.

Kubernetes, czyli ze starożytnej greki „sternik”, to platforma oprogramowania służąca do zarządzania zadaniami i serwisami. Ułatwia ona zarówno tworzenie jak i rozbudowę oprogramowania przedsiębiorstwa umożliwiając prostszą konfigurację i automatyzację zadań. Na ile rozwiązanie to przydatne jest przedsiębiorstwom? Czy Kubernetes to tylko nowa „zabawka” dla programistów i administratorów, czy jest to platforma rzeczywiście nieodzowna współcześnie w firmach? W tym artykule spróbujemy odpowiedzieć na te pytania.

Z TEGO ARTYKUŁU DOWIESZ SIĘ:

  1. DLA KOGO PRZEZNACZONE JEST ROZWIĄZANIE KUBERETES?
  2. W JAKI SPOSÓB ARCHITEKTURA MIKROSERWISOWA UŁATWIA ORGANIZACJĘ DZIAŁU ROZWOJU OPROGRAMOWANIA?
  3. JAK KUBERETES PRZYCZYNIA SIĘ DO OBNIŻANIA NAKŁADÓW NA INFRASTRUKTURĘ?
  4. W JAKI SPOSÓB KUBERETES WSPIERA SKALOWALNOŚĆ APLIKACJI?
  5. JAK ROZWIĄZANIE TO UŁATWIA MIGRACJĘ DO CHMURY ORAZ FUNKCJONOWANIE SERWISÓW W ŚRODOWISKU CHMURY?

Kubernetes wykorzystuje tzw. kontenery, działające w sposób zbliżony do maszyn wirtualnych, czyli środowisk umożliwiających wydzielenie części zasobów serwera na potrzeby konkretnych zadań. Kontenery różni od maszyn wirtualnych między innymi to, że współdzielą ten sam system operacyjny. Podobnie, jak maszyny wirtualne, kontenery dysponują własnym systemem plików i otrzymują swój udział w zasobach procesora i pamięci. To, co stanowi największą siłę kontenerów, to możliwość łatwego ich przenoszenia między wieloma środowiskami – pomiędzy chmurami i różnymi dystrybucjami systemu operacyjnego.

Od niedawna Kuberetes (K8s) dostępne jest w ramach Wirtualnego Centrum Danych (WCD) T‑Mobile. Usługa bazuje na technologii VMware i jest znaczącym udogodnieniem w budowie aplikacji m.in. w software house i firmach tworzących własne oprogramowanie. Z rozwiązania mogą skorzystać także e-commerce oraz całe spektrum przedsiębiorstw posiadających systemy wymagające zmiennych w czasie zasobów.

Popularność kontenerów i narzędzia open source Kubernetes rośnie, bo dają one większe możliwości środowiskom IT, a biznes dzięki nim może rozwijać się łatwiej i dynamiczniej. Przyjrzyjmy się najważniejszym korzyściom, jakie przynosi Kubernetes przedsiębiorstwom.

1. Przejście z monolitu do architektury mikroserwisowej

Kubernetes umożliwia tworzenie aplikacji na zasadzie tzw. mikroserwisów. Ułatwia organizację działu programistów na mniejsze zespoły, które koncentrują się na jednym, wybranym obszarze, zwanym mikroserwisem. Dzięki takiemu podejściu zespoły mogą być mniejsze, a przez to, bardziej zwinne. Każdemu z nich można przydzielić określoną funkcję. Interfejsy API łączące poszczególne części funkcjonalne mikroserwisów pozwalają ograniczyć komunikację między poszczególnymi składnikami oprogramowania, a zespoły mogą skoncentrować się na opracowywaniu, tworzeniu kodu, wdrażaniu i testowaniu nowych możliwości. Dzięki takiemu podejściu łatwiej jest skalować zadania zaczynając od dużych i schodząc do coraz bardziej wyspecjalizowanych. W efekcie, możliwa jest wydajna współpraca wielu małych zespołów i wyspecjalizowanych ekspertów, z których każdy przyczynia się do działania tysięcy maszyn w przedsiębiorstwie. Podejście takie sprawdzi się także w firmach o mniejszej skali działania, które dzięki mikroserwisom będą mogły się rozwijać.

Przykładem przejście od architektury monolitycznej do mikroserwisów jest Airbnb1. Przed wdrożeniem Kubernetes firma zmagała się z problemem polegającym na konieczności ciągłego skalowania rozwiązania. Dzięki wdrożeniu Kubernetes, Airbnb wspiera pracę ponad 1000 inżynierów oprogramowania jednocześnie konfigurujących i implementujących ponad 250 krytycznych usług. W rezultacie, Airbnb może obecnie wykonywać średnio ponad 500 wdrożeń nowych fragmentów oprogramowania dziennie.

2. Krótszy czas wprowadzenia oprogramowania/aplikacji na rynek

Lepsza i bardziej funkcjonalna współpraca zespołów przekłada się na wyższą efektywność pracy, co skutkuje korzyściami całego przedsiębiorstwa, dla którego oprogramowanie stanowić może istotną przewagę konkurencyjną. Kubernetes umożliwia zespołom IT wydajniejsze zarządzanie dużymi aplikacjami w wielu kontenerach. Obsługuje wykrywanie działania usług, pomaga kontenerom komunikować się ze sobą i ułatwia w korzystaniu z zasobów obliczeniowych różnych dostawców chmury, takich jak na przykład AWS czy Microsoft Azure.

Kolejnym przykładem firmy, która zdecydowała się na migrację do Kubernetes jest eBay. W momencie wdrożenia serwis obsługiwał dziennie około 300 miliardów zapytań i generował ogromną ilość danych, która przekraczała 500 petabajtów2. Systemy eBay musiały przenosić ogromne ilości informacji i zarządzać ruchem, pamiętając o płynnej obsłudze użytkowników, a jednocześnie zapewnić bezpieczne, stabilne i elastyczne środowisko. W 2018 roku firma ogłosiła, że jest w trakcie realizacji trzyletniego planu, który nazwali „re-platformingiem”. eBay dokonał zmiany platformy na Kubernetes, Docker i Apache Kafka. Jej celem była poprawa komfortu użytkowania i zwiększenie produktywności inżynierów oprogramowania oraz całkowita przebudowa infrastruktury centrum danych.

3. Optymalizacja kosztów IT

Kubernetes może pomóc obniżyć koszty infrastruktury, co dotyczy zwłaszcza firm działających na dużą skalę, ale także tych, które się rozwijają. Rozwiązanie to sprawia, że łatwiej jest skorzystać z architektury opartej na kontenerach optymalnie łącząc aplikacje z wykorzystaniem chmury i minimalizując inwestycje w sprzęt. Przed pojawieniem się rozwiązania Kubernetes administratorzy często zmuszeni byli do przeszacowywania potrzebnej infrastruktury. Ostrożne i konserwatywne podejście do rezerwy zasobów wynikało z obawy przed nieoczekiwanymi skokami zapotrzebowania na moc obliczeniową i przestrzeń na dyskach. Ręczne skalowanie aplikacji w kontenerach też było trudne i czasochłonne. Kubenetes inteligentnie planuje i szczelnie pakuje kontenery biorąc pod uwagę dostępne zasoby. Automatycznie skaluje również aplikację w celu spełnienia potrzeb biznesowych, odciążając od tych zadań programistów i administratorów, którzy mogą skupić się na innych, bardziej produktywnych zadaniach.

4. Wyższa skalowalność i dostępność

Sukces współczesnych aplikacji zależy nie tylko od ich funkcji, ale także od skalowalności. Nawet najbogatsza w możliwości aplikacja, jeżeli nie będzie się dobrze skalować, stanie się niewydajna w docelowej skali, a nawet całkowicie niedostępna. System orkiestracji Kubernetes jest krytycznym systemem zarządzania, który wspiera skalowanie i poprawia wydajność aplikacji. Biorąc pod uwagę zmienność zapotrzebowania na aplikację wynikającą z sezonowości lub nieoczekiwanych zdarzeń potrzebujemy rozwiązania, które pozwoli skalować aplikacje i ich infrastrukturę. Dzięki niemu nowe maszyny mogą być automatycznie uruchamiane wraz ze wzrostem zapotrzebowania. Infrastruktura powinna być także skalowana automatycznie w dół, gdy obciążenie spadnie. Kubernetes oferuje właśnie tę możliwość, skalując aplikację w górę, gdy użycie procesora przekracza zdefiniowany próg – na przykład 90 procent na bieżącej maszynie. A gdy obciążenie zmniejszy się może skalować aplikację w dół, optymalizując w ten sposób wykorzystanie infrastruktury. Automatyczne skalowanie Kubernetes nie ogranicza się tylko do metryk dotyczących infrastruktury, bo przydzielanie większych zasobów może nastąpić także po spełnieniu niestandardowych warunków, określonych przez biznes.

5. Ułatwienia w migracji do chmury

Pierwszym krokiem w kierunku architektury opartej na mikroserwisach jest zazwyczaj transfer aplikacji do Kubernetes działającego lokalnie. W tym przypadku przedsiębiorstwo będzie koncentrować się na zmianie platformy aplikacji na współpracującą z kontenerami i włączeniu ich w orkiestrację Kubernetes. Następnym krokiem może być przeniesienie do instancji Kubernetes w chmurze, po wyborze jednego z wielu dostawców chmury publicznej.

6. Elastyczność w stosowaniu wielu chmur (w tym chmury hybrydowej)

Jedną z największych zalet Kubernetes i kontenerów jest to, że pomagają one funkcjonować oprogramowaniu w środowisku chmury hybrydowej oraz wielu chmur (multicloud). Współczesne przedsiębiorstwa już działają w środowiskach wielochmurowych i zjawisko to będzie się nasilać w przyszłości. Kubernetes znacznie ułatwia uruchamianie dowolnej aplikacji w dowolnej usłudze chmury publicznej lub dowolnej kombinacji chmur publicznych i prywatnych. Pozwala to na elastyczne przydzielanie zasobów w  środowisku cloud i pomaga uniknąć uzależnienia od jednego dostawcy. W efekcie, podejście to ułatwia uzyskanie większego zwrotu z inwestycji, zarówno krótko, jak i długoterminowych.

Podsumowanie

Przypomnijmy najważniejsze informacje dotyczące rozwiązania Kubernetes:

  • Kubernetes wykorzystuje kontenery umożliwiając wydzielenie części zasobów serwera na potrzeby konkretnych zadań i ułatwia ich przenoszenie między wieloma środowiskami – pomiędzy chmurami i różnymi dystrybucjami systemu operacyjnego
  • Rozwiązanie pozwala na tworzenie aplikacji w postaci mikroserwisów. Ułatwia to organizację działu programistów i podział na zespoły. Mogą one być mniejsze, a przez to, bardziej zwinne
  • Dzięki Kubernetes łatwiej jest skorzystać z architektury opartej na kontenerach optymalnie łącząc aplikacje z wykorzystaniem chmury i optymalizując inwestycje w infrastrukturę
  • System orkiestracji Kubernetes wspiera skalowanie i poprawia wydajność aplikacji
  • Rozwiązanie pomaga funkcjonować oprogramowaniu przedsiębiorstwa w środowisku chmury hybrydowej oraz wielu chmur (multicloud)

1 https://qconlondon.com/london2019/presentation/develop-hundreds-kubernetes-services-scale-airbnb
2 https://www.ebayinc.com/stories/news/ebay-builds-own-servers-intends-to-open-source/

IaaS Wirtualne Centrum Danych

Ten artykuł dotyczy produktu

IaaS Wirtualne Centrum Danych

Przejdź do produktu

Data publikacji: 21.04.2021

Chcesz dostawać informacje o nowych wpisach?

Chcesz dostawać informacje o nowych wpisach?

Zostaw swój adres e-mail