Serverless computing to jedna z najbardziej pożądanych nowinek technologicznych – przynajmniej w zastosowaniach profesjonalnych. Według sondażu przeprowadzonego przez grupę Red Hat, 36% jej klientów używa już aplikacji bezserwerowych w systemach produkcyjnych albo w wewnętrznych eksperymentach, a kolejne 28 proc. obecnie planuje wdrożenia serverless.”*
Nazwa technologie bezserwerowe może okazać się bardzo myląca. Działanie większości rozwiązań serverless jest opartych właśnie o serwery. Mowa o usługach i aplikacjach udostępnianych w nowy sposób, w którym użytkownik otrzymuje pożądany efekt bez konieczności zarządzania infrastrukturą technologiczną. Podobne możliwości zapewniają produkty public infrastructure as a service takie jak Microsoft Azure. Przypominając – chmura obliczeniowa Microsoftu pozwala na pracę aplikacji i usług z wykorzystaniem wydajności maszyn należących do usługodawcy, bez konieczności zamartwiania się o możliwości i stabilne działanie własnych serwerów. Wystarczy opłacić pakiet obejmujący określony czas pracy, zdefiniowany pakiet danych lub inny czynnik określający obciążenie zasobów.
Technologia bezserwerowa jest zaawansowaną ewolucją chmury obliczeniowej. Mamy tu do czynienia z bardziej zaawansowaną automatyzacją procesów. Narzędzia i aplikacje stosowane przez klienta są dostosowywane do infrastruktury usługi i działają w pełni automatycznie. Użytkownik nie musi zlecać uruchomienia usługi, opłacać pakietów, kontaktować się z dostawcą rozwiązania. Kiedy stosowane przez niego narzędzie wymaga zasobów usługi, te są po prostu dostarczane. Opłata jest naliczana od faktycznego działania usługi przez czas pracy kodu z dokładnością do 100 ms. Pionierską inicjatywą bezserwerową była platforma Amazon Web Services wraz z uruchomioną w niej usługą Lambda. Projekt debiutował na rynku w 2014 roku i do dziś pozostaje jednym ze sztandarowych rozwiązań serverless.
Z perspektywy infrastruktury, myślimy o tym, jak o rozwiązaniu, w jakim funkcjonują różne poziomy abstrakcji, na których mogą operować deweloperzy – wyjaśnia Damion Heredia, wiceprezes działu Cloud Product Management w IBM, który zarządza oferowaną przez koncern usługą serverless o nazwie OpenWhisk. Składają się na nią: sprzęt, maszyny wirtualne oraz kontenery. Chcieliśmy zaoferować rozwiązanie, w którym możliwe jest zupełne wyabstrahowanie się z wszelkich zadań związanych z fizycznym zarządzaniem i w którym użytkownicy mogą uruchamiać swój kod bez zajmowania się infrastrukturą czy zarządzaniem serwerami. To jest właśnie bezserwerowość – wyjaśnia Heredia. **
Stopień automatyzacji, o którym mówimy w przypadku usług bezserwerowych pozwala klientom na całkowite pozbycie się serwerów i stąd właśnie ich nazwa. Kluczowym zastosowaniem dla rozwiązań serverless powinny się okazać usługi związane z Internetem rzeczy. Producenci rozwiązań LoT już od dawna starają się ograniczyć zasobność infrastruktury sprzętowej dostarczanej do klienta. Przykładowo – urządzenia automatyki domowej muszą być małe, estetyczne i pracować bez opóźnień. Fizyczne centralki odpowiedzialne za obliczenia już dawno przestały być wygodnym rozwiązaniem. Firmy z tego sektora rzadko posiadają własne serwerownie, ale regularnie wykorzystują wirtualne usługi serwerowe. Rozwiązanie bezserwerowe pozwoli na natychmiastowe przetwarzanie danych z czujników, wskaźników i urządzeń już w chwili otrzymania żądania – bez konieczności analizy dostępnych zasobów i konfiguracji. Producent zapłaci wyłącznie za faktycznie wykonane operacje.
Precyzyjne naliczanie opłat oraz brak konieczności organizowania zaplecza technologicznego to nie jedyne atuty usług bezserwerowych. Jest to przypadek outsourcingu idealnego w którym, delegujemy zadania, ale jednocześnie nie musimy nadzorować realizacji zobowiązań. Oznacza to, że oszczędności nie dotyczą wyłącznie optymalnego wykorzystania zasobów obliczeniowych, ale również kosztów obsługi związanych z systemami monitorującymi, dodatkowymi kadrami i własnym czasem.
Rozwiązania serverless wydają się być rozwiązaniem idealnym dla wszystkich podmiotów automatyzujących pracę i wszelkie procedury z wykorzystaniem własnych serwerów, serwerów wirtualnych, a nawet chmur obliczeniowych. Niestety rozwiązanie posiada również kilka dość istotnych wad związanych z krótkim stażem rynkowym. Przede wszystkim usługa wymaga większego zaangażowania przy wdrożeniu względem serwerów wirtualnych i chmur. Firmy programistyczne wykorzystujące usługi jak Windows Azure do testowania funkcjonalności kodu, nie skorzystają na rozwiązaniach serverless nawet w długiej perspektywie. Okazjonalna praca na stosunkowo niewielkiej liczbie danych nie jest problematyczna nawet w dotychczasowym modelu. Przeprojektowanie technicznej strony biznesu biznesu celem spełnienia wymagań integracji z usługą bezserwerową, a także przebudowa zasad codziennego funkcjonowania okażą się bardziej czasochłonne i kosztowne niż potencjalny zysk. Trzeba bowiem pamiętać, że mechanizmy serverless są bezobsługowe dopiero podczas docelowej pracy, jednakże aby takie były wymagają opracowania ściśle określonej przez usługodawcy struktury danych i mechanizmów do ich przekazywania.
Duże obawy wzbudza również potencjalna konieczność przyszłej migracji między poszczególnymi usługami. Rozwiązania chmurowe przetwarzają dane na wyraźne żądanie. Zmiana usługodawcy w tym wypadku nie wymaga budowy nowych metod pracy i rozwiązań programistycznych. Tymczasem rynek serverless nie opracował jeszcze żadnych standardów. Przedsiębiorstwa korzystają z outsourcingu dbając o swoją dynamikę. Technologiczne przywiązanie do jednego partnera jest w tym wypadku zaprzeczeniem idei. Brak możliwości szybkiej zmiany usługodawcy, który przestanie być konkurencyjny technologicznie lub cenowo to poważny problem. Niestety znaczącą barierą jest również trudna do opanowania chęć kontroli. Eksperci niejednokrotnie wskazują, że brak jakichkolwiek narzędzi administracyjnych może w dłuższej perspektywie być problematyczny, szczególnie jeśli wykorzystujemy usługę obliczeniową obejmującą grupy zależnych funkcji.
Pojawia się pytanie – czy organizacje NGO są w stanie skorzystać z dobrodziejstw usług bezchmurowych? Oczywiście jest to możliwe – podobnie jak w przypadku każdego innego podmiotu. Jednakże przy aktualnym stanie technologii, rozwiązanie pozostanie zarezerwowane dla największych jednostek, wykorzystujących technologie z funkcjami liczonymi w milionach wywołań. Technologia jest jednak warta uwagi i można zakładać, że na przestrzeni 2-3 lat stanie się zdecydowanie przystępniejsza. Opracowanie uniwersalnych rozwiązań będzie teraz kluczowe dla usługodawców z sektora serverless. Jednocześnie technologie bezserwerowe nie wydają się być początkiem końca usług chmurowych jak to oceniają niektórzy eksperci.
- Statystyki na podstawie artykuły eksperckiego Red Hat Summit 2018 – Serverless
** Cytaty na podstawie https://www.computerworld.pl/news/Bez-serwera-kolejna-faza-ewolucji-chmury,408860.html