Defining Serverless Computing
Serverless computing is an execution-model where the cloud provider dynamically manages the allocation of machine resources. The term ‘serverless computing’ is used as the server management and capacity planning decisions are hidden from developers or operators. Most serverless computing vendors offer serverless runtimes and serverless databases. The runtimes serverless vendors offer compute runtimes known as Function-as-a-service (FaaS) platforms which executes logic but does not store data and serverless database vendors offer RDBMS eliminating to for for virtualized server or physical database hardware.
Several cloud vendors are competing in the serverless runtimes market with AWS Lambda launched in 2014, Google Cloud Functions, IBM Open Whisk open-source serverless platform, and Microsoft Azure Functions and nuclio. Various languages are supported by different vendors such as node.js, python, java and swift. In serverless computing developers load the code they want to run, and it takes care of the provisioning resources needed to run along with monitoring and management. The adoption of serverless computing is expected to grow specially among the SMEs. However, monitoring, debugging, and security aspects looks more complex for serverless computing. The term serverless was coined as major operational concerns are hidden and lets developers concerned only with the key factors of the application building.
Major challenges faced by Enterprises:
High cost for resources for small development teams: With digital transformation and cloud deployment, organizations are moving to private and public cloud. However, in the public cloud the resources are shared but the capacity and storage are predefined, and a fixed cost are charged for services provided. For a small development team, it is often difficult to estimate the storage and capacity of servers in the early stage.
Resource utilization: The public cloud does not offer flexibility in expanding capacity automatically and charge as per the resource usage quickly. The organization must bear the cost of OS, networks, storage of fixed quantity in the cloud deployment. The development team has to rely on the infrastructure provided and increasing the capacity would be a time-consuming process for developers to access the increased space. The lack of skills to develop software with PaaS are pushing organizations towards adopting SaaS offerings.
Advantages of Serverless Computing
Cost: Serverless computing is cost-effective as it ensures the optimal use of servers than investing for a fixed quantity of servers that are often under-utilized. This is pay-as-you-go pricing model dependent on the resource utilization of memory and time enabling real-time measurement of cost effectiveness.
Scalability: The serverless computing architecture is auto scalable and the cloud provider automatically provisions capacity depending on server usage. Development teams can code without dependence on the infrastructure team with resource constraints such as storage, capacity, and memory. It lets developers build any type of application and all the requirements to run and scale the application are made available by the serverless computing vendor.
The serverless computing is expected to grow as it offers great flexibility in expanding the IT infrastructure allowing development teams to focus on coding of their application with an option to scale up the database and servers through the serverless computing providers. The serverless computing is expected to create disruptions in cloud services reducing the investment on infrastructure further with a flexible infrastructure provision from the serverless computing vendors.
– Swarup Bhowal
ICT Market Research Analyst