Wyszukiwanie w witrynie

W jaki sposób plan transformacji branży IBM wykorzystuje sztuczną inteligencję, 5G i współpracę


Aplikacje mnożą się, złożoność chmury eksploduje, a Kubernetes dominuje jako podstawa wdrażania aplikacji w chmurze. Brzmi to jak zadanie optymalizacyjne dojrzałe do uczenia maszynowego, a StormForge podejmuje działania w tym kierunku.

Chmura stała się de facto standardem wdrażania aplikacji. Kubernetes stał się de facto standardem wdrażania aplikacji. Optymalne dostrajanie aplikacji wdrożonych na platformie Kubernetes jest ruchomym celem, a to oznacza, że aplikacje mogą osiągać gorsze wyniki lub wydawać za dużo. Czy ten problem można jakoś rozwiązać za pomocą automatyzacji?

To bardzo rozsądne pytanie, które zadawali sobie również inni. Ponieważ Kubernetes ewoluuje i staje się coraz bardziej złożony z każdą iteracją, a opcje wdrażania w chmurze mnożą się, dopracowanie wdrożenia i obsługi aplikacji staje się coraz trudniejsze. To zła wiadomość.

Dobrą wiadomością jest to, że dotarliśmy do punktu, w którym Kubernetes istnieje już od jakiegoś czasu, a mnóstwo aplikacji korzystało z niego przez cały okres jego istnienia. Oznacza to, że istnieje pewna ilość wiedzy -- i co najważniejsze, danych -- które zostały zgromadzone. To z kolei oznacza, że powinno być możliwe wykorzystanie uczenia maszynowego do optymalizacji wdrażania aplikacji na Kubernetes.

StormForge robi to od 2016 roku. Do tej pory skupiały się one na środowiskach przedwdrożeniowych. Na dzień dzisiejszy celują również w Kubernetes w środowisku produkcyjnym. Spotkaliśmy się z dyrektorem generalnym i założycielem Mattem Provo, aby omówić tajniki oferty StormForge.

Optymalizacja platformy Kubernetes za pomocą uczenia maszynowego

Kiedy Provo założył StormForge w 2016 roku po długim okresie pracy jako menedżer produktu w Apple, celem była optymalizacja zużycia energii elektrycznej w dużych urządzeniach HVAC i produkcyjnych przy użyciu uczenia maszynowego. Firma używała Dockera do swoich wdrożeń, a w pewnym momencie pod koniec 2018 roku podniosła i przeszła na Kubernetes. To właśnie wtedy znaleźli idealny przypadek użycia dla swojej podstawowej kompetencji, jak to ujął Provo.

Jeden zwrot, jedno przejęcie, 68 milionów dolarów finansowania i wielu klientów później, StormForge ogłasza dziś Optimize Live, najnowsze rozszerzenie swojej platformy. Platforma wykorzystuje uczenie maszynowe, aby inteligentnie i automatycznie poprawiać wydajność aplikacji i efektywność kosztową w środowiskach produkcyjnych natywnych dla chmury.

Pierwszą rzeczą, na którą należy zwrócić uwagę, jest to, że platforma StormForge robiła to już dla środowisk przedprodukcyjnych i nieprodukcyjnych. Chodzi o to, że użytkownicy określają parametry, pod kątem których chcą optymalizować, takie jak użycie procesora lub pamięci.

Następnie StormForge uruchamia różne wersje aplikacji i wraca do opcji konfiguracyjnych użytkownika w celu wdrożenia aplikacji. StormForge twierdzi, że zazwyczaj skutkuje to od 40% do 60% oszczędności kosztów i od 30% do 50% wzrostu wydajności.

Należy jednak pamiętać, że jest to problem z optymalizacją wielozadaniową. Oznacza to, że chociaż modele uczenia maszynowego StormForge będą starały się znaleźć rozwiązania, które zapewnią równowagę między różnymi wyznaczonymi celami, zazwyczaj nie będzie możliwe zoptymalizowanie ich wszystkich jednocześnie.

Im więcej parametrów do optymalizacji, tym większy problem. Zazwyczaj użytkownicy podają do 10 parametrów. To, co widzi StormForge, jak powiedział Provo, to kontinuum kosztów i wydajności.

W środowiskach produkcyjnych proces jest podobny, ale z pewnymi istotnymi różnicami. StormForge nazywa to obserwacyjną stroną platformy. Wykorzystywane są dane telemetryczne i obserwacyjne dzięki integracji z rozwiązaniami APM (Application Performance Monitoring), takimi jak Prometheus i Datadog.

Optimize Live następnie zapewnia rekomendacje w czasie zbliżonym do rzeczywistego, a użytkownicy mogą zdecydować się na ich ręczne zastosowanie lub skorzystanie z tego, co Provo nazwało "ustaw i zapomnij". Oznacza to, że platforma może zdecydować się na zastosowanie tych zaleceń, o ile spełnione są określone progi zdefiniowane przez użytkownika:

