Serverless computing, czyli przetwarzanie bezserwerowe, to metoda świadczenia usług zaplecza (backend) oparta na realnym wykorzystaniu. Bezserwerowy dostawca umożliwia nam pisanie i wdrażanie kodu bez martwienia się o podstawową infrastrukturę.
I tak, firma, która otrzymuje usługi zaplecza od dostawcy serverless, jest później obciążana kosztami na podstawie swoich obliczeń. Nie rezerwuje zasobów i nie płaci za stałą przepustowość czy liczbę dostępnych serwerów.
Choć usługi mają w nazwie serverless, w praktyce serwery fizyczne nadal są używane. Programiści po prostu nie muszą być tego świadomi.
Czy serverless to przyszłość rynku?
Na początku istnienia sieci każdy, kto chciał zbudować aplikację internetową, musiał posiadać fizyczny sprzęt wymagany do uruchomienia serwera. To jednak było i ciągle jest kosztownym przedsięwzięciem.
Sprawdź: Test na szybkie pisanie
Później – i w ostatnich latach – przyszedł czas na przetwarzanie w chmurze. Korzystając z chmury możemy zdalnie wynająć stałą liczbę serwerów lub ilość miejsca na serwerze. Deweloperzy i firmy, które wynajmują te jednostki przestrzeni serwerowej, zazwyczaj dokonują nadmiernych zakupów. Powód jest tutaj prosty. Chcą mieć pewność, że wzrost ruchu lub aktywności nie przekroczy ich miesięcznych limitów i nie sprawi, że dana aplikacja przestanie działać lub zostanie przeciążona. Nie jest to jednak optymalna metoda: oznacza, że większość płatnej przestrzeni serwerowej może zostać zmarnowana i płacimy de facto tylko za rezerwację zasobów.
Co ważne, dostawcy chmury wprowadzili modele automatycznego skalowania, aby rozwiązać ten problem. Ale nawet przy automatycznym skalowaniu niechciany wzrost aktywności, taki jak atak DDoS, może okazać się bardzo kosztowny. I finalnie i tak zapłacimy za coś, czego nie używamy i nie potrzebujemy.
Serverless to odpowiedź na potrzeby rynku
Tu właśnie pojawia się serverless computing. Takie przetwarzanie umożliwia kupowanie usług zaplecza na elastycznej zasadzie „płacisz tylko za to, co rzeczywiście wykorzystujesz”. To trochę tak, jakbyśmy płacili za miesięczny stały limit transferu danych, którego często nie wykorzystujemy i nie przekraczamy, i nagle zmienili go na opłaty tylko za każdy bajt danych, który faktycznie zużyjemy. Taki właśnie jest model bezserwerowy. Choć serwery ciągle istnieją i są wykorzystywane, w praktyce cała przestrzeń serwerowa i infrastruktura są obsługiwane przez dostawcę.
Większość dostawców bezserwerowych oferuje swoim klientom usługi baz danych i pamięci masowej, a wielu ma również platformy Function-as-a-Service (FaaS). FaaS pozwala programistom wykonywać małe fragmenty kodu na brzegu sieci. Dzięki FaaS programiści budują architekturę modułową, tworząc bardziej skalowalną bazę kodu bez konieczności wydawania zasobów na utrzymanie podstawowego zaplecza.
Zobacz: Workflow
Trzy największe zalety przetwarzania serverless? Bardzo proszę:
- Uproszczony kod zaplecza – możemy tworzyć proste funkcje, które niezależnie realizują konkretny cel
- Uproszczona skalowalność – nie musimy martwić się o skalowanie kodu
- Niższe koszty – płacimy mniej niż w przypadku chmury z alokacją serwerów, gdzie często wydajemy pieniądze na niewykorzystane zasoby czy bezczynny czas procesora
Popularni dostawy usług FaaS to AWS Lambda, Microsoft Azure Functions i Google Cloud Functions.
Serverless a mikrousługi
Jeśli zdecydujemy się na serverless, warto wiedzieć, że architektura naszej aplikacji musi mieć wtedy postać funkcji. W świecie serverless wymagane jest zazwyczaj przyjęcie architektury opartej na mikrousługach. Pojęcie mikrousług wyjaśnimy w oddzielnym tekście. Odwiedzaj regularnie bloga IT-Leaders, aby zgłębić tajniki wiedzy IT!
IT-Leaders.pl to pierwsza w Polsce platforma łącząca Specjalistów IT bezpośrednio z pracodawcami. Anonimowy, techniczny profil i konkretnie określone oczekiwania finansowe to tylko niektóre z cech wyróżniających platformę. Zarejestruj się i zobacz jak Cię widzi pracodawca.