Przetwarzanie bezserwerowe (ang. serverless computing, pot. serverless) – model przetwarzania w chmurze obliczeniowej, w którym uruchamia się kod bez konieczości samodzielnego konfigurowania i utrzymywania serwerów[1][2]. W tym modelu dostawca chmury przejmuje większość zadań operacyjnych związanych z infrastrukturą (m.in. przydział zasobów, skalowanie, utrzymanie środowiska uruchomieniowego), a użytkownik koncentruje się na logice aplikacji i konfiguracji wyzwalaczy zdarzeń[3][4]. Nazwa jest skrótem myślowym: serwery nadal istnieją, lecz są „ukryte” za abstrakcją usługową, a odpowiedzialność za ich zarządzanie jest w większym stopniu przeniesiona na dostawcę chmury[1][5].
Charakterystyka
edytujDo często wskazywanych cech przetwarzania bezserwerowego należą:
- uruchamianie kodu „na żądanie”, zwykle w reakcji na zdarzenia (np. żądanie HTTP, komunikat z kolejki, zmiana danych w magazynie)[3];
- automatyczne skalowanie liczby uruchomień/instancji wykonawczych zależnie od obciążenia (w tym możliwość zejścia do zera instancji w okresach braku ruchu w części platform i frameworków)[3][6];
- opłaty są naliczane za faktyczne użycie (najczęściej za czas wykonania i/lub liczbę wywołań), a nie za stałe, ciągle zarezerwowane zasoby[3];
- ograniczenia środowiska uruchomieniowego (m.in. limity czasu wykonania, pamięci, połączeń sieciowych, rozmiaru pakietu, zasady bezpieczeństwa)[3];
- typowa bezstanowość jednostek wykonawczych i przeniesienie stanu do zewnętrznych usług (bazy danych, magazyny obiektowe, kolejki)[4][7].
Modele usług
edytujW literaturze i praktyce przetwarzanie bezserwerowe bywa opisywane jako połączenie dwóch klas usług:
- FaaS (Function as a Service) – uruchamianie krótkotrwałych funkcji wyzwalanych zdarzeniami, które stanowią podstawową jednostkę wdrożenia i skalowania[3][4].
- BaaS (Backend as a Service) – zarządzane usługi zaplecza (np. magazyny danych, uwierzytelnianie, komunikacja), wykorzystywane przez funkcje i inne komponenty aplikacji[3].
Architektura i działanie
edytujTypowa architektura obejmuje:
- źródła zdarzeń (np. brama API, system publikacji/subskrypcji, kolejka komunikatów, harmonogram zadań),
- warstwę uruchomieniową (runtime) do wykonywania funkcji,
- usługi pomocnicze do przechowywania stanu i integracji (bazy danych, magazyny obiektowe, cache, systemy kolejkowe).
W takim podejściu funkcje są zwykle krótkotrwałe i wywoływane na podstawie reguł (triggers), a platforma automatycznie zarządza rozmieszczeniem i skalowaniem wykonania[3][4].
Historia
edytujWspółczesne platformy bezserwerowe rozwinęły się w ekosystemie usług chmurowych w połowie lat 2010.:
- w listopadzie 2014 ogłoszono usługę AWS Lambda jako jedną z pierwszych szeroko dostępnych ofert FaaS dużego dostawcy chmury[8];
- W marcu 2016 ogłoszono publiczną wersję zapoznawczą Azure Functions, a w listopadzie 2016 – udostępnienie usługi w wersji ogólnodostępnej[9][10];
- W marcu 2017 ogłoszono publiczną betę Google Cloud Functions, a w sierpniu 2018 – ogólną dostępność usługi[11][12].
Równolegle powstawały rozwiązania open source i implementacje dostawców oparte na projektach otwartych (np. Apache OpenWhisk)[13].
Zastosowania
edytujW praktyce przetwarzanie bezserwerowe jest stosowane m.in. do:
- implementacji prostych usług i endpointów API (np. zaplecze dla aplikacji mobilnych i internetowych),
- przetwarzania zdarzeń i integracji systemów (event processing, automatyzacje),
- zadań wsadowych i okresowych (harmonogramowane joby),
- przetwarzania danych (ETL, strumienie zdarzeń) i obsługi IoT[3].
Ograniczenia i wyzwania
edytujWskazywane w literaturze ograniczenia obejmują m.in.:
- opóźnienia startu (cold start) i zmienność wydajności w zależności od sposobu inicjalizacji środowiska uruchomieniowego[3][7],
- trudności w budowie aplikacji stanowych i długotrwałych procesów (konieczność utrzymywania stanu poza funkcją)[3][4],
- obserwowalność i diagnostykę w systemach rozproszonych (logowanie, śledzenie żądań, korelacja zdarzeń)[3],
- ryzyko uzależnienia od dostawcy (vendor lock-in) wynikające z użycia specyficznych usług i mechanizmów integracji[4][3].
Zobacz też
edytujPrzypisy
edytuj- ↑ a b Przetwarzanie bezserwerowe [online], Microsoft Azure (Cloud Computing Dictionary) [dostęp 2026-01-22] (pol.).
- ↑ Na czym polega bezserwerowość? [online], Oracle Polska, 17 czerwca 2022 [dostęp 2026-01-22] (pol.).
- ↑ a b c d e f g h i j k l m Jinfeng Wen, Zhenpeng Chen, Xin Jin, Xuanzhe Liu, Rise of the Planet of Serverless Computing: A Systematic Review, „ACM Transactions on Software Engineering and Methodology”, 2023, DOI: 10.1145/3579643 [dostęp 2026-01-14] (ang.).
- ↑ a b c d e f Ioana Baldini i inni, Serverless Computing: Current Trends and Open Problems, „arXiv”, 10 czerwca 2017, arXiv:1706.03178 [dostęp 2026-01-14] (ang.).
- ↑ Demystifying NoOps and Serverless Computing [online], cio.gov, lipiec 2019 [dostęp 2026-01-14] (ang.).
- ↑ Configuring scale to zero [online], knative.dev [dostęp 2026-01-14] (ang.).
- ↑ a b Joseph M. Hellerstein i inni, Serverless Computing: One Step Forward, Two Steps Back, „arXiv”, 10 grudnia 2018, arXiv:1812.03651 [dostęp 2026-01-14] (ang.).
- ↑ Amazon Web Services Announces AWS Lambda [online], press.aboutamazon.com (Amazon), 13 listopada 2014 [dostęp 2026-01-14] (ang.).
- ↑ Introducing Azure Functions [online], Azure Blog (Microsoft), 31 marca 2016 [dostęp 2026-01-14] (ang.).
- ↑ Announcing general availability of Azure Functions [online], Azure Blog (Microsoft), 15 listopada 2016 [dostęp 2026-01-14] (ang.).
- ↑ Google Cloud Functions: A serverless environment to build and connect cloud services [online], Google Cloud Blog, 14 marca 2017 [dostęp 2026-01-14] (ang.).
- ↑ Cloud Functions serverless platform is now generally available [online], Google Cloud Blog, 14 sierpnia 2018 [dostęp 2026-01-14] (ang.).
- ↑ IBM Unveils Fast, Open Alternative to Event-Driven Programming [online], IBM UK Newsroom, 23 lutego 2016 [dostęp 2026-01-14] (ang.).