Ostatnio w trakcie przygotowania szkolenia moje spojrzenie na serverless uległo zmianie. Delikatnie, mały shift. Jak się okazało, bardzo znaczący. Do tej pory jakoś usilnie niosło mnie do tego, że Lambda/Functions == serverless. I jest to prawdą, ale też nie całą.
Zanim serverless aktualny został spopularyzowany istniał sobie SaaS. SaaS miał się dobrze, dużo osób korzystało, korzysta i korzystać będzie z usług SaaS’owych. Ma to ręce i nogi – płacimy za wykorzystanie, płacimy za daną funkcjonalność, płacimy za to co potrzebujemy… wait a minute… też wam coś już tutaj świta?
I jakoś tak w tym momencie zaskoczyło mi w głowie, że BaaS czy MBaaS to właśnie SaaS tylko ktoś KONIECZNIE chciał stworzyć nowy akronim i być wychwalany po WIEKI WIEKÓW Internetach.
SaaS może być wszystkim – od bazy danych, po uwierzytelnianie, hosting plików, API, wszystko! Tylko, że SaaS w sam w sobie może nam pozwolić jedynie na tworzenie prostych systemów i aplikacji webowych. Jeżeli chcemy coś bardziej skomplikowanego to prędzej czy później będziemy potrzebować jakiegoś kodu, jakieś logiki. Coś co umożliwi nam zareagowanie na zdarzenie lub odpowiednie podjęcie decyzji co do tego co ma się stać dalej. Może też tak być, że będziemy potrzebować jakiegoś endpointu z którym będziemy się komunikować.
Takie rzeczy przeważnie tworzyliśmy w oparciu o aplikacje webowe – tworzyliśmy projekt Web API, MVC i JAAAZDA. To zaś trzeba było z deployować w jakimś konkretnym planie albo na jakiś serwerze. A skoro mamy MVC to może i SQL? Itd..
I tak by było dalej, gdyby nie funkcje. To właśnie one są kluczem do serverless gdyż umożliwiają nam pisanie rozwiązań które mogą decydować co dalej, być bezstanowe/stanowe, odpowiadać na różne endpointy, tworzyć API czy też idealnie służyć jako miejsca integracji z innymi systemami. A wszystko w zupełnie nowym modelu finansowym.
To właśnie funkcje spowodowały, że ktoś na siłę chce przemianować SaaS jako BaaS. Bo nagle się okazuje, że nasza bazka na SaaS może z funkcją i blobem stworzyć zaawansowane rozwiązanie SPA przy minimalnych kosztach.
Cały ten shift który u mnie nastąpił to właśnie zmiana myślenia dotycząca SaaS i FaaS. Wcześniej to były dla mnie osobne byty. Miałem kłopot ze zrozumieniem także czemu ktoś nazywa coś BaaS kiedy coś jest SaaS o czym pisałem. Od niedawna wiem, że ktoś specjalnie (na złość, miał złe intencje itp. żartuje… ;)) próbował mi to skomplikować ;) Dodatkowo zaczynam widzieć klocki, klocki pasujące do siebie w łatwy i konkretny sposób. Rozwiązanie nie polega już na jakie aplikacje i serwery potrzebujemy. Tylko jakie usługi chcemy ze sobą połączyć. Jakie klocki, gdzie wykorzystać i jaki kod ma powstać by to wszystko ze sobą połączyć.
Z miejsca też dużo ŁATWIEJ jest zacząć projektować systemy, jeżeli na to spojrzy się w ten sposób.
Historia w obrazkach, z myślenia błędnego:
Wszedłem na wyższy poziom abstrakcji ;) i teraz to jest prawdziwe:
Jednak bez funkcji, serverless jaki znamy teraz by nie istniał:
Pod serverless kryje się dużo więcej i nie zdziwiłbym się, gdyby znaczenie tego słowa ulegało delikatnie zmianie i szlifowaniu w najbliższych latach.
Może te kilka słów rozjaśni ciutkę sprawę tego jak się ma SaaS tfu BaaS tfu MBaaS do Serverless. Też mieliście z tym problem czy to tylko ja taki… jestem?