Serverless computing market is expected to register a healthy CAGR of over 25% during the forecast period (2020 - 2025), according to Mordor Intelligence. Advancements in computing technology are enabling organizations to incorporate a serverless environment, thereby augmenting the market.
Serverless computing is emerging as a new and compelling paradigm for the deployment of cloud applications, largely due to the recent shift of enterprise application architectures to containers and microservices. Using serverless gives pay-as-you-go without additional work to start and stop server and is closer to original expectations for cloud computing to be treated as a utility. Developers using serverless computing can save costs and get scalability without needing to have a high level of cloud computing expertise which acquisition is time-consuming.
Serverless computing is attracting many users and becoming very popular for many reasons, two of which are its simplicity and economic advantages. Its market size is estimated to grow to 7.72 billion by 2021. Most prominent cloud providers including Amazon, IBM, Microsoft, Google, and others have already released serverless computing capabilities with several additional open source efforts driven by both industry and academic institutions.
The benefits of serverless computing such as unconditional development and deployment, built-in scalability among others are playing an important role in supporting the rapid adoption of serverless computing thereby fueling the growth of the market.
- With the adoption of serverless architecture, organizations can effectively eliminate expensive traditional and time-consuming approaches such as purchasing new hardware component, installing, configuring, and troubleshooting, thereby shifting the responsibility of managing servers, databases, and application logic, which reduces set-up and maintenance costs.
- With the rapid technological shift over the business environment, companies are releasing new products and feature thereby focusing on reduced time-to-market to meet the exponentially growing consumer expectations. The increasing prominence of such trends is expected to drive the market during the forecast period.
- In the competitive marketplace, startups are anticipated to scale rapidly and deliver enhanced features for their products and services, thereby improving their business values. Hence, in order to achieve minimum lead time and positively impact their business, they are anticipated to adopt serverless technology, thereby propelling the growth of the market.
From the perspective of an IaaS customer, the serverless paradigm is a double-edged sword. The shift presents both an opportunity and a risk. On the one hand, it provides developers with a simplified programming model for creating cloud applications while eliminating most, if not all, operational concerns. They no longer have to worry about availability, scalability, fault tolerance, over/underprovisioning of VM resources, managing servers, and other infrastructure issues. Instead, they can focus on the business aspects of their applications. The paradigm also lowers the cost of deploying cloud code by charging for execution time rather than resource allocation. On the other hand, deploying such applications in a serverless platform is challenging and requires relinquishing design decisions to the platform provider that concern, among other things, quality-of-service (QoS) monitoring, scaling, and fault-tolerance properties. There is a risk an application's requirements may evolve to conflict with the capabilities of the platform.
From the perspective of a cloud provider, serverless computing is an additional opportunity to control the entire development stack, reduce operational costs by efficient optimization and management of cloud resources, offer a platform that encourages the use of additional services in their ecosystem, and lower the effort required to author and manage cloud-scale applications.
Serverless computing today typically favors small, self-contained units of computation to make it easier to manage and scale in the cloud. As servers and their usage are not part of serverless computing model, then it is natural to pay only when code is running and not for idle servers. As execution time may be short, then it should be charged in fine-grained time units (like hundreds of milliseconds). In addition, since developers do not have control over servers that run their code, nor do they know the number of servers their code runs on, decisions about scaling are left to cloud providers. Developers do not need to write auto-scaling policies or define how machine-level usage (CPU, memory, and so on) translates to application usage. Instead they depend on the cloud provider to automatically start more parallel executions when there is more demand for it. Developers also can assume the cloud provider will take care of maintenance, security updates, availability and reliability monitoring of servers.
Paul Johnston, co-founder of ServerlessDays, defined serverless as follows, “A serverless solution is one that costs you nothing to run if nobody is using it (excluding data storage).” This definition highlights the most important characteristic of serverless computing—pays-as-you-go. It assumes serverless computing is a subset of cloud computing so auto-scaling is included and developers have no access to servers.
Challenges and limitations
Serverless computing is a large step forward, and is starting to gain traction among academics and industry experts. Changes are happening rapidly and we expect to see different evolutions of what is serverless and FaaS. While there are many immediate innovation needs for serverless, there are significant challenges that need to be addressed to realize full potential to serverless computing.
Traditional tools that assumed access to servers (for example, root privilege) to monitor and debug applications are not applicable for serverless applications, and new approaches are needed. Although some of these tools are starting to become available, higher-level development IDEs, and tools for orchestrating and composing applications, will be critical.
Serverless platforms will introduce an attack surface for misconfiguration and vulnerable codes
Serverless platforms offer “function as a service,” allowing developers to execute codes without the organization having to pay for entire servers or containers. Outdated libraries, misconfigurations, as well as known and unknown vulnerabilities will be the attackers’ entry points to serverless applications. Increasing network visibility, improving processes, and better documenting workflows will be essential to running serverless applications. Serverless environments can also benefit from adopting DevSecOps, where security is integrated into the DevOps process.
Lack of standards and vendor lock-in
Serverless computing and FaaS are new and quickly changing and currently there are no standards. As the area matures, standards can be expected to emerge. In the meantime, developers can use tools and frameworks that allow the use of different serverless computing providers interchangeably.
Serverless computing is an evolution in cloud application development, exemplified by the Function-as-a-Service model where users write small functions, which are then managed by the cloud platform. This model has proven useful in a number of application scenarios ranging from event handlers with bursty invocation patterns, to compute-intensive big data analytics. While many challenges remain, there have been rapid advances in the tools and programming models offered by industry, academia, and open source projects.