5 wzorców wykorzystania serverless na przykładzie Azure

25/10/2018

Czym jest serverless?

Historia serverless sięga 2014 roku, kiedy to Amazon ogłosił  powstanie AWS Lambda. Od tego czasu wszyscy wiodący gracze na rynku poczynili znaczące inwestycje w tym obszarze.

Z roku na rok dostarczają nam – programistom coraz doskonalszych narzędzi i rozwiązań, dzięki którym czas potrzebny na konfigurację środowisk i przekazanie gotowego produktu lub prototypu znacznie się skraca.

W tym właśnie tkwi piękno całego rozwiązania serverless, będącego rozwinięciem koncepcji PaaS, czyli Platform-As-A-Service. Programowanie serverless nazywane również FaaS (Functions-As-A-Service) pozwala zredukować koszty utrzymania rozwiązania w chmurze dzięki wykorzystaniu modelu Pay-As-You-Go oraz innego niż np. w usłudze Azure App Service współdzielenia zasobów, przy zapewnionym automatycznym skalowaniu i zarządzaniu zasobami potrzebnymi do obsłużenia ruchu.

Z perspektywy produktu i programowania skraca się tzw. Time-To-Market, a programista zamiast tracić czas na walkę z serwerami i konfiguracją może skupić się na dostarczaniu wartości biznesowej.

Wspomniany  Time-To-Market, czyli czas potrzebny na dostarczenie nowej funkcjonalności lub pierwszej wersji produktu jest dla biznesu bardzo ważnym aspektem i mocnym argumentem przemawiającym na korzyść technologii serverless.

 

Kiedy możemy skorzystać z koncepcji serverless?

Event-driven Data Processing

Jednym z częstszych zastosowań może być obsługa konkretnego zdarzenia wykonywanego w trybie “on-demand”. Przykładowo – wgrywanie do Azure Blob Storage pliku, który musi zostać przetworzony.

serverless

Jest to popularne wykorzystanie chmury w rozwiązaniach hybrydowych,  gdzie część procesu jest przekazywana ze środowiska on-premise do chmury.

Przykład implementacji takiego rozwiązania możecie znaleźć na naszym GitHub.

 

Jakie to daje nam korzyści?

Dzięki takiemu rozwiązaniu możemy praktycznie dowolnie skalować zapotrzebowanie na zasoby w zależności od potrzeb lub konieczności udostępnienia danych w innym regionie. Dodatkową zaletą może być redukcja kosztów działania naszego wewnętrznego datacenter poprzez przeniesienie bardzo złożonych obliczeniowo operacji do chmury.

Należy jednak pamiętać, że funkcje mają pewne limity czasu wykonania, więc bardzo złożona obliczeniowo operacja będzie musiała zostać inaczej zaprojektowana.

 

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

Jakie to daje nam korzyści?

Wykorzystując to rozwiązanie możemy znacząco zredukować koszty działania rozwiązania wykorzystując zalety modelu serverless i planu „Consumption Plan”, który jest standardowo wybierany dla modelu FaaS w Azure. Korzystając z planu “Consumption” płacimy tylko za faktycznie wykorzystany czas działania naszego API.

Dodatkowo, budując rozwiązanie w chmurze Microsoft Azure dzięki wykorzystaniu usługi Azure App Service nie musimy się martwić o hosting naszej aplikacji Web .

Aby dodatkowo zredukować koszta możemy w prosty sposób rozszerzyć nasze rozwiązanie o usługę Redis Cache. Jest to usługa cache dostarczana w modelu SaaS wykorzystująca znane i często wykorzystywane rozwiązanie Redis.

 

Mobile & IoT

W dobie tzw. smart home, czyli inteligentnych domów z inteligentnymi urządzeniami,  często stajemy przed problemem zbierania, analizy i prezentacji pochodzących z nich danych na urządzeniach mobilnych takich jak telefony czy tablety.

serverless

Jakie to daje nam korzyści?

Jest to kolejny ciekawy przykład zastosowania serverless. Dzięki wykorzystaniu Azure Functions możemy szybko zbudować API dla naszych inteligentnych produktów, oraz je skalować w zależności od potrzeb. Dzięki wykorzystaniu chmury i usług analitycznych możemy też udostępniać naszym klientom kolejne usługi, takie jak np. analizy zebranych danych w aplikacjach mobilnych.

 

