What is Serverless Computing?
Serverless computing is a cloud computing model in which resources are allocated on-demand and the provider takes care of the resources on behalf of the customer. The major advantage of serverless computing is that you don't have to worry about infrastructure management tasks like provisioning of servers, patching of servers etc. The time saved by not taking these tasks can be spent on building a robust system to serve the customer better.
Benefits of Serverless Computing
Some of the benefits of serverless computing are:
- Lower Costs: It is generally considered as cost-effective because of a pay-per-use model. You will only pay for what resources you use rather than paying for the idle resources provisioned in advance.
- Faster To Market: Serverless architectures are quick to as they can remove some of the operational overhead. It will enable you to release faster and iteratively without thinking about the right capacity to provision.
- Scalability: You don't have to worry about the configuration to scale your application. The provider handles the scaling on demand.
- Simplified Application Logic: You can define simple functions which will have single responsibility to solve a particular problem. This is Function As A Service (FAAS). One of the examples is sending emails.
Disadvantages of Serverless Computing
Some of the disadvantages of serverless computing are:
- Monitoring & Debugging: It is hard to monitor and debug serverless systems due to their distributed nature. You will need a proper tracing system set up to track every hop taken by a request or the steps taken to complete the process.
- Vendor Lock-In: Each cloud provider has a specific offering for running your serverless applications. Once the applications are designed and deployed as per the offering, it is hard to change the vendor, hence locking in with the same vendor. To avoid this using cloud-agnostic tech like containers and Kubernetes to deploy your applications.
Serverless Services on AWS
Some of the services offered by AWS are:
This is a quick intro to serverless computing. I will post more articles and code examples to develop and deploy serverless applications on AWS using some of the above mentioned AWS offerings.