StorageReview.com

Orkiestracja kontenerów i argumenty za zaawansowanym harmonogramowaniem

Enterprise   ◇  Pamięć masowa przedsiębiorstwa

Proces planowania kontenerów w ramach platformy orkiestracji kontenerów, takiej jak Kubernetes lub Docker SWARM, można opisać jako proste przydzielanie zasobów środowiska wykonawczego do obciążeń. W świecie, w którym zasoby są nieograniczone (lub przynajmniej wystarczające), a wszystkie obciążenia są równe, obecne systemy planowania kontenerów byłyby uważane za wystarczające. Jednak w realnym świecie informatyki korporacyjnej wiemy, że nie wszystkie obciążenia są równe, a większość organizacji ma ograniczenia zasobów. Co więcej, duże organizacje mają unikalne potrzeby i chcą uruchamiać swoje obciążenia w określony sposób, dlatego przedstawiamy uzasadnienie biznesowe dla zaawansowanego planowania.

Podczas eksperymentowania z kontenerami lub prowadzenia kilku małych projektów pilotażowych, harmonogramowanie kontenerów może być naprawdę proste. Jednak gdy wykraczamy poza trywialne przypadki użycia, harmonogramowanie kontenerów staje się znacznie bardziej złożone i stanowi niezwykle istotne wyzwanie.

W poniższych sekcjach omówiono bardziej szczegółowo inherentną złożoność i zilustrowano potrzebę wydajnego, zautomatyzowanego harmonogramowania kontenerów.

Środowiska kontenerowe są dynamiczne, a nie statyczne

Choć mogłoby się wydawać, że architektury oparte na usługach są statyczne i obejmują długotrwałe usługi, które praktycznie się nie zmieniają, jest to dalekie od prawdy. Ze względu na dynamiczną naturę komponentów, takich jak kontrolery replikacji i dynamiczne równoważenie obciążenia, liczba i charakter wykonywanych komponentów usług może zmieniać się wielokrotnie w ciągu dnia. Należy się spodziewać, że wymagania i warunki brzegowe, takie jak te wymienione poniżej, mogą ulec zmianie w dowolnym momencie. Zazwyczaj wymaga to zmiany w rozmieszczeniu obciążenia z powodu:

  • Awarie systemu i konieczność ponownego zaplanowania usługi lub części jej komponentów
  • Realokacja, dodawanie lub usuwanie zasobów, np. w środowisku chmurowym
  • Zapotrzebowanie i priorytet obciążeń pracą mogą się zmieniać, szczególnie w odniesieniu do innych obciążeń pracą, np. w zależności od pory dnia i pory dnia w zakresie zapotrzebowania.

Aktualizacje oprogramowania konkretnej usługi lub niektórych jej komponentów mogą również powodować dynamiczne zmiany w środowisku. Ponadto, obciążenia niezwiązane z usługami, bardziej przejściowe, mogą wymagać priorytetu i tworzyć ograniczenia zasobów. Obciążenia takie jak zadania wsadowe, praca interaktywna, kompilacje oprogramowania (np. uruchamiane za pośrednictwem struktur CI/CD) lub zadania zestawów testowych, również wynikające ze struktur CI/CD, mogą również powodować konflikty i konieczność ponownego zrównoważenia obciążeń.

Harmonogramowanie kontenerów jest bardzo złożone i nie jest proste

W przypadku kontenerów istnieje o wiele więcej (i znacznie mniejszych) ruchomych części niż w przypadku tradycyjnych, bardziej monolitycznych podejść do tworzenia aplikacji. Na przykład, komponenty aplikacji mikrousługowych charakteryzują się współzależnościami, zróżnicowanymi potrzebami i wykorzystują repliki komponentów usług, aby osiągnąć skalowalność. Istnieje również więcej zależności od warstw definiowanych programowo dla sieci i pamięci masowej. Każde zgłoszenie inżyniera może wywołać lawinę kroków kompilacji/wdrożenia/testowania, a zautomatyzowana orkiestracja zapewniająca gotowość i sprawność usług będzie tworzyć lub zamykać komponenty usług na żądanie. W przypadku zaangażowania DevOps istnieje więcej interesariuszy wpływających na operacje – każdy inżynier aplikacji i każdy pojedynczy krok programistyczny może bezpośrednio wpłynąć na operacje. Spójne i niezawodne świadczenie usług w oparciu o te ruchome elementy układanki staje się wyzwaniem, szczególnie w przypadku skalowania w górę i na szeroką skalę, przy wyższych stawkach usług i większej liczbie usług.

