czwartek, 20 stycznia, 2022
TECHNOLOGIAModel serverless wyzwoli cyfrowe moce firm. O ile dobrze zrozumieją jego ograniczenia

Model serverless wyzwoli cyfrowe moce firm. O ile dobrze zrozumieją jego ograniczenia

-

Jak uniknąć pułapek architektury serverless, podpowiada Lucas Merdinian, menedżer produktu Serverless w Scaleway

tłumaczenia biuro tłumaczeń 123tlumacz.pl

Model serverless wyzwoli cyfrowe moce firm. O ile dobrze zrozumieją jego ograniczenia

  • Firma badawcza Gartner przewiduje, że połowa przedsiębiorstw na całym świecie wdroży „bezserwerowy” (ang. serverless) model działania do 2025 roku; obecnie korzysta z niego zaledwie 20% firm
  • Serverless computing oznacza, że deweloperzy nie muszą zarządzać serwerami, ponieważ procesy są obsługiwane przez dostawcę chmury – od aktualizacji systemu, poprzez kontrolę dostępu i skalowanie, do redundancji serwerów
  • Główne zalety to wysoka skalowalność, pay-as-you-go, elastyczność, brak konieczności zarządzania serwerami

Pojęcie Serverless dotyczy szerokiego spektrum produktów chmurowych, które zwalniają programistów i firmy z konieczności zarządzania infrastrukturą podczas wdrażania swoich usług, a nawet przechowywania danych. Jest to rozszerzenie koncepcji Platform-as-a-Service (platforma jako usługa), które umożliwia programistom skupienie się na kodowaniu, odsuwając na dalszy plan złożone kwestie związane z infrastrukturą dla aplikacji.

Dziś w większości przypadków rozwiązania PaaS wciąż wiążą aplikacje z serwerem, co ogranicza skalowalność projektów i generuje stałe koszty. Co prawda deweloperzy mogą korzystać z wirtualizowanych kontenerów, takich jak „Dynos”, które pozwalają po prostu wdrożyć i uruchomić kod, ale nie są one w stanie skalować się do zera, a autoskalowanie ma wysoki koszt.

– Serverless zapewnia wysoką skalowalność, rozliczenia w systemie pay-as-you-go, elastyczność, brak zarządzania serwerami… Może więc wydawać się idealnym rozwiązaniem do uruchomienia każdej aplikacji wykorzystującej mikroserwisy i Event Driven Architecture. Jednak jeśli chodzi o rzeczywiste konfigurowanie takich aplikacji, obraz nie jest jasny. Jak to ujął Dmitri Zimine w swoim artykule, „w zamkniętym systemie nie ma darmowego lunchu: aby uzyskać korzyść, trzeba coś poświęcić”. Programiści i społeczność Serverless musieli zbudować nowe narzędzia, procesy i praktyki, aby obejść ograniczenia dostawców, czy to w zakresie obsługi latencji czy wdrażania kilku funkcji w tym samym czasie – zauważa Lucas Merdinian, menedżer produktu Serverless w Scaleway

Choć Serverless okazuje się trafnym podejściem w bardzo wielu przypadkach, nie jest to jednak cudowny sposób na każdy możliwy problem ze świata IT. Oto najbardziej atrakcyjne cechy podejścia Serverless.

1. Brak zarządzania serwerami

Jak sugeruje nazwa, Serverless oznacza, że deweloperzy nie muszą zarządzać serwerami. Wszystko jest obsługiwane przez dostawcę chmury -od aktualizacji systemu poprzez kontrolę dostępu i skalowanie do redundancji serwerów. W rzeczywistości, za platformami Serverless wciąż stoją serwery, tyle że bezpiecznie współdzielone pomiędzy użytkownikami usług, tak by jedni użytkownicy nie przeszkadzali innym, lub -co gorsza – nie atakowali ich.

