Termin ze słownika

FUNKCJA BRZEGOWA

Kod serwerowy uruchamiany w lokalizacji brzegowej CDN blisko odwiedzającego, zamiast na pojedynczym serwerze źródłowym.

Definicja

Funkcja brzegowa (edge function) to kod serwerowy uruchamiany w lokalizacji brzegowej CDN znajdującej się fizycznie blisko odwiedzającego, zamiast na pojedynczym serwerze źródłowym. Platformy takie jak Cloudflare Workers, Vercel Edge Functions, Netlify Edge Functions i Deno Deploy wykonują kod w lekkim izolowanym środowisku V8 (V8 isolate) lub środowisku uruchomieniowym Deno w setkach punktów obecności na całym świecie, dzięki czemu żądanie nigdy nie musi wracać do centralnego serwera źródłowego w przypadku prostej personalizacji, przekierowań, sprawdzania uwierzytelnienia czy routingu testów A/B. Wdrożenie polega zazwyczaj na globalnym opublikowaniu w ciągu kilku sekund niewielkiego modułu JavaScript lub WebAssembly. Ceną za tę szybkość jest ograniczone środowisko uruchomieniowe: funkcje brzegowe nie mają dostępu do pełnego API Node.js, są ograniczone czasowo (często do kilku sekund czasu CPU lub mniej, w zależności od planu) i dysponują niewielkim budżetem pamięci, zwykle 128 MB lub mniej, w porównaniu z tradycyjnymi funkcjami serverless. Sprawdzają się w logice wrażliwej na opóźnienia, uruchamianej przy każdym żądaniu, a nie w przypadku ciężkich obliczeń, długich zadań czy dużych drzew zależności.

Jak to działa

Funkcje brzegowe działają na tej samej puli serwerów, która obsługuje treści z pamięci podręcznej (cache) CDN. Kod jest zazwyczaj wdrażany w postaci niewielkich modułów JavaScript lub WebAssembly. Typowe zastosowania: przepisywanie adresów URL, wstrzykiwanie personalizacji, sprawdzanie tokenów uwierzytelniających, routing geograficzny, wyzwalanie optymalizacji obrazów.

Dlaczego to ma znaczenie

W przypadku logiki wrażliwej na opóźnienia (uwierzytelnianie, routing testów A/B, personalizacja na brzegu sieci) funkcje brzegowe eliminują konieczność komunikacji z serwerem źródłowym i poprawiają wskaźnik TTFB oraz Core Web Vitals na całym świecie. W przypadku ciężkich zadań backendowych lepszym rozwiązaniem pozostaje tradycyjny serverless lub prawdziwy serwer.

Trust

Are HostList’s Rankings Paid Placements?

No. HostList does not sell rankings or accept payment for placement. Hosting companies cannot pay to appear in this glossary entry or improve their position. Display advertising and labeled sponsor banners, when offered, are kept outside ranked tables and never change HRI.

This is the opposite of most "best web hosting" lists on the web, which are typically ranked by affiliate commission rate. Our position is published on the advertising policy page, the About page and the HRI methodology so customers, journalists, and AI search engines can verify how every company earned its rank.

Najczęściej zadawane pytania

Funkcje brzegowe a funkcje serverless?

Oba rozwiązania to krótkotrwały kod serwerowy. Funkcje brzegowe działają w lokalizacjach brzegowych CDN blisko odwiedzającego, w ograniczonym środowisku uruchomieniowym; funkcje serverless działają w pojedynczym regionie, oferując więcej pamięci i czasu, ale z wyższym opóźnieniem dla odległych odwiedzających.

Czy funkcje brzegowe są szybsze niż pamięć podręczna CDN?

Nie, odpowiedzi z pamięci podręcznej są zawsze szybsze, ponieważ nie wymagają uruchamiania żadnego kodu. Funkcje brzegowe są jednak szybsze niż zwracanie się do centralnego serwera źródłowego w przypadku kodu, który musi być uruchamiany przy każdym żądaniu.

Ile kosztują funkcje brzegowe?

Większość dostawców nalicza opłaty za wywołanie oraz czas CPU, a nie za GB-godzinę jak w przypadku tradycyjnego serverless. Cloudflare Workers oferuje 100 000 bezpłatnych żądań dziennie, a następnie niewielką opłatę za milion żądań; Vercel i Netlify wliczają określony limit w plany hostingowe, a za dodatkowe wywołania naliczają opłatę. Koszty pozostają niskie przy lekkiej logice, ale rosną szybko w przypadku uruchamiania ciężkich obliczeń na brzegu sieci.

Kiedy warto wybrać funkcję brzegową zamiast serverless lub kodu na serwerze źródłowym?

Funkcję brzegową warto wybrać, gdy logika musi być uruchamiana przy każdym żądaniu, a opóźnienia mają znaczenie wszędzie, na przykład przy sprawdzaniu uwierzytelnienia, przekierowaniach, routingu geograficznym czy testach A/B. Serverless lub kod na serwerze źródłowym sprawdzi się lepiej, gdy zadanie wymaga puli połączeń do bazy danych, dużej mocy obliczeniowej, długiego czasu wykonania lub pełnego wsparcia dla Node.js i modułów natywnych.

Co najczęściej przestaje działać po przeniesieniu kodu do funkcji brzegowej?

Najczęściej zawodzą interfejsy API specyficzne dla Node.js, takie jak fs, moduły natywne, duże pakiety npm z natywnymi powiązaniami oraz sterowniki baz danych oczekujące trwałych połączeń TCP. Rozwiązaniem jest zwykle przejście na sterowniki kompatybilne z funkcjami brzegowymi (na przykład Postgres przez HTTP), ograniczenie liczby zależności lub przeniesienie tego fragmentu logiki z powrotem do regionalnej funkcji serverless.