This is a guest post from Frank Wang, CTO of the serverless DevOps startup Seed. Frank talked about why they worked on and released the serverless local development platform SST. — Editor Shuo Yang
How did we start the serverless computing journey?
Serverless is a cloud-computing technology that allows developers to build highly scalable applications by just focussing on their code. Serverless applications are typically 70-80% cheaper and can instantly scale up or down depending on the traffic. For example, acloud guru shared that they are running 287 Lambda functions, 19 microservices with 3.68 TB of data at the mere cost of $580 per month. Since its introduction in 2015, it's being rapidly adopted by both startups and enterprises alike.
Why did we start to build SST?
However, one of the challenges that serverless developers face is setting up a local development environment. Unlike traditional server based applications, where a developer can create a local environment by running their applications locally; serverless applications need to constantly communicate with other cloud based services.
For example, a simple serverless application can include an API endpoint, a serverless function connected to that endpoint, a message bus that receives messages from that function, and a subscriber function that reads the messages that are received. To work on the two functions (the API function and the subscriber function) locally; you'll need to emulate all the services involved. This is really hard to do and it effectively means that you are trying to emulate all the available cloud services on your local machine. To work around this, most serverless developers end up either working on their applications in parts. Or, they'll repeatedly deploy their changes to the cloud, just to test them.
SST here comes to help — enabling local development and debugging for serverless stacks
We decided to fix this. We created Serverless Stack Toolkit (SST), a CLI that enables Live Lambda Development — https://github.com/serverless-stack/serverless-stack. It allows you to work on your Lambda functions locally. It solves the local development challenge by deploying your serverless application to the cloud. And then streaming any function requests to your local client, where it'll execute the local version of the function and send back the response. So you'll be able to make changes live and test it without having to deploy. We think this is the direction cloud based application development is heading towards. And by making serverless more accessible, it'll truly unlock the potential of the cloud.
Guest Author: Frank Wang