Brak zarządzania serwerami może jednak sprawić, że użytkownicy utracą kontrolę nad tym, gdzie i jak wykonywany jest ich kod, a co najważniejsze, jak i gdzie przetwarzane są ich dane. Według badania O’Reilly serverless survey 2019, obawy o bezpieczeństwo wydają się być najczęstszą barierą w przyjmowaniu przez organizacje architektury Serverless. Warto jednak pamiętać, że firmy i organizacje mogą wybrać takich dostawców, którzy wdrażają rozwiązania Serverless w odizolowanych, bezpiecznych środowiskach, gdzie użytkownicy mają zapewnioną wysoką dostępność.

2. Skalowalność

W ostatnich latach pojawiły się wydajne narzędzia open-source, które umożliwiają użytkownikom automatyczne skalowanie infrastruktury w oparciu o zmiany ruchu lub zużycia zasobów. Są to np. orkiestratory kontenerów jak Kubernetes lub mikro VM jak Firecracker. Bazując na tych rozwiązaniach, usługi Serverless są w stanie uruchomić zarówno kod jak i skonteneryzowane aplikacje, dostosowujące się do skoków ruchu. Usługi Serverless działają przede wszystkim dzięki mutualizacji i optymalizacji systemu i są w stanie skalować się od zera w czasie krótszym niż pół sekundy.

Skalowalność ta nie jest jednak ani nieograniczona, ani natychmiastowa. Mutualizacja serwerów i konteneryzacja pomagają to ukryć, utrzymując zawsze działające węzły, zdolne do szybkiego uruchamiania kontenerów, tak by system mógł sprostać zmieniającemu się zapotrzebowaniu.

Za Serverless wciąż jednak stoją serwery, które ogranicza ich fizyczna zdolność do uruchamiania bądź zatrzymywania się. Co więcej, łączenie zasobów zobowiązuje dostawców chmury, do zapewnienia takiego samego standardu usług wszystkim użytkownikom, którzy korzystają z tych samych węzłów. Wiąże się to z ustanowieniem ograniczeń i limitów, a one ograniczają zdolność aplikacji użytkowników do skalowania w nieskończoność.

3. Elastyczność

Możliwe jest ograniczenie koncepcji Serverless do modelu Function-as-a-Service (FaaS – funkcja jako usługa) poprzez dekompozycję każdej usługi na Funkcje. Wówczas Serverless przesuwa koncepcję mikroserwisów do punktu, w którym każda część systemu może być zarządzana niezależnie i może się niezależnie skalować. Przykładowo, nawet jeśli system logowania na stronie internetowej otrzymuje wiele żądań, nie będzie to miało wpływu na system powiadomień lub informacji o użytkownikach, które są mało używane. Serverless może być zatem postrzegany jako pochodna aplikacji opartych na mikroserwisach, gdzie każdy z nich może być podzielony na zestawy funkcji.

Oznacza to jednak, że architektura staje się coraz bardziej złożona, ponieważ każda pojedyncza funkcja lub usługa jest zredukowana do jednej prostej operacji. To z kolei może sprawić, że aplikacje Serverless będą źródłem licznych niekompatybilności. Niektórzy twierdzą, że ta wada jest w rzeczywistości sygnałem problemu kulturowego. Podejście Serverless wymaga bowiem zmiany w sposobie myślenia o aplikacjach: od budowania usług do konsumowania usług. Od kodu do konfiguracji.

4. Łatwość zarządzania

Jak wiele usług, Serverless działa zgodnie z filozofią plug and play: „wrzuć swój kod lub kontener, a my zajmiemy się resztą”. W przypadku kontenerów, odizolowane środowisko działające na rozwiązaniu serverless jest łatwiejsze w zarządzaniu niż na przykład klaster Kubernetes. Wybór dostawcy, który jest w stanie zaoferować API i interfejs użytkownika, może pomóc w jego wdrożeniu.

W ekosystemie każdego dostawcy, realizacja zależy od tego, czy użytkownik chce pozostać na domyślnej ścieżce, którą stworzył dostawca chmury, czy też ma specyficzne wymagania.

