Serverless MVP: Takeaways

Tariku Tessema
3 min readOct 26, 2019

--

The following post is part of a series of articles chronicling my journey into serverless implementation via a sample Case Study using a minimal viable product (MVP). TL; DR the source code used for the implementation and instructions on how to run the app locally are on GitHub.

Orion Screensaver Roku

I see two major advantages of serverless implementation compared to traditional always-live systems. The first advantage is being able to hand off scaling to cloud vendors vs. manual intervention. After all, if a process gets triggered by an event and the context in which it runs is elastic (optimized to scale as needed), there are fewer knobs to turn other than shipping the business logic that runs the application.

A non-serverless system, on the other needs maintenance plan, session management strategies, planning ahead of time to figure out the resources to allocate, and worse incur charges even if the application is not being used.

The second major advantage is being able to quantify the total cost of running an application to the very last bit that is processed. For example, the MVP product that I deployed as part of this weekend exercise has the following costs:

Twilio API: $0.01 per MMS message and $0.0075 for sending SMS message
Azure Function: 400,000 calls free and $0.000016/GB-s (per month)

If a user sends five Photos per day to his/her channel feed SMS notification, server orchestration and processing cost runs to about $2.64 per month (~ 300 messages and serverless calls to support them). In data terms, it will amount to an application cost of ~$0.0067 per MB/per Month [1]. A number that is very hard to quantify in a traditional non-serverless application.

Serverless technologies and implementation makes a lot of sense for getting MVP to market rapidly and receive real market feedback. From the development perspective, the process-oriented implementation combined with a stateless modular pattern makes working with serverless solutions enjoyable.

Bigger Impact

Being able to run a piece of code and getting billed for usage vs allocated resources is a game-changer for building the next generation of applications. Not worrying about system updates, minimal plumbing code, and ease of development allows developers to focus on what is most important, i.e. delivering value-added features to the business applications. Less maintenance not only improves the business value of an application it also significantly lowers operational cost, for instance a serverless migration project by Coca Cola is reported to have slashed operating costs for vending machines by about 65%.

PS: My bill to run the project from development, testing, and publication is a whopping $0.13. (which is mostly covered by the generous free trial allowances by the services I signed up for, namely, Twilio and Azure).

You can find the code to run the application locally on GitHub or the Roku app in the channel store.

[1] Based on sending 150 photos to the app per month with each about 2.59MB in size.

--

--

Tariku Tessema
Tariku Tessema

Written by Tariku Tessema

Tariku is a tech enthusiast who works as a Software Engineer in Boston, MA.

No responses yet