With the rapid adoption of cloud computing by organizations globally, IT workloads that were previously done by infrastructure found in the customers premises were moved off premises to the cloud. The shift to the cloud from on-premise was informed by the advantages that cloud infrastructure had over on-premise with lowered operating costs and hyper-scalability being at the top.
As time went on, the mere shift of existing IT workloads to the cloud wasn’t optimal and many applications and systems have now been redesigned to take advantage of cloud architectures. This is because traditionally, applications were designed in a monolithic way that never considered the added efficiencies of deconstructing the various functions and runtimes as separate processes that if well managed, can lead to lower TCO.
Runtime as a cost
On-premise, powering a server to run an application was a fixed cost. The server would run 24/7 consuming power and being cooled and managed by someone even if the application its hosting isn’t used often. The cost of running at high and low loads was nearly equal and scalability was limited by the time it took to deploy new hardware which was often measured in number of weeks or months.
With the advent of cloud, consumers moved their workloads to Virtual machines (VMs) which sort of mimicked physical servers in their premises and the cost model was similar, in that; low and high traffic periods cost nearly the same per runtime. The only advantage now is that scalability to expand capacity was reduced from number of weeks to a matter of minutes or seconds if well automated. The per-runtime cost however remained mostly unchanged. This made owning and running and application and expensive affair.
Function as a Service (FaaS)
What if cloud providers cloud charge customers, not based on how many servers and their computing and storage capacity they lease from them, but charge them only when their application runs or is accessed? For example, instead of leasing a VM to host a website and pay for the VM lease on a website that is accessed say 10 times a month, why not just pay for the 10 instances the website is accessed and not pay for the entire month when the VM was idle? This approach is known as serverless computing because in this instance, you are not paying for a VM in which you host the website, but only paying for when the website is serving pages to users. This therefore means as the website owner, your concern now shifts from managing the VM (Operating system, web server software, databases, AAA, memory. cache etc) to only managing the website contents. The preceding example is simplistic but if you look at a large organization running several servers that host their business applications, then removing the task of managing servers from such an organization creates more time and money for them to focus on what really matters i.e. the efficiency of the application. The customer is now running their applications in a serverless environment. Serverless does not mean the total absence of servers, it means that the headache of managing the underlying infrastructure and platform is removed from the customer and a new billing method that charges on when the application runs as opposed to the power and size of servers is adopted.
This approach is cost effective in the long run as organizations can significantly lower their computing costs by only paying for computing power they actually use (when the application runs) and not pay for the CPU, memory and storage they chronologically lease in a VM. This new billing approach is becoming very attractive because of the benefit of lowered IT costs if the system is well designed and optimized for the cloud environment in which it is hosted in. The rise and demand for cloud DevOps engineers and cloud architects is fueled by many organizations desire to re-architecture their applications for the cloud. As many CIO’s are realizing the hard way, legacy systems simply ported to the cloud do not derive much benefit of being in the cloud and could sometimes even cost more to run in the cloud if not well architectured. The re-design of systems is a big part of moving to the cloud and serverless architectures have provided a new and efficient way to run applications on the cloud.
Some common serverless computing services include AWS Lambda, Microsoft Azure Functions, Google’s Cloud Run and others. These services enable organizations to focus their talent and resources on designing and writing better applications by using the FaaS capability to run applications that are cost effective to run and can scale in real-time with high availability globally. The pay-per-use approach has shifted IT costs from being predominantly fixed to highly variable costs and this as any bean counter will tell you, is accounting nirvana.Follow @tommakau