Określenie, czy przetwarzanie bezserwerowe odpowiada potrzebom firmy

Ukończone

Aby ułatwić określenie, czy przetwarzanie bezserwerowe jest dla Ciebie odpowiednie, najpierw dowiedzmy się, na czym ono polega.

Co to jest przetwarzanie bezserwerowe?

O przetwarzaniu bezserwerowym można myśleć jak o funkcji udostępnianej jako usługa (FaaS) lub jak o mikrousłudze, która jest hostowana na platformie w chmurze. Logika biznesowa jest uruchamiana jako funkcje i nie musisz ręcznie aprowizować ani skalować infrastruktury. Dostawca chmury zarządza infrastrukturą. Aplikacje są automatycznie skalowane w poziomie lub w dół w zależności od obciążenia. Platforma Azure oferuje kilka sposobów tworzenia architektury tego rodzaju. Dwa najbardziej typowe podejścia to Azure Logic Apps i Azure Functions, które koncentrują się na tym module.

Co to jest usługa Azure Functions?

Usługa Azure Functions to bezserwerowa platforma aplikacji. Umożliwia deweloperom hostowanie logiki biznesowej, którą można wykonać bez aprowizacji infrastruktury. Usługa Azure Functions zapewnia wewnętrzną skalowalność i opłaty są naliczane tylko za używane zasoby. Możesz napisać kod funkcji w wybranym języku, w tym C#, Java, JavaScript, Python i PowerShell. Uwzględniono również obsługę menedżerów pakietów, takich jak NuGet i npm, dzięki czemu można używać popularnych bibliotek w logice biznesowej.

Korzyści z rozwiązania opartego na przetwarzaniu bezserwerowym

Przetwarzanie bezserwerowe to doskonałe rozwiązanie do hostowania kodu logiki biznesowej w chmurze. Oferty bezserwerowe, takie jak usługa Azure Functions, umożliwiają pisanie logiki biznesowej w wybranym języku. Automatyczne skalowanie jest naliczane, nie masz serwerów do zarządzania i opłaty są naliczane na podstawie tego, co jest używane — a nie w czasie zarezerwowanym. Poniżej przedstawiono kilka innych cech rozwiązania bezserwerowego, które należy wziąć pod uwagę.

Unikanie nadmiernej alokacji infrastruktury

Załóżmy, że aprowizowaliśmy serwery maszyn wirtualnych i skonfigurowano je z wystarczającą ilością zasobów do obsługi szczytowych czasów ładowania. Gdy obciążenie jest lekkie, potencjalnie płacisz za infrastrukturę, której nie używasz. Przetwarzanie bezserwerowe pomaga rozwiązać problem z alokacją dzięki automatycznemu skalowaniu w górę i w dół oraz naliczaniu opłat tylko wtedy, kiedy funkcja przetwarza dane.

Logika bezstanowa

Funkcje bezstanowe świetnie nadają się do przetwarzania bezserwerowego — wystąpienia funkcji są tworzone i niszczone na żądanie. Jeśli wymagany jest stan, można go przechowywać w skojarzonej usłudze magazynu.

Sterowane zdarzeniami

Funkcje są sterowane zdarzeniami. Są one uruchamiane tylko w odpowiedzi na zdarzenie (nazywane "wyzwalaczem"), takie jak odbieranie żądania HTTP lub dodawanie komunikatu do kolejki. Wyzwalacz możesz skonfigurować jako część definicji funkcji. To podejście upraszcza kod, umożliwiając zadeklarowanie, skąd pochodzą dane (wyzwalacz/powiązanie wejściowe) i gdzie trafiają (powiązanie wyjściowe). Nie musisz pisać kodu, aby obserwować kolejki, obiekty blob, centra itd. Możesz skoncentrować się wyłącznie na logice biznesowej.

Usługi Functions można używać w tradycyjnych środowiskach przetwarzania

Funkcje są kluczowym składnikiem przetwarzania bezserwerowego, ale są również ogólną platformą obliczeniową do wykonywania dowolnego typu kodu. Jeśli potrzeby aplikacji zmienią się, możesz podjąć projekt i wdrożyć go w środowisku bezserwerowym. Zapewnia to elastyczność zarządzania skalowaniem, uruchamiania w sieciach wirtualnych, a nawet całkowitego izolowania funkcji.

Wady rozwiązania opartego na przetwarzaniu bezserwerowym

Przetwarzanie bezserwerowe, jak zapewnia usługa Azure Functions w planie Zużycie, nie zawsze jest odpowiednim rozwiązaniem do hostowania logiki biznesowej. Poniżej przedstawiono kilka właściwości funkcji, które mogą mieć wpływ na decyzję dotyczącą hostowania usług za pomocą przetwarzania bezserwerowego.

Czas wykonywania

Domyślnie funkcje mają limit czasu pięciu (5) minut. Ten limit czasu można skonfigurować i wydłużyć maksymalnie do 10 minut. Jeśli wykonanie Twojej funkcji trwa dłużej niż 10 minut, możesz ją hostować na maszynie wirtualnej. Ponadto jeśli Twoja usługa jest inicjowana za pośrednictwem żądania HTTP i oczekujesz wartości jako odpowiedzi HTTP, limit czasu jest ograniczony do 2,5 minuty. Istnieje jednak również opcja o nazwie Durable Functions , która umożliwia orkiestrowanie wykonań wielu funkcji bez żadnego limitu czasu.

Częstotliwość wykonywania

Inną cechą jest częstotliwość wykonywania. Jeśli oczekujesz, że klienci będą wykonywać funkcję w sposób ciągły, rozsądnie byłoby oszacować użycie i odpowiednio obliczyć koszt korzystania z funkcji. Może okazać się, że tańsze będzie hostowanie usługi na maszynie wirtualnej.

W przypadku skalowania funkcji co 10 sekund można utworzyć tylko jedno wystąpienie aplikacji funkcji przez maksymalnie 200 wystąpień. Należy pamiętać, że każde wystąpienie może obsługiwać wiele współbieżnych wykonań, więc nie ma ustalonego limitu liczby ruchu, jaki może obsłużyć pojedyncze wystąpienie. Różne typy wyzwalaczy mają różne wymagania dotyczące skalowania, dlatego zbadaj wybrany wyzwalacz i dowiedz się, jakie ma ograniczenia.