Serverless to innymi słowy technologia bezserwerowa. Oferują ją dostawcy chmur obliczeniowych, a jak już pisaliśmy w poprzednich częściach cyklu, chmura to serwery… Paradoks? Niekoniecznie.

Serverless to jeden z modeli usług w chmurze i, jak słusznie się domyślasz, wykorzystuje serwery. Dlaczego zatem nazywany jest serverless? A no dlatego, że serwerami tymi nie musimy się zupełnie przejmować. Jeśli pamiętasz IaaS, PaaS i SaaS, które opisywaliśmy w artykule Pierwsze Kroki w Chmurze, serverless możesz umieścić z nimi w jednym rzędzie. Dokładniej, gdzieś pomiędzy PaaS i SaaS.

Platform as a Service dawało Ci gotową platformę, na którą mogłeś wprowadzić aplikację i ją konfigurować. Z kolei, w przypadku Software as a Service nie musiałeś przejmować się niczym związanym z budową infrastruktury czy aplikacji, bo była to gotowa usługa hostowana u dostawcy. Serverless wyróżnia się tym, że pozwala na uruchamianie kodu, przy czym nie musisz martwić się o cokolwiek związanego z serwerem. Czyli tak, jakby tego serwera w ogóle nie było. Znanymi implementacjami modelu serverless są AWS Lambda, Microsoft Azure Functions oraz Google Cloud Function, a od niedawna również CloudFlare Workers. Spójrz na grafikę, którą przygotowaliśmy, by pokazać różnice pomiędzy PaaS a serverless.

Tak, jak w wypadku innych modeli oferowanych przez dostawców chmur, w modelu serverless płacisz tylko za czas wykorzystywany do przetwarzania kodu. Zupełnie nie martwisz się tym, jak zbudowana i skonfigurowana jest infrastruktura – uruchamiasz swój kod, a resztą zajmuje się dostawca i jego oprogramowanie. Dzięki takiemu rozwiązaniu, jeśli Twoja usługa wymaga więcej mocy obliczeniowej, to odpowiednie jej skalowanie nie stanowi żadnego problemu.

Wadą tego rozwiązania może być brak wiedzy o tym, w jakim środowisku pracuje Twój kod oraz brak możliwości spersonalizowanej konfiguracji systemu. Dlatego pozostałe modele chmury oraz hostingów raczej nieprędko odejdą do lamusa. Serverless nie nadaje się dla usług działających w trybie ciągłym przez dłuższy czas – głównie dlatego, że będzie to zbyt kosztowne.

W takim razie odpowiedzmy sobie na pytanie, w jakich przypadkach opcja serverless będzie przydatna?

  • testowanie funkcjonalności
  • dowodzenie koncepcji (czyli tzw. Proof of concept)
  • produkt minimalny/podstawowy (Minimum Viable Product, MVP – wersja produktu tworzona zwykle po to, by zainteresować projektem inwestorów)
  • usługi o zmiennym obciążeniu ze strony użytkowników
  • bezstanowe mikroserwisy
  • uruchamianie małych fragmentów kodu

Już teraz usługa serverless staje się coraz bardziej popularna i nie raz jest wykorzystywana jako uzupełnienie usług. Serverless może znacząco odciążyć obecne systemy oraz wprowadzić nowe spojrzenie na dotychczasowe problemy z serwerami. Ale powtórzmy jeszcze raz, serverless nie jest dla każdego. Jeśli korzystasz z innego modelu i spełnia on Twoje wymagania, to nie warto tego zmieniać. Jeśli natomiast brakuje Ci wygody, jaką daje serverless, to może warto zastanowić się nad tym rozwiązaniem i rozpocząć migrację mniejszymi krokami.

Korzystasz z serverless i chciałbyś się podzielić jakimś ciekawym przykładem? Koniecznie daj nam znać w komentarzu. A jeśli z serverless nie korzystasz, a mógłbyś, to zachęcamy do kontaktu z nami – na pewno uda nam się pomóc dobrać odpowiednie rozwiązanie do Twoich potrzeb 🙂