Bezserwerowość - serverless computing
Bezserwerowość (serverless computing) to prawdopodobnie jedno z najpopularniejszych ostatnio haseł w IT. I choć nazwa „technologie bezserwerowe” może być myląca, bo działanie większości rozwiązań serverless jest opartych właśnie o serwery, to jest to jeden z najbardziej gorących tematów w branży. Mowa o usługach i aplikacjach udostępnianych w sposób, w którym użytkownik otrzymuje pożądany efekt bez konieczności zarządzania infrastrukturą technologiczną.
Kluczem do rozwiązania bezserwerowego jest w większości model Function as a Service (FaaS), czyli usługi, które sprawiają, że uruchamianie kodu w chmurze jest proste i odbywa się bez udostępniania infrastruktury obliczeniowej. Dzięki FaaS programiści budują architekturę modułową, tworząc bardziej skalowalną bazę kodu bez potrzeby angażowania zasobów na utrzymanie podstawowego zaplecza. Pozwala on programistom wykonywać małe fragmenty kodu na brzegu sieci oraz budować architekturę modułową, tworząc bardziej skalowalną bazę kodu bez potrzeby wydawania zasobów na utrzymanie zaplecza.
Praca | GA od | Dostępność regionalna |
---|---|---|
AWS Lambda | listopad 2014 | Światowy |
Funkcje platformy Azure | marzec 2016 | Światowy |
Funkcje Google Cloud | luty 2016 | Światowy |
FaaS zmienił zasady na rynku: przyspieszył możliwość wdrażania usług zaplecza i ułatwił tworzenie aplikacji.
A jakie są jego największe zalety?
- Uproszczony kod backendu – możemy tworzyć proste funkcje, które niezależnie realizują konkretny cel
- Uproszczona skalowalność – nie martwimy się o skalowanie kodu
- Niższe koszty – płacimy mniej niż w przypadku chmury z alokacją serwerów, gdzie często wydajemy pieniądze na niewykorzystane zasoby czy bezczynny czas procesora
Rdzeniem każdej aplikacji jest kod, który tworzy jej logikę i funkcjonalność. Czy jest to gra, aplikacja mobilna, czy oprogramowanie przedsiębiorstw z branży finansowej, istnieją wiersze kodu, które muszą gdzieś działać na serwerze lub grupie serwerów, w których cykle procesora wykonują logikę, która zasila te aplikacje.
Jednak serwery, nawet wirtualne serwery w chmurze, są stosunkowo drogie i trudne w utrzymaniu, często także wymagają wykwalifikowanych i doświadczonych administratorów do ich zabezpieczania i zarządzania. Ponadto, gdy nikt nie korzysta z oprogramowania, serwery te pozostają bezczynne.
Tradycyjna infrastruktura obliczeniowa może być więc nieefektywna i właśnie to sprawia, że FaaS jest tak atrakcyjny.
Zamiast stawiać na złożoną infrastrukturę (serwery, systemy równoważenia obciążenia itp.), FaaS umożliwia uruchamianie kodu na zarządzanej puli zasobów obliczeniowych, pobierając opłątę tylko za czas wykonywania.
Kiedy możemy skorzystać z opcji serverless?
Event-driven Data Processing
Jednym z popularnych użyć może być obsługa zdarzenia wykonywanego w trybie “on-demand”. Jest to popularne wykorzystanie chmury w rozwiązaniach hybrydowych, gdzie część procesu jest przekazywana ze środowiska on-premise do chmury.
Web apps
Kolejnym przykładem wykorzystania technologii serverless, w szczególności Azure Functions, będzie budowa backend dla aplikacji Web działającej w chmurze.
Serverless Application Ecosystems
Co roku praktycznie na całym świecie obserwowany jest dynamiczny wzrost popularności różnego rodzaju asystentów głosowych takich jak Apple Home Pod, czy Amazon Echo. Dzięki wykorzystaniu chmury i Azure Functions możemy budować systemy reagujące i informujące o zaistniałych zdarzeniach.
Przeciwnicy rozwiązania natomiast głównie mówią o tzw. zimnych startach.
Biorąc pod uwagę stosunkowo młody wiek FaaS jako technologii, ma ona zarówno zwolenników jak przeciwników. Ci ostatni jako główny minus rozwiązania z reguły definiują tzw. zimny start, czyli dodatkowy czas potrzebny na odpowiedź na żądanie w stanie nieaktywnym.
Podsumowanie
Dzięki takim rozwiązaniom jak FaaS programiści nie będą musieli spędzać wielu godzin nad konfiguracją serwerów czy instalacją poprawek. Z punktu widzenia biznesu oznacza to koniec lub znaczące zmniejszenie budżetów na zbędne konfiguracje środowisk czy przygotowanie serwerów.