Czym jest serverless? Przetwarzanie bezserwerowe wyjaśnione prosto
Serverless to sposób uruchamiania kodu, w którym nie konfigurujesz ani nie zarządzasz żadnymi serwerami. Przekazujesz kod dostawcy chmury, a on uruchamia go tylko wtedy, gdy coś to wywoła — żądanie z przeglądarki, przesłany plik, powiadomienie o płatności — a potem go zatrzymuje. Zwykle płacisz za czas, w którym kod faktycznie działa, a nie za maszynę stojącą bezczynnie.
Dlaczego serverless ma znaczenie, gdy budujesz z AI
Gdy budujesz aplikację z AI i przeglądasz opcje hostingu albo kod, natrafisz na „funkcje serverless”, „funkcje edge” lub „cloud functions”. Wiele platform hostingowych je oferuje, a część narzędzi AI wdraża backendy właśnie w ten sposób. Zrozumienie tego modelu pomaga w trzech praktycznych kwestiach:
- Koszt. Czy aplikacja będzie kosztować, gdy nikt z niej nie korzysta?
- Szybkość. Dlaczego pierwsze żądanie po cichym okresie jest wolniejsze?
- Limity. Dlaczego długie zadanie — generowanie dużego raportu, przetwarzanie wideo — przekroczyło czas?
Warto też wiedzieć, czym serverless nie jest: nie oznacza braku backendu. Nadal masz kod po stronie serwera; po prostu ktoś inny prowadzi maszyny. Podstawy wyjaśnia czym jest serwer.
Przykład z życia
Tradycyjny serwer to jak posiadanie samochodu. Jest zawsze pod ręką, gotowy od razu, ale płacisz za niego — ubezpieczenie, parking, serwis — niezależnie od tego, czy nim jeździsz.
Serverless to jak zamówienie taksówki. Płacisz tylko za przejazdy, a gdy sto osób potrzebuje przejazdu naraz, przyjeżdża sto taksówek. Ale auto może przyjechać dopiero po chwili (zimny start), każdy przejazd ma maksymalną długość, a kierowca nie pamięta Cię z poprzedniego kursu (funkcje są bezstanowe).
Jak działają funkcje serverless
W najczęstszej postaci, zwanej functions as a service (FaaS):
- Piszesz funkcję — mały kawałek kodu obsługujący jeden rodzaj zdarzenia, np. „obsłuż POST na
/api/bookings”. - Wdrażasz ją. Dostawca przechowuje ją i podłącza do wyzwalacza: adresu URL, harmonogramu, nowego pliku w magazynie, wiadomości w kolejce.
- Nadchodzi zdarzenie. Dostawca uruchamia kopię funkcji (albo ponownie wykorzystuje rozgrzaną), wykonuje ją i zwraca wynik.
- Skaluje się sam. Jeśli nadejdzie tysiąc żądań naraz, dostawca uruchamia wiele kopii równolegle, do limitów Twojego konta.
- Przechodzi w bezczynność. Gdy ruch ustaje, kopie są wyłączane. Jeśli nic nie działa, nie płacisz za obliczenia.
Mała funkcja serverless w JavaScripcie może wyglądać tak:
export default async function handler(request) {
const { name } = await request.json();
return Response.json({ message: `Hello, ${name}` });
}
Nie ma tu kodu, który uruchamia serwer, otwiera port albo utrzymuje proces przy życiu. Platforma zajmuje się tym wszystkim.
Słowo „serverless” jest też używane luźniej, dla innych zarządzanych usług, które skalują się automatycznie i rozliczają za użycie — na przykład bezserwerowych baz danych, które wstrzymują się, gdy są bezczynne.
Kluczowe pojęcia
| Termin | Znaczenie |
|---|---|
| Funkcja (FaaS) | Mała jednostka kodu uruchamiana przez dostawcę na żądanie. |
| Wyzwalacz / zdarzenie | Co uruchamia funkcję — żądanie HTTP, przesłanie pliku, timer, wiadomość w kolejce. |
| Zimny start (cold start) | Opóźnienie, gdy nowa kopia funkcji musi wystartować przed obsłużeniem żądania. |
| Rozgrzana (warm) | Kopia, która już działa i może od razu odpowiedzieć. |
| Bezstanowa (stateless) | Funkcja nie pamięta niczego między uruchomieniami. Wszystko, co ma przetrwać, trafia do bazy danych lub magazynu plików. |
| Limit czasu (timeout) | Maksymalny czas jednego uruchomienia. Na przykład maksimum AWS Lambda to 15 minut; wiele platform ma domyślnie znacznie mniej. |
| Funkcja edge | Funkcja uruchamiana w wielu lokalizacjach blisko użytkowników, często z ostrzejszymi limitami. |
| Skalowanie do zera (scale to zero) | Brak uruchomionych zasobów i brak opłat za obliczenia, gdy nie ma ruchu. |
Przykład: mała strona rezerwacji
Strona rezerwacji studia jogi dostaje falę odwiedzin każdej niedzielnego wieczoru, gdy pojawia się nowy grafik, a przez resztę tygodnia bardzo mały ruch.
- Na serwerze działającym cały czas studio płaci za maszynę 24/7, dobraną pod szczyt niedzielnego wieczoru, a poza nim w większości bezczynną.
- Z funkcjami serverless
GET /api/classesiPOST /api/bookingsto funkcje. Niedzielny szturm sam uruchamia wiele kopii; w spokojny wtorek rano prawie nic nie działa, a rachunek jest bliski zera.
Pojawiają się też kompromisy. Pierwsza osoba, która we wtorek rano otworzy stronę, może poczekać chwilę dłużej na zimny start. Baza danych musi obsłużyć wiele krótkotrwałych połączeń z wielu kopii funkcji, co może wymagać puli połączeń. A jeśli studio później zechce zadanie „wygeneruj roczny raport frekwencji w PDF”, może ono przekroczyć limit czasu funkcji i wymagać uruchomienia gdzie indziej.
Kiedy serverless się sprawdza, a kiedy nie
| Dobre dopasowanie | Słabsze dopasowanie |
|---|---|
| Ruch niski, skokowy lub nieprzewidywalny | Stały, duży ruch, przy którym serwer działający cały czas może być tańszy |
| Krótkie zadania żądanie/odpowiedź: API, obsługa formularzy, webhooki | Długie zadania: duże przetwarzanie wideo, duże importy danych |
| Małe zespoły, które nie chcą zarządzać serwerami | Aplikacje utrzymujące otwarte połączenia na żywo (niektóre czaty lub funkcje wieloosobowe), chyba że platforma to wspiera |
| Obsługa zdarzeń: „gdy plik zostanie przesłany, zrób miniaturę” | Aplikacje, które muszą trzymać dużo pamięci między żądaniami |
Częste nieporozumienia
- „Serverless oznacza brak backendu.” Oznacza brak serwerów do zarządzania. Nadal piszesz i zabezpieczasz kod backendu.
- „Serverless jest zawsze tańszy.” Tani przy małym wolumenie, ale rozliczenie za żądanie może urosnąć przy dużym, stałym wolumenie.
- „Serverless skaluje się w nieskończoność.” Platformy mają limity współbieżności, a Twoja baza danych może stać się wąskim gardłem długo przed funkcjami.
- „Pliki zapisane przez funkcję będą tam następnym razem.” Lokalny zapis jest tymczasowy. Użyj bazy danych lub magazynu plików.
- „Skalowanie do zera to to samo co serverless.” Pokrewne, ale nie identyczne. Niektóre platformy uruchamiają aplikację jak zwykły serwer, który zasypia, gdy jest bezczynny, i budzi się przy następnym żądaniu — podobne oszczędności i podobne opóźnienie przy pierwszym żądaniu, ale bez limitów czasu na pojedyncze żądanie, typowych dla funkcji.
Czego zapytać swojego narzędzia AI do budowania
- „Czy ten backend będzie działał jako funkcje serverless, czy jako serwer działający cały czas lub usypiający się? Co to znaczy dla kosztów?”
- „Czy któreś zadania mogą trwać dłużej niż limit czasu platformy? Jeśli tak, jak je obsłużyć?”
- „Zapisuj wszystko, co ma przetrwać, w bazie danych lub magazynie plików, a nie w pamięci czy lokalnych plikach.”
- „Jak zarządzać połączeniami z bazą, gdy działa wiele kopii naraz?”
- „Jakie jest opóźnienie przy pierwszym żądaniu po okresie bezczynności aplikacji?”
Jak Mythex hostuje aplikacje
Mythex nie opisuje swojego hostingu jako funkcji serverless. Po publikacji Twoja aplikacja działa jako zwykła aplikacja webowa lub kontener, którym Mythex zarządza za Ciebie — nie musisz nic konfigurować. Działa w modelu scale-to-zero: opublikowane aplikacje i ich bazy danych usypiają, gdy są bezczynne, i budzą się przy następnej wizycie; uśpiona aplikacja nie zużywa zasobów obliczeniowych, a dodatkowe maszyny uruchamiają się tylko przy dużym ruchu (w Pro do 3 na usługę). Dołączona baza Postgres też zasypia po 5 minutach bezczynności, a opłata nalicza się za czas, w którym była aktywna. Dostajesz więc sporą część korzyści „płacisz za to, czego używasz”, z podobnym opóźnieniem przy pierwszym żądaniu po cichym okresie. Zobacz limity hostingu w dokumentacji oraz nasze przewodniki: czym jest hosting www i jak obniżyć koszty hostingu.
Pytania
Co oznacza serverless w prostych słowach?
Serverless oznacza, że przekazujesz swój kod dostawcy chmury, a on uruchamia go tylko wtedy, gdy jest potrzeba — na przykład gdy nadejdzie żądanie — bez konfigurowania i pilnowania jakichkolwiek serwerów. Zwykle płacisz za czas, w którym kod faktycznie działa, a nie za maszynę, która stoi włączona cały czas.
Czy w serverless naprawdę nie ma serwerów?
Serwery są, po prostu ich nie zarządzasz. Dostawca uruchamia Twój kod na swoich maszynach, startuje go, gdy nadchodzą żądania, skaluje pod obciążeniem i wyłącza, gdy jest bezczynny.
Czym jest zimny start (cold start)?
Zimny start to dodatkowe opóźnienie, gdy funkcja serverless uruchamia się po bezczynności, bo dostawca najpierw musi wystartować świeżą kopię. Może być prawie niezauważalne albo wynosić sekundę lub więcej, zależnie od platformy, języka i rozmiaru kodu.
Czy serverless jest tańszy niż zwykły serwer?
Dla aplikacji z małym lub nierównym ruchem często tak, bo w bezczynności płacisz prawie nic. Dla aplikacji z dużym, stałym ruchem serwer działający cały czas może wyjść taniej. Zależy to od wzorca użycia i cennika dostawcy.
Jakie są przykłady platform serverless?
Znane przykłady to AWS Lambda, Google Cloud Run functions, Azure Functions, Cloudflare Workers oraz funkcje w platformach hostingowych takich jak Vercel i Netlify.