Serverless Application Ecosystems

W tym 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.

Na zaprezentowanym diagramie podaliśmy przykład implementacji komunikacji ze Slack API urządzenia Amazon Echo. Dodatkowo pojawiające się dane są zbierane za pomocą usługi Azure Event Hub oraz dostępne do analizy za pomocą Azure Data Lake Analytics.

Usługa Azure Event Hub pozwala nam w czasie rzeczywistym w prosty sposób zbierać duże ilości danych dotyczących działania różnych urządzeń i komunikatów przez niewysyłanych.

Azure Data Lake Analytics jest to usługa pozwalająca przeprowadzać analizę na dużej ilości danych.

Taką architekturę można na przykład wykorzystać do zaimplementowania scenariusza: na podstawie komunikatu głosowego od użytkownika, dział HelpDesk w firmie dostaje powiadomienie na Slacka, żeby wykonać jakąś akcję.

serverless

Jakie to daje nam korzyści?

Dzięki użyciu Azure Functions osiągamy duża skalowalności naszego rozwiązania i możliwość integracji z innymi usługami działającymi w chmurze.

 

Event Workflow

Kolejnym przykładem wykorzystania serverless to procesy decyzyjne typu workflow, np. procesy związane z decyzjami o zakupach. Tutaj z pomocą przychodzą różnego rodzaju silniki workflow.

Dzięki wykorzystaniu Durable Functions jesteśmy w stanie budować procesy workflow w których aplikacja będzie oczekiwać na decyzję “przełożonego”.

serverless

Jakie to daje nam korzyści?

Przeniesienie procesów decyzyjnych do chmury w okresach wzmożonego ruchu lub mocnego obciążenia systemów da nam wymierne korzyści w postaci skalowania i elastyczności całego rozwiązania. Dzięki użyciu chmury może być ono dostępne na cały świat.

 

Podsumowanie

Wraz z rozwojem i upowszechnieniem chmury, firmy takie jak Microsoft będą dalej rozwijać technologie serverless. Towarzyszył temu będzie większy nacisk na wykorzystanie modelu PaaS, SaaS lub tutaj omawianego FaaS, który daje wiele benefitów związanych z obniżeniem kosztów operacyjnych firmy.

Dzięki temu, że część związana z administracją i bezpieczeństwem spoczywa na barkach dostawcy chmury, to my – programiści nie będziemy musieli spędzać wielu godzin nad konfiguracją serwerów czy instalacją poprawek. Zaoszczędzony czas, będziemy mogli poświęcić na tworzenie prototypów nowych funkcjonalności czy też całych produktów.

Z punktu widzenia biznesu oznacza to koniec lub prawie koniec wydatków na zbędne konfiguracje środowisk czy przygotowanie serwerów.

Autor: Maciej Gos, Wiodący Programista .NET, Altkom Software & Consulting

Zarejestruj się na webinar:

Wyrażam dobrowolnie zgodę na przetwarzanie moich danych osobowych dla potrzeb procesu realizacji zgłoszenia (pokaż więcej) przez Altkom Experts sp. z o.o. oraz Altkom Software & Consulting sp. z o.o. (ul. Chłodna 51, 00-867 Warszawa), zgodnie z Rozporządzeniem Parlamentu Europejskiego i Rady (UE) 2016/679 z dnia 27 kwietnia 2016 r. w sprawie ochrony osób fizycznych w związku z przetwarzaniem danych osobowych i w sprawie swobodnego przepływu takich danych („RODO”). Mam świadomość, iż podanie powyższych danych osobowych jest dobrowolne, ale konieczne do obsługi zgłoszenia oraz że posiadam prawo dostępu do treści swoich danych i możliwość ich poprawiania a zgoda może być odwołana w każdym czasie. Kontakt do inspektora ochrony danych osobowych w Altkom: iodo@altkom.pl

