Nodea — logo

Serverless computing

Serverless computing (przetwarzanie bezserwerowe) to model wykonywania kodu w chmurze, w którym deweloper dostarcza wyłącznie logikę aplikacji, a całą infrastrukturą — serwerami, systemem operacyjnym, skalowaniem i dostępnością — zarządza dostawca. Wbrew nazwie serwery nadal istnieją; to perspektywa programisty się zmienia: przestaje myśleć o maszynach, a zaczyna wyłącznie o kodzie i zdarzeniach, które go uruchamiają.

Na czym polega serverless computing

Najpopularniejszą realizacją tego modelu są funkcje jako usługa (FaaS) — pojedyncze fragmenty kodu uruchamiane w reakcji na zdarzenie: żądanie HTTP przez API, wgranie pliku, wpis w bazie czy komunikat w kolejce. Funkcja startuje na żądanie, wykonuje zadanie i kończy działanie, a dostawca automatycznie zwiększa lub zmniejsza liczbę równoległych instancji zależnie od obciążenia — od zera do tysięcy wywołań i z powrotem.

Fundamentem jest rozliczenie pay-per-use: płaci się za realny czas wykonania i liczbę wywołań, a nie za stale wynajmowaną maszynę. Gdy kod nie działa, koszt jest zerowy. Ceną za wygodę bywa opóźnienie zimnego startu (uruchomienie nieaktywnej funkcji), limity czasu wykonania i ściślejsze związanie z ekosystemem konkretnego dostawcy.

Zastosowanie w praktyce

Serverless świetnie nadaje się do zadań zdarzeniowych i nieregularnego obciążenia: backendów aplikacji mobilnych, przetwarzania obrazów po wgraniu, obsługi formularzy, webhooków, zaplanowanych zadań czy lekkich API. Znane usługi to AWS Lambda, Google Cloud Functions i Azure Functions. Model przyspiesza rozwój, bo zdejmuje z zespołu DevOps troskę o serwery, i doskonale skaluje ruch skokowy. Nie zastępuje jednak wszystkiego — usługi o stałym, dużym obciążeniu lub wymagające pełnej kontroli nad środowiskiem często pozostają wydajniejsze i tańsze na dedykowanym serwerze VPS. W praktyce serverless bywa więc uzupełnieniem, a nie następcą tradycyjnej infrastruktury.

Powiązane pojęcia

Najczęstsze pytania

Czy w modelu serverless naprawdę nie ma serwerów?

Serwery istnieją — nazwa odnosi się do perspektywy dewelopera, który nie musi ich udostępniać, konfigurować ani skalować. Całą infrastrukturą zarządza dostawca chmury w tle. Programista skupia się wyłącznie na kodzie i logice aplikacji, a nie na maszynach, na których się wykonuje.

Kiedy serverless się nie sprawdza?

Model bywa nieopłacalny przy stałym, wysokim i przewidywalnym ruchu, gdzie tradycyjny serwer wychodzi taniej. Problematyczne są też zadania długotrwałe (limity czasu wykonania) oraz opóźnienie zimnego startu przy pierwszym wywołaniu. Aplikacje wymagające pełnej kontroli nad środowiskiem również lepiej działają na VPS.