Serverless Computing

What is serverless computing?

Serverless computing is a type of cloud computing with a “Temporary server” processing model. In other words, when it needs to compute, the cloud computing services provider reserves the necessary resources such as CPU, memory, and disk space, then creates a temporary server to process it. When it has sent the results after processing, it will release the server resources, so it does not need to always hold the processing resources.

How is it different from other types of cloud computing?

When virtualization technology and cloud computing are increasingly involved in the software development process, it can greatly reduce tasks to prepare server infrastructure.

For example, you have no need to manage servers for Virtual Machine (IaaS), but focus only on the environment and applications that you want to use. The advent of serverless computing allows you to focus directly on the applications, and helps you to reduce the burden of server management.

Credit: medium.com

Who provides the serverless services?

Examples of major serverless service providers are as follows.

AWS Lambda – Provided by Amazon Web Services (AWS), which dominates the cloud computing market.

Azure Functions – Provided by Microsoft AzureGoogle Cloud Functions – Provided by Google Cloud

Advantages of using serverless

  • Cost savings because most serverless service providers charge based on the actual processing.
  • No need to install or prepare any environment for processing.
  • Reduce server maintenance workload as no server needed.
  • It is designed to be scalable from the beginning and it can be done automatically, so you have no need to concern about the system scalability, especially when there are many users which may cause a system failure.

Disadvantages of using serverless

  • While booking the resource and creating the server, it causes some latency in processing. As a result, the response speed will not be as fast as using a server as a virtual machine with all resources have been reserved.
  • Due to limited resource of the machine, it is not suitable for computing that requires high resources or takes a long processing time. You have to design your task to be smaller computing processes.
  • Developers have to change the concept of software design to be small functions instead.
  • After deciding to use a service provider, it is difficult to change to other providers because the software will be developed in a specific form of that provider.

Conclusion

Serverless computing is designed to deal with scalability and server management. It can reduce cost and time. It allows customers and development teams to focus on improving the functionality of the system to meet the business needs. Moreover, it can also shorten the software delivery time.

Credit: freepik