• Akademia
  • Blog
  • O Serverless
  • O stronie

Czy faktycznie serverless jest ta艅szy od tradycyjnych rozwi膮za艅?


Droga do Serverless

Czy faktycznie serverless jest ta艅szy od tradycyjnych rozwi膮za艅?

Szczera odpowied藕 brzmi: to zale偶y 馃槈

Wiem, 偶e nie na tak膮 odpowied藕 liczy艂e艣, wi臋c podrzuc臋 Ci troch臋 warto艣ciowych artyku艂贸w, aby艣 m贸g艂 wyrobi膰 swoje zdanie na ten temat. Na pocz膮tku jednak wyt艂umacz臋 od czego zale偶y ta odpowied藕: przede wszystkim od problemu do kt贸rego stosujesz rozwi膮zanie.

Je艣li Twoja aplikacja ma sta艂y, niezmienny, r贸wno roz艂o偶ony w czasie ruch przez ca艂膮 dob臋, ca艂y tydzie艅, ca艂y rok to na pewno taniej b臋dzie j膮 postawi膰 na serwerach. 馃槺

Dlaczego?

Poniewa偶, ten problem nie potrzebuje skalowalno艣ci i mo偶na dobra膰 idealn膮 wielko艣膰 (moc) serwer贸w do obs艂ugi tej aplikacji. Znika problem prze/niedoszacowania zasob贸w. W tym przypadku bardzo prosto uzyska膰 optymalne wykorzystanie zasob贸w. Upraszczaj膮c, je艣li serwer wykonuje prac臋 ca艂y czas (a nie tylko jest w艂膮czony bezczynnie) to b臋dzie bardziej optymalny kosztowo ni偶 alternatywa zaimplementowana w AWS Lambda.

A teraz przyjrzyjmy si臋 zupe艂nie odwrotnemu przypadkowi.

System, kt贸ry ma totalnie nieprzewidywalny ruch. Od kilku os贸b na minut臋 do nawet dziesi膮tek tysi臋cy u偶ytkownik贸w. Bardzo zmienny w czasie. B臋dzie zdecydowanie ta艅szy w serverless.

Tutaj skalowalno艣膰 jest kluczowa. Od razu wida膰, 偶e ci臋偶ko dobra膰 serwery tak, aby by艂y w optymalny spos贸b wykorzystane, efektywnie zwi臋kszaj膮c koszt rozwi膮zania serwerowego.

Dodatkowym czynnikiem, cz臋sto pomijanym w dyskusjach opartych o cenniki, jest fakt koszt贸w implementacji skalowalnego i wysoko dost臋pnego systemu. W 艣wiecie serwer贸w jest to zadanie nietrywialne, a to znacznie zwi臋ksza koszty projektu.

W serverless skalowalno艣膰 i wysoka dost臋pno艣膰 (odporno艣膰 na awarie) jest wpisana niejako w DNA tej architektury. Nie wymaga dodatkowy nak艂ad贸w pracy na implementacj臋. Od zera do 1000 偶膮da艅 na sekund臋? 呕aden problem dla AWS Lambda.

Od czego zale偶膮 koszty?

Na koszt rozwi膮za艅 wp艂ywa nie tylko koszt serwera/funkcji. W ka偶dej chmurze cenniki s膮 skomplikowane. I trzeba mie膰 tego 艣wiadomo艣膰, 偶e p艂acimy za mn贸stwo rzeczy. Dlatego polecam Ci zapozna膰 si臋 z artyku艂em The hidden costs of serverless, kt贸ry 艂adne pokazuje, 偶e na koszt aplikacji serverless sk艂adaj膮 si臋 (g艂贸wnie) nast臋puj膮ce czynniki:
Kategorie koszt贸w w serverless

殴r贸d艂o: The hidden costs of serverless

