Serverless computing: If there is no server, where does my application run?

Serverless is the new fad among developers. And, I am sure, you must have already heard about it. But, if you couldn’t find time till now or were just plain lazy to understand this concept, I will help you understand Serverless, its advantages, in the next couple of minutes.

First, the answer to the question in the title of this post, 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. So, like many other buzzwords, Serverless is a misnomer.

But, what’s the need of another layer of abstraction? The answer is simple, businesses and hence developers want to focus on their core problems. Anything else is just an overhead. Managing application servers is not different. It comes with responsibilities:

  1. Managing the server capacity to handle your application scale.
  2. Managing (and therefore paying) the capacity to handle your application’s projected traffic, independent of whether there’s actual traffic or not.
  3. Managing reliability and availability constructs like redundancy, failover, retries etc.

With serverless, businesses can delegate all these responsibilities and do just what they want — focus on their core business problems. Serverless is about abstracting users away from servers, infrastructure, and having to deal with low-level configuration or the core operating system. Instead, developers make use of single purpose services (such as S3 for storage or Auth0 for identity management) and elastic compute platforms (such as AWS Lambda) to execute their code.

Examples

To put things in perspective, let us take a few examples of serverless tools and see how “serverless” they are

  • AWS Lambda: AWS Lambda is the best-known example of serverless computing. As an Amazon instructional video explains, “once you upload your code to Lambda, the service handles all the capacity, scaling, patching, and administration of the infrastructure to run your code.” This is exactly what serverless concept aims to achieve.
  • Google Cloud Functions: Still in the initial preview stage, Google Cloud Functions are hosted as containers running on Google Compute Engine. The platform only supports Node.js but is expected to add additional languages in the future.
  • Iron.io: Iron.io is language agnostic for greater flexibility when developing and deploys on any cloud or hydrid for flexibility and control of enterprise applications. When managed or hosted services are included, developers have a true serverless experience.

As we build Devup, a platform to integrate software development tools, we want to make sure our assumptions are correct. We’re running a short survey to find issues with current software development methodologies. Go ahead, fill it, it won’t take more than 2 minutes!

Like what you read? Give Nitish Tiwari a round of applause.

From a quick cheer to a standing ovation, clap to show how much you enjoyed this story.