Wyrażam dobrowolnie zgodę na przetwarzanie moich danych osobowych w celach marketingowych (pokaż więcej)przez Altkom Experts sp. z o.o. oraz Altkom Software & Consulting sp. z o.o. (ul. Chłodna 51, 00-867 Warszawa)oraz otrzymywanie informacji handlowych drogą elektroniczną na adres e-mail i numer telefonu podany przeze mnie, zgodnie z Rozporządzeniem Parlamentu Europejskiego i Rady (UE) 2016/679 z dnia 27 kwietnia 2016 r. w sprawie ochrony osób fizycznych w związku z przetwarzaniem danych osobowych i w sprawie swobodnego przepływu takich danych („RODO”), oraz Ustawy z dnia 18 lipca 2002 r. o świadczeniu usług drogą elektroniczną. Mam świadomość, iż podanie powyższych danych osobowych jest dobrowolne oraz że posiadam prawo dostępu do treści swoich danych i możliwość ich poprawiania a zgoda może być odwołana w każdym czasie. Kontakt do inspektora ochrony danych osobowych w Altkom: iodo@altkom.pl

 

Watch for free

Enter your contact details to receive a link to the recording:

I voluntarily consent to the processing of my personal data for the purposes of the application process (show more) by Altkom Experts sp. z o.o. and Altkom Software & Consulting sp. z o.o. (51 Chłodna Street, 00-867 Warsaw), in accordance with Regulation 2016/679 of the European Parliament and of the Council of 27 April 2016 on the protection of individuals with regard to the processing of personal data and on the free movement of such data ("RoDO"). I am aware that providing the above personal data is voluntary, but necessary to handle the request, and that I have the right to access the content of my data and the possibility of correcting it, and that my consent may be revoked at any time. Please contact the Altkom Data Protection Officer: iodo@altkom.pl.

I voluntarily consent to the processing of my personal data for marketing purposes (show more)by Altkom Experts sp. z o.o. and Altkom Software & Consulting sp. z o.o. (ul. Chłodna 51, 00-867 Warsaw) and receiving commercial information by electronic means to the e-mail address and telephone number provided by me, in accordance with Regulation 2016/679 of the European Parliament and of the Council of 27 April 2016 on the protection of individuals with regard to the processing of personal data and on the free movement of such data ("RODO"), and the Act of 18 July 2002 on the provision of electronic services. I am aware that providing the above personal data is voluntary and that I have the right to access and correct my data and that my consent may be revoked at any time. Please contact the Altkom Data Protection Officer: iodo@altkom.pl.

 

Zarejestruj się na webinar:

Wyrażam dobrowolnie zgodę na przetwarzanie moich danych osobowych dla potrzeb procesu realizacji zgłoszenia (pokaż więcej) przez Altkom Experts sp. z o.o. oraz Altkom Software & Consulting sp. z o.o. (ul. Chłodna 51, 00-867 Warszawa), zgodnie z Rozporządzeniem Parlamentu Europejskiego i Rady (UE) 2016/679 z dnia 27 kwietnia 2016 r. w sprawie ochrony osób fizycznych w związku z przetwarzaniem danych osobowych i w sprawie swobodnego przepływu takich danych („RODO”). Mam świadomość, iż podanie powyższych danych osobowych jest dobrowolne, ale konieczne do obsługi zgłoszenia oraz że posiadam prawo dostępu do treści swoich danych i możliwość ich poprawiania a zgoda może być odwołana w każdym czasie. Kontakt do inspektora ochrony danych osobowych w Altkom: iodo@altkom.pl

Wyrażam dobrowolnie zgodę na przetwarzanie moich danych osobowych w celach marketingowych (pokaż więcej)przez Altkom Experts sp. z o.o. oraz Altkom Software & Consulting sp. z o.o. (ul. Chłodna 51, 00-867 Warszawa)oraz otrzymywanie informacji handlowych drogą elektroniczną na adres e-mail i numer telefonu podany przeze mnie, zgodnie z Rozporządzeniem Parlamentu Europejskiego i Rady (UE) 2016/679 z dnia 27 kwietnia 2016 r. w sprawie ochrony osób fizycznych w związku z przetwarzaniem danych osobowych i w sprawie swobodnego przepływu takich danych („RODO”), oraz Ustawy z dnia 18 lipca 2002 r. o świadczeniu usług drogą elektroniczną. Mam świadomość, iż podanie powyższych danych osobowych jest dobrowolne oraz że posiadam prawo dostępu do treści swoich danych i możliwość ich poprawiania a zgoda może być odwołana w każdym czasie. Kontakt do inspektora ochrony danych osobowych w Altkom: iodo@altkom.pl

 

