What it is: Serverless computing is a model that enables code to run on cloud-based infrastructure without requiring it to be allocated to a server (virtual or physical). In Serverless Computing, instead of paying for the server your code runs on, you pay whenever the code is activated, which is to say, whenever your application (or function) is run.
What it does: Serverless Computing isn’t actually server-free computing. It’s simply running the running code on servers that belong to your cloud provider, not virtual servers you’ve rented from them. They take care of the provisioning and maintenance of computing resources, and you pay them for how often the code is used.
Why it matters: When you’re running a virtual server, you’re always paying for some capacity, whether or not you’re using it. So, if you have an application that runs occasionally, such as a web app that resizes uploaded images, you’re paying to host that application even when it’s not doing anything. However, with Serverless, you pay per use, which can be extremely economical, particularly for applications that only run in response to specific events. Serverless can also save money by reducing the time spent provisioning and maintaining computing resources. Additionally, code implemented with Serverless Computing scales instantly.
What to do about it: Consider asking your development team whether they’ve investigated the possibility of migrating program functions to Serverless Computing. Note that Serverless isn’t always the more economical or convenient choice and that a development team unaccustomed to Serverless Computing could face a steep learning curve.
- Can be cost-effective when compared to traditional cloud computing
- Saves time involved in provisioning and maintaining compute resources
- Creates applications or functions that can scale massively with demand
- Isn’t cost-effective for all applications
- Offered on a proprietary basis by cloud providers, making it difficult to integrate multiple cloud services in a single application
- Debugging and securing serverless applications can be more difficult
- Does not store application state – if this is required, it needs to be managed externally
Amazon is currently the biggest player in the Serverless Computing market, with AWS Lambda. Similar offerings are available from Microsoft, IBM, and Google. These services are fairly similar in pricing and core functionality. Since applications built on Serverless Computing often rely on other services offered by the cloud provider, preferences for one or another provider’s services could dictate the correct choice.
Case Study: Netflix
Netflix runs almost entirely on Amazon AWS, and relies on AWS Lambda Serverless Computing for intensive occasional processes. Notably, when film studios upload video, Lambda functions split the video into chunks and then begin the encoding process. Lambda also plays a part in Netflix’s security and backup functionality.