Serverless is one of the hottest buzzwords in the technology world today. Gartner has classified it as an emerging trend in application architecture which has the potential to create a high impact in the next 2 to 5 years. Is it just another technology fad or is it a ground breaking technology, let’s find out!
Cloud computing (Infrastructure as a Service – IaaS) promised developers computing capacity on demand. They could spin up or shut down server capacity almost instantly compared to the long weeks they needed to wait to procure new hardware and set it up on their data centers on premise. Even though, IaaS was a significant advancement towards developer nirvana, it still had two key issues. Developers still needed to do the repetitive and boring administrative tasks of provisioning virtual VMs with a given set of hardware resources – CPU, RAM, Storage, etc. as per their needs. IaaS providers also charged for the infrastructure provisioned irrespective of whether it is actually used.
Serverless Computing is the next evolution of IaaS. Developers build their applications by writing a function that responds to a given event. Once deployed, serverless infrastructure can execute functions automatically in response to events. Typical provisioning activities expected of a developer such as hardware provisioning, configuration, capacity reservation, release etc. Auto scaling and load balancing are automatically triggered as necessary based on the load. The lifecycle of the functions (developer code) is very short and is the time to execute a single request. Most serverless providers charge on a per-request basis – usually in 100s of milliseconds.
The biggest benefit of serverless computing is realized from letting developers focus on their code, leaving the infrastructure concerns to be managed by the service providers who are better positioned to optimize its usage. Critical non-functional design considerations such as High availability, auto scaling, application upgrades are features of this platform. Reduced operational cost, shorter time to market and faster feedback loops are the business benefits that can be gained from leveraging this platform.
It is early days in the development of serverless computing. As in the case with every new technology, tooling for development and debugging are the biggest concern areas for developers today. Building applications based on functions and managing interdependencies across multiple services is a new design paradigm that developers needs to get expertise on. The flavors of serverless computing platforms by various vendors are proprietary today. Hence, there is a risk of vendor lock-in. As the technology evolves, we should see industry efforts at standardization and portability.
Serverless computing should not be seen as a magic bullet to solve all computing problems. The scalability and financial incentives provided by this platform in terms of per-request pricing provide a solid use case for bursty, highly elastic workloads. This platform is also suited for an agile approach to software engineering involving quick deployment of small feature slices, customer feedback and further development loops. Hence, it will be a good fit for solutions implementing Customer Experience (CX), ‘Digital’ transactions and API traffic which exhibit these patterns. The transition journey of serverless computing to a mature technology will be highly exciting. Watch this space!
For more in-depth information:Cloud, PaaS, SaaS