Zarejestruj się na webinar:

Wyrażam dobrowolnie zgodę na przetwarzanie moich danych osobowych dla potrzeb procesu realizacji zgłoszenia (pokaż więcej) przez Altkom Experts sp. z o.o. oraz Altkom Software & Consulting sp. z o.o. (ul. Chłodna 51, 00-867 Warszawa), zgodnie z Rozporządzeniem Parlamentu Europejskiego i Rady (UE) 2016/679 z dnia 27 kwietnia 2016 r. w sprawie ochrony osób fizycznych w związku z przetwarzaniem danych osobowych i w sprawie swobodnego przepływu takich danych („RODO”). Mam świadomość, iż podanie powyższych danych osobowych jest dobrowolne, ale konieczne do obsługi zgłoszenia oraz że posiadam prawo dostępu do treści swoich danych i możliwość ich poprawiania a zgoda może być odwołana w każdym czasie. Kontakt do inspektora ochrony danych osobowych w Altkom: iodo@altkom.pl

Wyrażam dobrowolnie zgodę na przetwarzanie moich danych osobowych w celach marketingowych (pokaż więcej)przez Altkom Experts sp. z o.o. oraz Altkom Software & Consulting sp. z o.o. (ul. Chłodna 51, 00-867 Warszawa)oraz otrzymywanie informacji handlowych drogą elektroniczną na adres e-mail i numer telefonu podany przeze mnie, zgodnie z Rozporządzeniem Parlamentu Europejskiego i Rady (UE) 2016/679 z dnia 27 kwietnia 2016 r. w sprawie ochrony osób fizycznych w związku z przetwarzaniem danych osobowych i w sprawie swobodnego przepływu takich danych („RODO”), oraz Ustawy z dnia 18 lipca 2002 r. o świadczeniu usług drogą elektroniczną. Mam świadomość, iż podanie powyższych danych osobowych jest dobrowolne oraz że posiadam prawo dostępu do treści swoich danych i możliwość ich poprawiania a zgoda może być odwołana w każdym czasie. Kontakt do inspektora ochrony danych osobowych w Altkom: iodo@altkom.pl

 

Zarejestruj się na webinar:

Wyrażam dobrowolnie zgodę na przetwarzanie moich danych osobowych dla potrzeb procesu realizacji zgłoszenia (pokaż więcej) przez Altkom Experts sp. z o.o. oraz Altkom Software & Consulting sp. z o.o. (ul. Chłodna 51, 00-867 Warszawa), zgodnie z Rozporządzeniem Parlamentu Europejskiego i Rady (UE) 2016/679 z dnia 27 kwietnia 2016 r. w sprawie ochrony osób fizycznych w związku z przetwarzaniem danych osobowych i w sprawie swobodnego przepływu takich danych („RODO”). Mam świadomość, iż podanie powyższych danych osobowych jest dobrowolne, ale konieczne do obsługi zgłoszenia oraz że posiadam prawo dostępu do treści swoich danych i możliwość ich poprawiania a zgoda może być odwołana w każdym czasie. Kontakt do inspektora ochrony danych osobowych w Altkom: iodo@altkom.pl

Wyrażam dobrowolnie zgodę na przetwarzanie moich danych osobowych w celach marketingowych (pokaż więcej)przez Altkom Experts sp. z o.o. oraz Altkom Software & Consulting sp. z o.o. (ul. Chłodna 51, 00-867 Warszawa)oraz otrzymywanie informacji handlowych drogą elektroniczną na adres e-mail i numer telefonu podany przeze mnie, zgodnie z Rozporządzeniem Parlamentu Europejskiego i Rady (UE) 2016/679 z dnia 27 kwietnia 2016 r. w sprawie ochrony osób fizycznych w związku z przetwarzaniem danych osobowych i w sprawie swobodnego przepływu takich danych („RODO”), oraz Ustawy z dnia 18 lipca 2002 r. o świadczeniu usług drogą elektroniczną. Mam świadomość, iż podanie powyższych danych osobowych jest dobrowolne oraz że posiadam prawo dostępu do treści swoich danych i możliwość ich poprawiania a zgoda może być odwołana w każdym czasie. Kontakt do inspektora ochrony danych osobowych w Altkom: iodo@altkom.pl