- September 28, 2020
- Posted by: admin
- Category: Cloud Computing
There are basic costs involved with setting up an IT infrastructure, which IT executives are aware of. There are however, additional costs to be considered while setting up an IT infrastructure. These additional costs are known as “hidden costs of IT Infrastructure”. This is where serverless models come in place to remove these additional costs.
The main stages of the evolution and their related impacts on hidden costs are:
- Virtualization – Reduced Operational Support Costs
- Client-Server – Improved Integration Testing Costs and Reduced Operational Support Costs
- Converged Systems – Highly Reduced Integration Testing and Operational Support Costs
- Public, Private, Hybrid Cloud – Integration Testing Costs and Reduced Operational Support Costs
- Containers –Integration Testing Costs and Reduced Operational Support Costs
With cloud computing services on the rise, a perfect IT infrastructure alternative is one that reduces or eliminates all of the hidden costs. To execute an application, infrastructure is always required and various cloud providers (such as Google Cloud Services, Amazon Web Services, Microsoft Azure, and IBM Cloud) provide applications which help eliminate responsibilities such as testing, selecting, and managing the infrastructure from the user’s end. Such applications are also known as Function-as-a-Service (FaaS) or more commonly termed as serverless.
The advantage of serverless applications is that they do not need management or provisioning of software and hardware components. Thus, developers do not have to do anything other than work on the application code. In the same manner, operation and admin staff do not have to worry about resource provisioning, operating systems, integration testing, scaling, right-sizing, and accessibility of the infrastructure. A serverless platform manages infrastructure responsibilities for applications.
Ideally, a serverless platform should include the following:
- Flexible and Granular Scaling – The application should able to either scale through the control of resource capacity (such as throughput, memory), or automatically instead through servers.
- No Infrastructure Management – No necessity to maintain or provision any infrastructure. There is no runtime or software to manage or install.
- High Accessibility – The serverless platform provides high accessibility and fault tolerance in an application.
- No Idle Capacity – There is no need to over or pre-provision the infrastructure storage capacity. Also, the infrastructure is not charged for, when the application is not running.
Serverless simplifies the process of implementing code into production. Scaling, maintenance operations, and capacity planning may not be revealed to the operator or developer. Serverless code can also be used in combination with code implemented within traditional methods, such as microservices. There is also a provision for applications to be completely serverless and not utilize provisioned servers at all.
Challenges of Serverless
Though the serverless model is ideal, one must consider the current challenges posed by serverless applications:
- Security may pose a challenge as traditional security tools are not supported.
- Absence of standardization in serverless models across various cloud providers, means that moving a serverless application across cloud providers could be challenging.
- Maximum resources for a serverless application are limited, thus it prohibits some resource-intensive applications such as High-Performance Computing (HPC).
- The maximum execution time for a serverless application is limited from 9 to 15 minutes based on the cloud provider.
- Serverless comprises of intrinsically stateless functions, thus there is the issue of how to manage state using stateless functions. Serverless also has latency challenges. The serverless platform may have to load the functions which could take seconds.
- As the number of functions in the application grows, serverless complexity grows.
- Serverless models also require tools such as Integrated Development Environments (IDEs) to streamline the development of intricate serverless applications.
As there are positive impacts on developer productivity and reduction of infrastructure-related costs, serverless could be the obvious choice for most applications. However, to achieve this the challenges posed by serverless models must be eliminated.