Tech industry loves to create terms that confuse people more than adding any value. Terms like Private Cloud, NoOps, etc. are marketing terms invented by vendors without adding any meaningful value to the industry conversation. The term Serverless falls into this category. Initially, used by Ken Fromm as a way to describe on-demand elastic infrastructure from cloud providers (a.k.a Cloud), the term has been linked to AWS Lambda and other Functions as a Service offering (FaaS) after AWS used the term in their AWS Re:Invent talk on AWS Lambda.
Off late, AWS has been using the term to describe anything from Compute (AWS Lambda) to Data Store (Amazon DynamoDB) to Analytics (Amazon Kinesis). When Microsoft launched Azure Container Instances, they started using Serverless Containers as a way to describe how end users can launch containers without having to manage the underlying infrastructure (Note: Azure Container Instances is similar to AWS Fargate and launched before AWS announced Fargate in the last AWS Re:Invent). Clearly, both Amazon and Microsoft has been using the term Serverless in two different contexts, confusing the end customers.
This came into a discussion on Twitter yesterday when Google’s Kubernetes Evangelist talked about Serverless from the context of Kubernetes and my response to it. This lead Brendan Burns (Kubernetes lead engineer and currently Distinguished Engineer at Microsoft) to highlight how the term doesn’t fit in the way it is used in the industry.
I think it is time we move away from the term entirely. In my opinion, Serverless is a term that can be applied to any compute service that is outsourced to a third party provider. It doesn’t matter whether it is VMs (like AWS EC2 and others) or Containers (Azure Container Instance and others) or Function Compute Services (AWS Lambda and others). As long as I am not handling the underlying infrastructure management (servers), it is Serverless for me. I interact with an API and provision my compute resources without having to own or manage any servers. The same thing applies to data services, analytics, storage, etc.. In other words, any public cloud service is Serverless as long as the end user is concerned.
It is time we move away from ambiguous terms like Serverless and use context specific terms like Container Computing or Container Services, Functions as a Service, etc.. Specificity in naming is important because the rate at which newer technologies are coming out is exponential compared to the traditional computing days. If we let the old-fashioned marketing approach in naming and bucketing of services, it is bound to confuse customers more than really helping them understand the landscape. I think it is time we retire the term Serverless. Do you agree?
Followup Podcast on the topic with Matt Gillard: https://anchor.fm/modernenterprise/episodes/What-is-Serverless–A-Conversation-with-Matt-Gillard-e1ped0