Serverless, do czego może się przydać w aplikacjach mobilnych?

Posted by Maciej Gos on Monday, April 2, 2018

TOC

Ostatnio bardzo modnym hasłem jest serverless ale jak to się ma do aplikacji mobilnych?

Dzisiejszy wpis spróbuje odpowiedzieć na to pytanie, oraz przedstawię moją opinię w tej kwestii.

Czym jest serverless?

Wielu pewnie by się zapytało ale czym jest ten cały serverless? Przecież każda usługa działająca w chmurze korzysta z jakiegoś serwera?

Tak ale jest małe ale…

Obecnie tworząc rozwiązania mobilne możemy skorzystać z naszych serwerów, oraz API ale niekoniecznie będzie to najbardziej optymalne kosztowo rozwiązanie. Często dużo lepszym rozwiązaniem będzie użycie gotowych komponentów dostarczanych przez firmy takie jak Microsoft, Google czy Amazon. Dlatego też powstały rozwiązania w chmurze typu BaaS, oraz nowsze FaaS.

Dzięki zastosowaniu rozwiązań chmurowych odpada nam cała część pracy związana z utrzymaniem maszyn. Pokrótce wyjaśnijmy sobie oba skróty.

BaaS – Backend as a Service

Dzięki wykorzystaniu chmury możemy skorzystać z gotowych komponentów takich jak mechanizmy logowania, skalowalna baza danych, cache, itd.. Dzięki temu programista może skupić się na dostarczaniu rozwiązań dla biznesu.

Wszystkie wymienione komponenty i wiele innych są dostępne jako usługi w chmurze które możemy prosto wykorzystać w naszych aplikacjach. Dzięki temu redukujemy czas i koszt potrzebny do dostarczenia naszych aplikacji.

Ale nie jest to wpis o BaaS tylko o serverless. Tutaj pojawia się nowość…FaaS.

FaaS – Function as a Service

Wreszcie dochodzimy do naszego serverless. W moim rozumieniu koncepcja serverless jest w pewnym sensie rozwinięciem technologii API i architektury microservices ale z ulepszonym mechanizmem rozliczania, oraz użycia.

W 99% wypadków aplikacja potrzebuje jakiejś części serwerowej w postaci API działającego na danych. Tutaj z pomocą przychodzi nam rozwiązanie FaaS, które jest ewolucją obecnie dostępnych rozwiązań typu App Service.

The key operational difference between FaaS and PaaS is scaling.

Zalety modelu FaaS

Jest to środowisko w którym host jest używany przez wielu klientów ale jest to na tyle optymalnie rozwiązane, że dostrzeżenie iż jest to środowisko współdzielone jest wręcz niemożliwe. Plusem takiego rozwiązania jest redukcja kosztów.

Płacimy tylko za faktyczne zużycie…

Kolejną różnicą w porównaniu do tradycyjnego modelu, oraz modelu PaaS jest automatyczne skalowanie. Nasze usługi automatycznie się skalują wraz ze wzrostem zapotrzebowania. Znika więc problem z dostępnością naszych aplikacji, oraz czasem oczekiwania np.. Na otwarcie.

FaaS jest również dobrym narzędziem ze względu na tzw. Time to market pozwala nam to na eksperymentowanie, oraz szybkie dostarczenie gotowych rozwiązań.

Wady modelu FaaS

Niestety nie ma róży bez kolców i jak każda technologia również ta ma swoje wady. Największymi problemami z jakimi będą się borykać firmy jest tzw. „vendor lock-in”, czyli decydując się na użycie danego dostawcy będziemy od niego w pewnym sensie uzależnieni.

W obecnym stadium rozwoju serverless ciężko jest przenieść rozwiązanie do innego dostawcy. Ze względu na różnice w API lub użytych koncepcjach. Często wymaga to zmian w narzędziach czy wręcz samym kodzie.

Technologie

Jakich technologii możemy obecnie użyć?

  • Azure Functions – Microsoft
  • AWS Lambda – Amazon
  • Cloud Functions – Google
  • Firebase – Firebase od Google

Obecnie każda z liczących się na rynku firm dostarcza jakąś formę rozwiązania serverless. Sama koncepcja serverless pojawiło się już ok. 2015 roku i od tamtej pory największą inwestycję w tym temacie poczynił Amazon ze swoimi AWS Lambda.

Początki AWS Lambda sięgają końca 2014 roku kiedy to zostały po raz pierwszy zaprezentowane i udostępnione programistom. Obecnie jest to bardzo dojrzały produkty dostarczający bardzo rozbudowane środowisko i dostęp do wszystkich usług Amazon.

Tim Wagner bardzo fajnie opisał jako można wykorzystać AWS Lambda jako microservices.

Firmy takie jak Microsoft czy Google dołączyły do tego wyścigu dopiero w 2016 ale obie platformy bardzo dynamicznie się rozwijają.

Zostaje jeszcze Firebase które powstało w 2011 i trzy lata później zostało przejęte przez Google. Jest to platforma dedykowana tworzeniu rozwiązań mobilnych.

Czy serverless jest fajny?

Praca w chmurze, oraz środowisku serverless pozwala na prostą integrację z innymi usługami o których już pisałem wcześniej. Podoba mi się szybkość tworzenia rozwiązania możemy dzięki temu skupić się na dostarczaniu wartości biznesowej.

Możliwe staje się szybkie wypuszczanie prototypów i badanie zapotrzebowania klientów. Odpadają nam kwestie związane z hostowaniem lub bezpieczeństwem.

W świecie w którym coraz większa część społeczeństwa korzysta z urządzeń mobilnych czas dostarczenia jest bardzo dużym plusem.

Podsumowując model FaaS będzie się nadal bardzo prężnie rozwijał i na pewno znajdzie to swoje odzwierciedlenie w aplikacjach mobilnych. Przypomniało mi się słynne hasło Satya Nadella z 2014 roku “https://news.microsoft.com/2014/03/27/satya-nadella-mobile-first-cloud-first-press-briefing/"„Mobile First Cloud First”, które staje się faktem.

Jeżeli chcecie coś więcej poczytać o modelu serverless odsyłam was do świetnego artykułu Mike Roberts.

Maciej Gos

真诚赞赏,手留余香

使用微信扫描二维码完成支付


comments powered by Disqus