What serverless computing really means

It’s always unfortunate to start the definition of a phrase by calling it a misnomer, but that’s where you have to begin with serverless computing: Of course there will always be servers. Serverless computing merely adds another layer of abstraction atop cloud infrastructure, so developers no longer need to worry about servers, including virtual ones in the cloud.

To explore this idea, I spoke with one of serverless computing’s most vocal proponents: Chad Arimura, CEO of the startup Iron.io, which develops software for microservices workload management. Arimura says serverless computing is all about the modern developer’s evolving frame of reference:

What we’ve seen is that the atomic unit of scale has been changing from the virtual machine to the container, and if you take this one step further, we’re starting to see something called a function … a single-purpose block of code. It’s something you can conceptualize very easily: Process an image. Transform a piece of data. Encode a piece of video.

To me this sounded a lot like microservices architecture, where instead of a building a monolithic application, you assemble an application from single-purpose services. What then is the difference between a microservice and a function?

A service has a common API that people can access. You don’t know what’s going on under the hood. That service may be powered by functions. So functions are the building block code aspect of it; the service itself is like the interface developers can talk to.

Just as developers use microservices to assemble applications and call services from functions, they can grab functions from a library to build the services themselves — without having to consider server infrastructure as they create an application.