Moore’s law, Electric sockets, Serverless – what's the connection

One of our client recently asked me, “serverless – is it another FAD or something that I need to worry and prepare my organisation?”

I went on to explain him, with two seemingly unrelated facts - Moore’s law and Electric sockets.

Serverless is the way to make most of Moore’s law

In 1965, Gordon Moore the co-founder of Intel, predicted that Compute* cost will reduce by half and performance will double every two years. In other words, same compute will be 75% cheaper in 2 years time. This became popularly known as Moore's law. The corollary to this is "compute will always be cheaper in future".  

Hmm, you may wonder. If corollary is true, why does running my application is getting expensive as time goes by?

High total cost of ownership (TCO) is due to number of additional components on top of compute needed to run your applications and the inefficient supply chain that delivers it. For example, on top of compute, you need the right version of operating system, tools, run-time environments like Java, Node.JS to run your application. Commonly known as application stack

If you were to upgrade your hardware there is an overhead like planning, preparation, migration and its associated risk. Unfortunately, the overhead is labour intensive hence cost will always increase with time.  In general, upgrade is the last thing most organisations do when the hardware is nearing its end of life. This gave raise to an unexpected side effect. The software architecture tends to sweat the hardware assets as much as possible by tight coupling of limited resources and the working practices were designed to reduce risk by introducing long release cycles. 

In these circumstances, servers (read compute) become the real currency. Teams that have spare capacity can experiment and launch new features. Others spend most of their time procuring it, instead of innovating constantly to stay ahead in the market.

Overall, Most of the engineering effort is wasted in capacity management - an undifferentiated heavy lifting. What if someone else does all the hard work of managing entire application stack and you just concentrate on building your application. Wouldn’t that be great. You would be making the best use of Moore’s law to stay ahead of your competition. Whilst the cloud providers like AWS, Azure take care of the headache and keep you up-to-date

 

Serverless is like Electric sockets

Really? Indeed. Think them as an interface that hides the complexity beneath. You don’t need to worry about where electricity/compute came from, how it came and what happens when there is a demand spike. Just get on with your ironing or in Serverless case with your code!

Socket is a best example of well-defined abstraction.  An electric socket provides a standard amount of electricity to anything that is plugged to it. The gadget manufacturers assume the availability and focus on their products. There is a clear separation of concerns i.e., roles and responsibilities between things that are connected in front of the socket (consumer) and what goes behind the socket (provider).

 

Serverless is a new abstraction that allows you to run (plugin) your application in a cloud. You need to only worry about your application whilst the cloud service provider will take care of the compute, operating system, tools and the runtime environment. The best part is, like electric socket you assume the availability and focus your applications.

Serverless is your socket for compute. The cloud providers are your new compute as a utility providers. This separation of concerns, allow them to upgrade application stack independent of your applications and pass on the cost saving.

As a side effect, architecture becomes distributed, event driven to allow loose coupling of the resources and the working practices are meant to deliver faster results as risks can be easily localised and mitigated.

Finally, Moore law – “compute will always be cheaper in future” shows up as saving in your bank account.

*compute – close approximation to drive home a point. It is actually “number of transistors in the dense integrated circuit” in geeks.

So what do you think? Is Serverless a FAD or the new way of computing. Share your thoughts in the comment section below please. 

by Karthik Selvaraj