5. Efektywność kosztowa

Dzięki efektom skali i mutualizacji, dostawcy usług w chmurze oferują możliwość skalowania do zera, co oznacza, że działa tylko ich płaszczyzna kontrolna. W tym czasie aplikacje klientów są „uśpione” i gotowe do obsługi przychodzących żądań. Co więcej, optymalizując swoje aplikacje pod kątem Serverless, deweloperzy mogą budować systemy, których każda usługa skaluje się niezależnie. Ta efektywność kosztowa jest głównym powodem, dla którego firmy po raz pierwszy zaczęły przestawiać się na rozwiązania Serverless.

Efektywność kosztowa zależy jednak od konkretnej sytuacji. Serverless jest zalecany przy asynchronicznych lub łatwych do paralelizacji zadaniach z trudnymi do przewidzenia obciążeniami. Rozwiązania te okazują się więc bardzo atrakcyjnymi dla małych zespołów, które uruchamiają nowe usługi. Dotyczy to zwłaszcza zespołów, które nie mają środków na zarządzanie własną infrastrukturą i mogą sobie pozwolić na dodatkowy koszt Serverless. Cecha ta jest jednak mniej istotna dla bardziej doświadczonych firm, które mogą zdecydować się na inwestycję we własny system (używając na przykład Kubernetes). Organizacje powinny zatem być ostrożne: skoro produkty Serverless są rozliczane w modelu „pay-as-you-go”, koszty mogą okazać się trudne do przewidzenia, podobnie jak stopień wykorzystania usługi. Dlatego ważne jest, aby organizacja była w stanie monitorować koszty albo też ograniczyć zdolność funkcji do skalowania.

– Czy Serverless jest w takim razie wart zachodu? Z całą pewnością to więcej niż chwilowy trend. Serverless naprawdę zmienia sposób, w jaki uruchamiamy aplikacje, eliminując stres związany z zarządzaniem infrastrukturą. Ale ma to swoją cenę: zaufanie stronie trzeciej do wykonywania pracy w tle. Ważne jest, aby programiści rozważyli potencjalne przypadki zastosowania aplikacji, jak również środki i potrzeby organizacji, zanim podejmą decyzję o wdrożeniu usługi Serverless. Gdy model ten jest efektywnie wykorzystywany, możliwe jest tworzenie innowacyjnych usług wykorzystujących jego zalety, przy jednoczesnym zastosowaniu projektowania aplikacji dostosowanego do jego ograniczeń – podsumowuje Lucas Merdinian ze Scaleway.

NAJNOWSZE ARTYKUŁY

- Advertisment -

POLECAMY

Wzrost mediany maksymalnych zarobków w IT o 9,5 proc. do 18,4 tys. zł netto...

0
No Fluff Jobs – jedyny portal z ogłoszeniami IT dostępny w 6 krajach i 8 wersjach językowych – podsumowuje ubiegły rok w branży. Z przygotowanego przez firmę raportu „Rynek pracy IT w Polsce w...
warsaw warszawa

Rok 2021 w polskiej elektromobilności

0
Niemal dwukrotny wzrost liczby zarejestrowanych samochodów z napędem elektrycznym, prognozowany przez PSPA w raporcie Polish EV Outlook 2021 (www.polishevoutlook.pl) oraz 25% wzrost stacji ładowania – największa organizacja branżowa rynku zrównoważonego transportu podsumowuje w najnowszym...

Zdalnie czy w siedzibie firmy – jak według przedsiębiorców będą pracować Polacy w I...

0
Pracodawcy przewidują, że w pierwszych trzech miesiącach 2022 roku co piąty pracownik (20%) będzie wykonywał codzienne obowiązki służbowe bezpośrednio w siedzibie firmy. Zdecydowana większość kadry (76%) otrzyma możliwość kontynuowania pracy w modelu hybrydowym, natomiast...