Z tego wida膰, 偶e koszt API Gateway jest wi臋kszy od koszt贸w Lambdy. Musz臋 jednak by膰 z Tob膮 zupe艂nie fair i powiedzie膰, 偶e nie do ko艅ca zgadzam si臋 z tymi za艂o偶eniami. Je艣li ka偶dy request wywo艂uje jedn膮 funkcje lambda to faktycznie tak to wygl膮da, ale moim zdaniem na jeden request 艣rednio w aplikacjach przypada wywo艂anie 3 funkcji lambda, wi臋c efektywnie stosunek koszt贸w API Gateway do Lambda jest trzykrotnie mniejszy. Zdarza艂o mi si臋 pisa膰 aplikacje, kt贸re w og贸le nie u偶ywa艂y API Gateway. Dodatkowo od zesz艂ego roku zamiast API Gateway mo偶na wykorzysta膰 Application Load Balancer, kt贸ry jest ta艅szy.

Po raz kolejny, wszystko zale偶y od konkretnej aplikacji i ci臋偶ko uog贸lnia膰.

Fajnie jest to pokazane w tym artykule, gdzie jeden autentyczny przyk艂ad pokazuje, 偶e serverless okaza艂 si臋 by膰 2000 razy ta艅szy. Nast臋pnie, autor zestawia go z przyk艂adem, gdzie serverless by艂 100 razy dro偶szy.

Bardzo konkretne por贸wnanie serverless vs serverfull znajdziemy w artykule Kamila Kota Creating A Serverless Answer For eCommerce. Gdzie autor zbudowa艂 t臋 sam膮 aplikacj臋 w dw贸ch architekturach i por贸wna艂 ich koszty. Przy ruchu na poziomie 5000 偶膮da艅 na sekund臋 przez ca艂膮 dob臋, aplikacja serwerowa kosztowa艂aby 1427 dolar贸w. R贸wnowa偶ne rozwi膮zanie serverless oko艂o 800 dolar贸w. Czyli 178% taniej, i to przy pe艂nym, r贸wnomiernym ob艂o偶eniu, kt贸re faworyzuje rozwi膮zania serwerowe!

Gdy poszukamy, to w internecie znajdziemy wiele przyk艂ad贸w na to, 偶e migracja na serverless przynios艂a wymierne korzy艣ci, dziesi膮tki tysi臋cy dolar贸w oszcz臋dno艣ci s膮 na porz膮dku dzienny. Coca-cola North America jaki艣 czas temu przesz艂a z EC2 na serverless i by艂a na tyle uprzejma, aby podzieli膰 si臋 z nami swoimi do艣wiadczeniami. Koszty Coca-Coli spad艂y z 13000 dolar贸w rocznie do 4490 dolar贸w. Wi臋cej ciekawych przyk艂ad贸w w tym artykule How Much Money Can You Save By Going Serverless?

Czyli w ko艅cu jak jest? Czy serverless jest ta艅szy?

Nie wierz mi, wyr贸b swoje zdanie! 馃槂

Ja ju偶 jestem *鈥漵przedany鈥* i uwa偶am, 偶e to 艣wietne rozwi膮zanie, kt贸re nale偶y zawsze rozwa偶y膰 przed budow膮 lub modernizacj膮, ka偶dego systemu 馃憤馃槂

Na bazie swoich do艣wiadcze艅 uwa偶am, 偶e na temat trzeba spojrze膰 z perspektywy TCO (Total Cost of Ownership). Statystyczny developer w korporacji (sorry je艣li Ci臋 urazi艂em) nie zastanawia si臋 na przyk艂ad nad kosztami przesy艂u danych po sieci. Nie my艣li o tym czym zajmuj膮 sie administratorzy (sie膰, zarz膮dzanie serwerami, backupy, disaster recovery), bezpieczniki (bezpiecze艅stwo, korporacyjny firewall) i tak dalej. To wszystko s膮 ogromne koszta ludzkie oraz sprz臋towe. Developer programuje, nie my艣li, co dalej si臋 dzieje z jego aplikacj膮.馃槈 Z perspektywy programisty bardzo 艂atwo pomin膮膰 te koszty, poniewa偶 na co dzie艅 nie ma do czynienia z tego typu zadaniami.

Pomijaj膮c te koszty trudno dostrzec pe艂n膮 warto艣膰 rozwi膮za艅 serverless, kt贸re zdecydowanie zmniejszaj膮 lub nawet je eliminuj膮. Dobry architekt musi mie膰 艣wiadomo艣膰 tych rzeczy.