Harmonogramowanie kontenerów musi uwzględniać ograniczenia zasobów

Świat przetwarzania w chmurze stwarza iluzję nieograniczonej dostępności zasobów, ale te zasoby są często z natury ograniczone. Zazwyczaj ogranicza je budżet lub dostępność i moc obliczeniowa docelowych węzłów. Ograniczenia mogą również wynikać ze skalowalności obciążeń, a kompromisy między kosztami a korzyściami mogą ograniczyć zwrot ekonomiczny powyżej pewnego progu. Jeśli musisz wykonać więcej zadań, niż jesteś w stanie obsłużyć, planowanie staje się trudnym procesem decyzyjnym, w którym pojawiają się pytania: „kto wykonuje, a kto nie?”, „kto zaczyna, kto idzie dalej?” i „kto dostaje więcej, a kto mniej?”.

Potrzeba wydajnego i zautomatyzowanego planowania

Nie jest tajemnicą, że kontenery są wdrażane w rekordowym tempie i chociaż większość organizacji wciąż znajduje się w fazie pilotażowej, rozwojowej lub testowej, to w miarę jak wdrożenia docierają do etapu produkcji, a ostatecznie do etapu skalowania, ograniczenia wymuszą konieczność korzystania z zaawansowanych i zautomatyzowanych narzędzi do planowania.

  • Największym wyzwaniem w orkiestracji kontenerów jest automatyzacja podejmowania decyzji w celu poradzenia sobie z dowolną kombinacją wyzwań, takich jak ograniczenia zasobów, złożone przypadki użycia kontenerów lub dynamicznie zmieniające się środowiska i warunki brzegowe
  • Automatyczne planowanie wymaga skutecznych zasad i ich efektywnego wdrożenia
  • Bez wydajnego i zautomatyzowanego planowania będziesz zmuszony pogodzić się z marnotrawstwem zasobów lub będziesz musiał stale wprowadzać zmiany ręcznie, nigdy nie osiągając optymalnego wyniku.

Bez zaawansowanego planowania marnowałbyś czas, wysiłek i pieniądze. Im bardziej dynamiczne staje się Twoje środowisko (np. chmura) i im bardziej zaawansowane są Twoje przypadki użycia, tym więcej marnujesz.

Przedstawiamy Navops Command – supermoce dla Kubermetes

Inżynierowie Google zaangażowani w tworzenie Kubernetesa już na samym początku dostrzegli potrzebę zaawansowanego harmonogramowania i uwzględnili w swojej modułowej architekturze Kubernetes możliwość łatwego zastąpienia harmonogramu Kubernetes lub równoległego wykorzystania wielu harmonogramów. Univa posiada wieloletnie doświadczenie w harmonogramowaniu w zastosowaniach obliczeń o wysokiej wydajności i technicznych. Opierając się na naszym sprawdzonym doświadczeniu, zaprojektowaliśmy funkcję harmonogramowania Navops Command tak, aby była zgodna z Kubernetesem, z eleganckim, zorientowanym na kontenery interfejsem internetowym, a także interfejsami API i interfejsem wiersza poleceń. System wprowadza do świata kontenerów koncepcje takie jak proporcjonalne zarządzanie współdzieleniem zasobów, limity zasobów, listy kontroli dostępu i przeplot zasobów. Odwiedź stronę www.navops.io/command.html , aby dowiedzieć się więcej i ubiegać się o wczesny dostęp.

Autor: Fritz Ferstl, dyrektor ds. technologii i rozwoju biznesu, region EMEA, Univa

Fritz wnosi ponad 23-letnie doświadczenie jako wiodący ekspert w dziedzinie rozproszonego zarządzania obciążeniami i zasobami. Jego doświadczenie obejmuje przetwarzanie siatkowe, przetwarzanie w chmurze, obliczenia o wysokiej wydajności, wirtualizację i optymalizację kontenerów. Jako dyrektor techniczny Univa Corporation, definiuje kierunek rozwoju produktów i technologii Univa, wspierając setki dużych klientów korporacyjnych ze wszystkich branż i odpowiadając za ich potrzeby w zakresie zarządzania obciążeniami. Wśród tych klientów znajduje się wiele największych światowych środowisk obliczeniowych.  

Przejście na środowisko chmurowe i unikanie turbulencji

Omów tę historię

Zapisz się do newslettera StorageReview

Skontaktuj się z StorageReview

Biuletyn | YouTube | Podcast iTunes / Spotify | Instagram | Twitter | TikTok | Kanał RSS

Autor-gość