What is Serverless Computing?
Serverless computing represents another step forward in the increased separation of the components of computing environments made possible by the use of cloud services. Infrastructure as a Service (IaaS) provides a way for IT departments to reduce their on-site infrastructure and its associated costs. Cloud service organizations provide physical infrastructure based on a customer’s requirements in the IaaS model. The customer still needs to be involved in planning the servers and storage that they will require in order to run their applications on the cloud.
In the serverless model, concerns over the infrastructure used in cloud instances are eliminated. Serverless computing takes advantage of the concept of Function as a Service (FaaS), which provides servers and computing resources only when they are required by applications. This enables IT teams to focus on managing what their applications do instead of the resources they require in order to execute successfully.
Major cloud providers have invested heavily in the serverless paradigm. Some of the offerings that support the serverless model are:
- Amazon Web Services (AWS) Lambda
- Google Cloud Functions
- Azure Functions
- Alibaba Function Compute
- IBM OpenWhisk
What Are the Benefits of Serverless Computing?
Online technical resource Dzone describes these benefits that can be enjoyed by developing applications using the serverless model.
- Lower Costs - Serverless computing reduces costs associated with providing and managing the computing power required by an application development team. There is no need to manage servers and you only pay for the computing resources that your application actually uses.
- Improved Scalability - The ability to rapidly scale your application to meet growing demands is built into the serverless model. Scaling can be accomplished without previously provisioning servers to account for future growth when building an application.
- Decreased time to market - Streamlined application development can be accomplished by leveraging third-party APIs and can dramatically reduce the time developers need to create new products. They can also direct their efforts into the user-facing aspects of their application without worrying about their impact on infrastructure.
Are There Any Issues Associated with Serverless Computing?
We have yet to find a computing model that does not have some potential downside, and the serverless model is no exceptions. TechRepublic indicates that two of the major problems with serverless computing are:
- Vendor lock-in - When you develop applications using a cloud provider’s serverless offering you are in actuality using their infrastructure. There may be limitations on the type or size of applications that can be run with certain providers. Porting your application to a different provider may also pose substantial problems.
- Increased security concerns - The convenience of using the serverless model to deploy code may lead to heightened security risks if the code is not deleted in a timely manner. This introduces the possibility that unauthorized users may access the code and use it for undesirable purposes.
Serverless computing is a logical step in the evolution of cloud services and offers developers a way to segregate their applications and the infrastructure required to deliver them. It is worth seeing if your development team can benefit from this powerful computing model.