"Celem jest zapewnienie wystarczającej elastyczności i doświadczenia użytkownika, które pozwoli programiście samodzielnie określić rzeczy, na których mu zależy. To są cele, w których muszę się trzymać. A oto moje cele. I od tego momentu zaczyna działać uczenie maszynowe, które przejmuje kontrolę. Dostarczymy dziesiątki, jeśli nie setki opcji konfiguracji, które spełniają lub przekraczają te cele" - powiedział Provo.

Cienka granica z Kubernetesem w środowisku produkcyjnym

Istnieje bardzo cienka granica między uczeniem się i obserwowaniem na podstawie danych produkcyjnych, a dostrajaniem na żywo w produkcji, dodał Provo. Kiedy przekroczysz tę granicę, poziom ryzyka jest nie do opanowania i nie do utrzymania, a użytkownicy StormForge nie chcieliby tego - to była ich jednoznaczna odpowiedź. To, co użytkownicy mają do dyspozycji, to możliwość wyboru, gdzie jest ich tolerancja ryzyka i z czego czują się komfortowo z punktu widzenia automatyzacji.

W fazie przedprodukcyjnej różne opcje konfiguracji aplikacji są testowane obciążeniowo za pomocą oprogramowania stworzonego w tym celu. Użytkownicy mogą wprowadzić własne rozwiązanie do testowania wydajności, z którym StormForge się zintegruje, lub skorzystać z własnego rozwiązania do testowania wydajności StormForge, które zostało wprowadzone na pokład w wyniku przejęcia.

Optymalizacja wdrażania aplikacji na Kubernetes to cel wielozadaniowy Obraz: StormForge

Historycznie rzecz biorąc, był to największy wkład danych wejściowych StormForge do uczenia maszynowego, powiedział Provo. Początki nie były jednak łatwe. StormForge było bogate w talenty, ale ubogie w dane, jak to ujął Provo.

Aby uruchomić swoje uczenie maszynowe, StormForge zaoferował swoim pierwszym dużym klientom bardzo dobre oferty, w zamian za prawo do korzystania z danych z ich przypadków użycia. To zadziałało dobrze, a StormForge zbudował teraz swoją własność intelektualną wokół uczenia maszynowego dla problemów z optymalizacją wielu celów.

A dokładniej rzecz ujmując, wokół optymalizacji Kubernetesa. Jak zauważył Provo, podstawa jest już dostępna, a wszystko, czego potrzeba, aby dostroić się do każdego konkretnego przypadku użycia i każdego nowego parametru, to kilka minut, bez konieczności dodatkowego ręcznego dostosowywania.

Trzeba się trochę nauczyć, ale ogólnie rzecz biorąc, StormForge uważa to za dobrą rzecz. Im więcej scenariuszy i sytuacji może napotkać platforma, tym lepsza może być wydajność.

W scenariuszu produkcyjnym StormForge jest w pewnym sensie konkurencją dla samego Kubernetesa. Kubernetes ma możliwości automatycznego skalowania, bota w pionie i poziomie, z VPA (Vertical Pod Autoscaler) i HPA (Horizontal Pod Autoscaler).

StormForge współpracuje z VPA i planuje również współpracować z HPA, aby umożliwić to, co Provo nazwało dwukierunkowym inteligentnym skalowaniem. StormForge mierzy optymalizację i wartość dostarczaną w stosunku do tego, co zalecają VPA i HPA dla użytkownika w środowisku Kubernetes.

Nawet w scenariuszu produkcyjnym, jak twierdzi Provo, obserwują oszczędności kosztów. Nie tak wysokie, jak w przypadku opcji przedprodukcyjnych, ale nadal od 20% do 30% oszczędności kosztów i zazwyczaj 20% poprawa wydajności.

Provo i StormForge się tak daleko, że oferują gwarancję redukcji odpadów w chmurze. StormForge gwarantuje minimalną 30% redukcję kosztów zasobów aplikacji chmurowych Kubernetes. Jeśli oszczędności nie osiągną obiecanych 30%, Provo zapłaci różnicę na poczet rachunku za chmurę przez 1 miesiąc (do 50 000 USD na klienta) i przekaże równowartość tej kwoty na wybraną przez Ciebie ekologiczną organizację charytatywną.

Zapytany o to, Provo powiedział, że do tej pory ani razu nie musiał honorować tego zobowiązania. Ponieważ coraz więcej osób przenosi się do chmury i zużywa się coraz więcej zasobów, istnieje bezpośredni związek z odpadami z chmury, co jest również związane ze śladem węglowym. Provo uważa, że StormForge ma silną stronę zorientowaną na misje.

Powiązane artykuły