Co to jest bezserwerowe?
Opublikowany: 2022-02-15Przetwarzanie bezserwerowe to metodologia dostarczania usług zaplecza w zależności od użycia. Głównym czynnikiem dostawcy bezserwerowego jest zdolność użytkowników do pisania kodów bez martwienia się o podstawową infrastrukturę. Organizacja, która otrzymuje usługi od dostawcy, który zapewnia przetwarzanie bezserwerowe, nie musi się martwić o płacenie stałego kosztu za przepustowość lub dowolną liczbę serwerów. Wręcz przeciwnie, organizacje są obciążane na podstawie ich obliczeń. Należy zauważyć, że pomimo nazwy serverless, istnieje wykorzystanie serwerów fizycznych, o czym programiści nie muszą być świadomi.
W początkach ery Internetu, gdy ktoś chciał stworzyć aplikację internetową, musiał uruchomić serwer, co było niekończącą się i wymagającą pracą. Potem nastała era przetwarzania w chmurze, gdzie można było wykupić stałą ilość serwerów lub powierzchnię serwerową na wynajem. Deweloperzy i organizacje, które zabierają te serwery i przestrzeń serwerową, zwykle mają tendencję do nadmiernego kupowania, aby nie popaść w nieprzyjemną sytuację, w której nagły napływ ruchu na stronie internetowej powinien zepsuć ich aplikacje. Mimo że dostawcy chmury wymyślili metodę automatycznego skalowania, nie jest to opłacalna metoda w przypadku dużego wzrostu, takiego jak atak DDoS.
Przetwarzanie bezserwerowe umożliwia programistom korzystanie z usług zaplecza na zasadzie „płatności za użycie”; oznacza to, że programiści muszą płacić tylko za usługi, z których korzystają. Terminologia bezserwerowa jest myląca, co w rzeczywistości oznacza, że programiści nie muszą się martwić o serwer – a nie o całkowity brak serwerów.
- Różnica między backendem a frontendem
- Rodzaje usług backendowych
- Zalety
- Porównanie przetwarzania bezserwerowego
- Przyszły
Różnica między backendem a frontendem?
Każda tworzona aplikacja składa się z dwóch komponentów – frontendu i backendu. Frontend to zasadniczo część, którą użytkownicy widzą, używają i wchodzą w interakcje – głównie układ wizualny. Backend to komponent, którego użytkownicy zwykle nie widzą; serwer, na którym znajdują się pliki aplikacji oraz baza danych, w której przechowywana jest logika biznesowa i dane użytkownika.
Jeśli weźmiemy przykład ze strony internetowej, front-end żąda danych strony internetowej z zaplecza, a backend odpowiada na żądanie i przesyła dane do frontonu.
Rodzaje usług backendu świadczonych przez przetwarzanie bezserwerowe
Większość dostawców przetwarzania bezserwerowego zapewnia bazy danych i usługi przechowywania. Niektóre z nich oferują również platformy Function-as-a-service; Cloudflare Workers jest tego przykładem. Koncepcja FaaS pozwala programistom opracowywać i uruchamiać małe fragmenty kodu na brzegu sieci. Korzystając z metodologii FaaS, programiści mogą stworzyć architekturę, która sprawia, że cała baza kodu jest niezwykle skalowalna, a najlepsze jest to, że programiści nie muszą wydawać swoich zasobów na zaplecze.
Zalety przetwarzania bezserwerowego
Przetwarzanie bezserwerowe zyskało dużą popularność, a to głównie ze względu na kluczowe zalety, jakie wnosi do stołu.
Te zalety są następujące:
- Redukcja kosztów – przetwarzanie bezserwerowe jest stosunkowo mniej kosztowne, ponieważ nie ma koncepcji wykorzystania czasu bezczynności lub niewykorzystanej przestrzeni, jak w przypadku przetwarzania w chmurze.
- Łatwość skalowania — programiści, którzy korzystają z architektury bezserwerowej lub zaplecza, nie muszą martwić się różnymi zasadami, aby skalować swój kod.
- Prosty kod zaplecza – dzięki takim koncepcjom, jak FaaS, programiści mogą tworzyć funkcje tak proste, jak wywołanie API, które działają niezależnie
- Szybszy zwrot — posiadanie architektury bezserwerowej może pomóc w szybkim wprowadzeniu produktu na rynek. W przeciwieństwie do tradycyjnej metody złożonego wdrażania i aktualizacji poprawek, przetwarzanie bezserwerowe może pomóc programistom w dodawaniu nowych funkcji ad hoc i fragmentarycznie.
Porównanie przetwarzania bezserwerowego z innymi modelami chmury zaplecza?
Istnieje kilka technologii, które są często porównywane z przetwarzaniem bezserwerowym. Są to Backend-as-a-service i Platform-as-a-service. Chociaż te dwie technologie mają pewne podobieństwa, w rzeczywistości nie spełniają wymagań definicji metodologii przetwarzania bezserwerowego.
Backend-as-a-service (BaaS): Jest to model usług, w którym dostawca chmury zapewnia usługi zaplecza, takie jak przechowywanie danych, co pozwala programistom skupić się bardziej na opracowywaniu kodu front-endu. Podczas gdy większość aplikacji bezserwerowych jest całkowicie sterowana zdarzeniami i działa na krawędzi, aplikacje BaaS mogą nie spełniać dokładnie wymagań metodologii przetwarzania bezserwerowego.
Platform-as-a-service (PaaS): Jest to model, w którym programiści przejmują wszystkie komponenty aplikacji od dostawcy usług w chmurze – w celu opracowania i wdrożenia aplikacji na serwerze w chmurze dostawcy. Jednak poważną wadą jest to, że aplikacje PaaS nie mogą być łatwo skalowalne, jak aplikacje bezserwerowe. Innym czynnikiem jest to, że aplikacje PaaS nie działają na brzegu i występuje zauważalne opóźnienie podczas uruchamiania aplikacji.
Infrastructure-as-a-service (IaaS): Zasadniczo jest to modne hasło używane zamiennie z przetwarzaniem bezserwerowym, ale te dwie terminologie nie są w żaden sposób równoznaczne. IaaS to termin używany, gdy dostawcy infrastruktury hostują aplikacje swoich klientów w ich imieniu.
Przyszłość przetwarzania bezserwerowego
Metodologia stale ewoluuje, ponieważ usługodawcy wymyślają nowe i innowacyjne sposoby wyeliminowania wszelkiego rodzaju wad – jedną, którą można zauważyć, jest zimny start.
Oznacza to, że jeśli dana aplikacja bezserwerowa nie była wywoływana przez dłuższy czas, dostawca wyłączy serwer, aby zaoszczędzić energię i uniknąć wszelkiego rodzaju nadmiernej alokacji. Przy następnym wywołaniu aplikacji przez użytkownika usługodawca musi zacząć wszystko od nowa i ponownie rozpocząć hosting tej funkcji.
Jak tylko funkcja zostanie uruchomiona i uruchomiona, będzie działać szybko, ponieważ będzie obsługiwana szybciej przy następnym zestawie żądań; jeśli jednak funkcja nie jest wymagana, ponownie się zatrzyma. Zasadniczo oznacza to, że następny użytkownik, który zażąda tej funkcji, będzie miał do czynienia z zimnym startem.
Końcowe przemyślenia
Ponieważ widzimy coraz więcej problemów związanych z przetwarzaniem bezserwerowym, w połączeniu z rosnącą popularnością przetwarzania brzegowego, możemy spodziewać się, że przetwarzanie bezserwerowe zyska powszechną popularność wśród programistów i społeczności użytkowników.
Inne przydatne zasoby:
Ataki wykorzystujące luki w zabezpieczeniach serwerów sieci Web: jak chronić swoją organizację
Co to jest blok komunikatów serwera i jak to działa?
Aplikacja internetowa – wszystko, co musisz wiedzieć
Co to jest przetwarzanie brzegowe? - Wszystko co musisz wiedzieć