Google wprowadziło bezserwerową platformę obliczeniową Knative 1.0

Google zaprezentowało stabilną wersję platformy Knative 1.0, zaprojektowanej z myślą o stworzeniu bezserwerowej infrastruktury obliczeniowej wdrożonej na systemie izolacji kontenerów opartym na platformie Kubernetes. Oprócz Google w rozwój Knative zaangażowane są także takie firmy jak IBM, Red Hat, SAP i VMware. Wydanie Knative 1.0 oznaczało stabilizację API tworzenia aplikacji, które odtąd pozostanie niezmienione i pozostanie kompatybilne wstecz. Kod projektu napisany jest w Go i rozpowszechniany na licencji Apache 2.0.

Oferowany przez Knative model tworzenia aplikacji bezserwerowych zapewnia dodatkowy poziom abstrakcji dla systemów chmurowych, umożliwiając realizację funkcji w formie usług (FaaS, Functions as a service). Istotą modelu bezserwerowego jest to, że programista implementuje logikę na poziomie poszczególnych funkcji, nie martwiąc się o tworzenie i zarządzanie infrastrukturą do uruchamiania aplikacji oraz bez przywiązania do konkretnych aplikacji serwerowych i środowisk chmurowych niezbędnych do ich działania.

Rozwój odbywa się bez tworzenia monolitycznych aplikacji na poziomie przygotowania zestawu małych indywidualnych funkcji, z których każda zapewnia przetworzenie konkretnego zdarzenia i jest przeznaczona do pracy osobno bez odniesienia do środowiska (bezstanowy, wynik nie zależy od poprzedni stan i zawartość systemu plików). Funkcje uruchamiają się dopiero wtedy, gdy zajdzie taka potrzeba i po przetworzeniu zdarzenia mogą od razu zakończyć swoją pracę, tj. w przeciwieństwie do mikrousług, nie ma wymogu ciągłej obecności działających środowisk, które zużywają bezczynne zasoby.

Platforma Knative sama uruchamia kontenery w zależności od potrzeb, umieszcza w nich przygotowane funkcje, organizuje zarządzanie i zapewnia skalowanie środowisk niezbędnych do realizacji tych funkcji. Platformę można wdrożyć samodzielnie, bez konieczności łączenia się z zewnętrznymi usługami w chmurze. Do działania wymagany jest tylko Kubernetes. Dostępne są narzędzia do obsługi różnych popularnych frameworków, w tym Django, Ruby on Rails i Spring. Do sterowania działaniem platformy można wykorzystać interfejs wiersza poleceń.

Platforma zawiera dwa główne komponenty:

  • Serwowanie do uruchamiania kontenerów bezserwerowych w Kubernetesie z automatyczną konfiguracją komunikacji sieciowej, routingiem, śledzeniem zmian (tworzenie migawek hostowanego kodu i ustawień) oraz utrzymaniem wymaganego poziomu skalowania (aż do redukcji liczby podów do zera w przypadku braku aktywności) . Deweloper skupia się wyłącznie na logice, wszystkim co związane z wykonaniem zajmuje się platforma. Do organizowania interakcji sieciowych i żądań routingu można wykorzystać podsystemy sieciowe Ambassador, Contour, Kourier, Gloo i Istio. Obsługuje protokoły HTTP/2, gRPC i WebSockets.
  • Eventing to uniwersalny system do subskrypcji (dołączania handlerów), dostarczania i zarządzania zdarzeniami. Umożliwia tworzenie asynchronicznie działających aplikacji poprzez dołączanie zasobów obliczeniowych do strumieni danych przy użyciu modelu obiektowego i mechanizmu przetwarzania zdarzeń.

Źródło: opennet.ru

Dodaj komentarz