Wszyscy dostawcy usług w chmurze sprzedają swoje „bezserwerowe” rozwiązania. Obietnicą jest to, że bezserwerowe zastąpi sposób, w jaki programiści opracowują swoje oprogramowanie, a operacje zarządzają nim w produkcji.
Co to jest „bezserwerowy”? Gdzie można dowiedzieć się więcej na ten temat i jak można go dzisiaj wykorzystać?
terminology
serverless
Jewgienij
źródło
źródło
Odpowiedzi:
Artykuł Wikipedii na temat obliczeń bezserwerowych stanowi dobre wprowadzenie do tego tematu:
Chodzi o to, że programista nie powinien wcale troszczyć się o infrastrukturę serwera . Dostawca chmury zarządza serwerami fizycznymi, używanym systemem operacyjnym i wszystkimi tradycyjnymi trudnościami związanymi z uruchomieniem serwera.
Obliczenia bezserwerowe zmieniają architekturę z myślenia o tym, co robią maszyny, na funkcje . AWS Lambda to przykład, który przychodzi na myśl - płacisz i uruchamiasz funkcje , nie wspominając o tym, jaki typ infrastruktury fizycznej działa poniżej. Istnieją również konkurencyjne hosty bezserwerowe, takie jak Azure Functions (lub możesz po prostu wyszukać, jeśli nie jesteś zainteresowany żadnym z nich).
Jest wiele zalet niewymagania serwera (choć w niektórych przypadkach musisz pisać nieco inaczej niż do tej pory, ponieważ jest to zupełnie inna architektura):
Skalowalność zasadniczo jest bezpłatna - ponieważ po prostu płacisz za uruchomienie funkcji, dostawca chmury może z łatwością poświęcić więcej sprzętu w razie potrzeby do uruchomienia kodu. Możesz także potencjalnie skalować wraz ze wzrostem popytu, zamiast płacić stałą stawkę, niezależnie od tego, czy Twoja aplikacja jest używana raz czy milion razy.
Oprogramowanie i sprzęt serwerowy nie muszą już być zarządzane przez programistę - zajmuje się tym dostawca chmury. Jeśli kiedykolwiek używałeś czegoś takiego jak Arch na serwerze, będziesz wiedział, jak łatwo jest usunąć krytyczny pakiet i wszystko zepsuć!
Pozwala to programistom skupić się na tym, w czym są dobrzy - w kodzie . Większość programistów prawdopodobnie nie będzie świetna zarówno pod względem infrastruktury serwerów, jak i programowania - bezserwerowy po prostu usuwa jeden problem z równania.
źródło
Martin Fowler ma dobry przegląd:
https://martinfowler.com/articles/serverless.html
TL; DR
„Bezserwerowy” opisuje tworzenie aplikacji i architekturę, która projektuje aplikacje, w których infrastruktura jest efemeryczna , co oznacza, że zazwyczaj są one oparte na kontenerach i mogą „wchodzić i wychodzić” w oparciu o mechanizm dynamicznego skalowania. Wskazuje to na użycie bezstanowych architektur zależnych od technologii rozproszonych (takich jak magazyny kluczy / wartości).
źródło
„Bezserwerowy”, jak wiele rzeczy w naszej przestrzeni, staje się przeciążonym terminem. Ale ogólnie oznacza to „Funkcjonalnie, nasza architektura nie zależy od udostępniania lub bieżącej konserwacji serwera”
Pierwsze, co przychodzi mi do głowy, to jednostronna aplikacja javascript, która korzysta z pamięci lokalnej i jest przechowywana na czymś takim jak Amazon S # lub Github Pages (lub dowolna strona statyczna - to tylko typowe przykłady). Wyobraź sobie coś w stylu aplikacji typu „todo” lub „załatwianie spraw”, która działa całkowicie w przeglądarce. Twoja przeglądarka trafia na usługę taką jak S3, aby pobrać kod, a wszystkie przechowywane elementy są przechowywane w pamięci lokalnej w przeglądarce. Nie ma serwera, który utrzymasz w tym celu.
Druga instancja, która jest nieco bardziej skomplikowana (a także ta, która spopularyzowała termin „bez serwera”), korzysta z usługi takiej jak AWS Lambda. Pozwól, że wyjaśnię to, przedstawiając rozwiązany problem:
Wiele razy w mojej karierze rozwiązałem problem biznesowy dla klienta z niewiele więcej niż kodem ruby, który okresowo wyodrębniał, przekształcał i ładował (zwykle napisany jako zadanie rake). Po rozwiązaniu zwykle zautomatyzowałem go za pomocą crona. Potem pojawia się problem: „gdzie mam hostować to, co działa raz na godzinę?” W przypadku niektórych klientów skonfigurowaliśmy serwer w ich istniejącej infrastrukturze. Dla innych stworzyliśmy instancję EC2, mimo że w 99% przypadków była ona bezczynna. W obu przypadkach istnieje serwer, który wymaga obsługi administracyjnej, łatania, monitorowania, aktualizacji itp.
Dzięki Amazon Lambda mogę podjąć to zadanie prowizji i uruchomić je w swojej usłudze jako czystą „funkcję”. Mogę to nawet zaplanować. Ten klient nie potrzebowałby już infrastruktury do tak prostej rzeczy raz na godzinę.
W „bezserwerowym” nadal istnieje serwer, podobnie jak w „chmurze” jest jeszcze komputer. Jest na nim tylko poziom abstrakcji, który bierze na siebie część odpowiedzialności za środowisko.
źródło
Wszystkie świetne odpowiedzi już. Przeglądałem wpis na blogu Thinking Serverless - jak nowe podejście zaspokaja potrzeby współczesnego przetwarzania danych w HighScalability, gdzie natknąłem się na to doskonałe wyjaśnienie tego, co oznacza brak serwera:
I jeszcze jedna nauka z mojego osobistego doświadczenia w budowaniu infrastruktury bez serwerów:
Na przykład: przechowuj pliki w kolejce AWS SQS. Gdy liczba wiadomości w kolejce osiągnie 10, uruchom zdarzenie dla Lambda.
źródło
Oprócz prostego wyjaśnienia definicji terminu „bez serwera”, pochodzenie tego terminu i jego historia dają także pewien wgląd w jego znaczenie. Pojęcie pochodzi z JAWS ram przez Austen Collins , który został później przemianowany jako Serverless . Dowiedziałem się o tym po raz pierwszy w sesji AWS re: Invent 2015 , w której można pomóc w datowaniu koncepcji. Oto, co faktycznie ukształtowało termin Bezserwera, który następnie szybko rozprzestrzenił się na inne systemy chmurowe:
źródło