Let’s Be Careful With “Serverless”

Burke Holland
Burke Knows Words
Published in
7 min readJun 21, 2017

How often misguided words generate misleading thought

- Herbert Spencer

As a new member of the Azure team at Microsoft, I’ve spent a lot of time digging into the platform and learning new cloud concepts. One of those platforms has been Azure Functions and the concept of “Serverless”. The more I dig, the more I realize that this word seems to mean different things to different people, and that worries me.

Sticks And Stones

As a child, you may have heard or even used the phrase “sticks and stones can break bones, but words will never hurt me”. Unfortunately, that is absolutely incorrect. Usually, when you’re uttering that retort, it’s because someone has absolutely wrecked you with their words. That hurtful stuff from childhood leaves legit scars. I should probably get some help.

ANYWAY; the point is, words are powerful. Certain words can’t even be used in some contexts…

We use words to describe objects and concepts, but many times those words morph over time and take on new and sometimes more powerful meanings. Sometimes, the opposite happens and they lose their meaning altogether. This almost always occurs because words are used too often and in the wrong context.

Really, Very Literally

The Huffington Post did a piece on 12 words that have been so overused they have completely lost their meaning. Some of the words they mention in that article are really, very and literally. The sad thing is, I use these words all the time. I really do. Literally.

My textbook bad writing aside, the reason why these words have lost their meaning is that they are just thrown around willy nilly with no regard for their definition. They are almost filler and filler words have no meaning. My wife had a boss once who started every sentence with “honestly, …” or “I’m not gonna lie, …”. He used them so much and in so many contexts that they didn’t even mean anything anymore and people would just roll their eyes.

We seem to have a special gift for this in tech, and eyes have been steady rolling since the day I got into this business.

Scaling Apps In The Cloud Ecosystem

That subtitle is full of words that have virtually lost their meaning. What is an app? A mobile app? A web app? An app on your TV? Everyone needs an app and they don’t even know what that word means. Steve Jobs started that one, but we were the ones who hackneyed it. We’ve got Drake to thank for “YOLO”, but in all fairness, he did apologize.

Don’t worry about it, Drake. YOLO.

The reason why words tend to lose their meaning more often in tech is because we are constantly inventing new things and they need to have names. We make up new words or borrow existing ones and assign them a new meaning.

What’s that? The definition of “Cloud” is, “a visible mass of condensed water vapor floating in the atmosphere, typically high above the ground.”? Well now it means “Other people’s computers”.

“There Is no cloud” Sticker by Chris Waterson. Get it here.

A lot of times, the things we invent are merely conceptual (like Cloud). We use terminology to explain new concepts. Sometimes those words are well suited, and sometimes they aren’t; but you know what they say about the two hardest things in computer science.

I place a large part of the blame for phrase-pocalypse on analysts and marketing. The big analyst firms tend to jump on terms and turn them into marketing slang in order to sell their reports. Once that happens, it’s a long slow process of brains being bombarded by these words until we mentally tune them out.

A great case in point is the term “Microservices”.

If you Google the term Microservices, one of the results Google brings back is “What Is Meant By Microservices” and says…

Microservices architecture is an approach to application development in which a large application is built as a suite of modular services. Each module supports a specific business goal and uses a simple, well-defined interface to communicate with other sets of services.

That definition is so broad that the word “Microservice” could mean almost anything in the right context. The problem is that this is not at all how the term was intended to be used. Look at this definition from Ken Mugrage of ThoughtWorks

Not exactly the same definition as the one Google pulls up. Quite a bit more specific. The way Ken puts it, the term “Microservices” actually makes rather good sense. It isn’t until the industry gets their hands on it and thinks that they can rephrase it better that it loses it’s meaning. One publication or analyst rephrases it, then another and then another until the definition Google pulls up is the mostly nonsense. It’s like a real life game of telephone.

This is why I worry that the same thing is happening to the word, Serverless.

Serverless

In case you aren’t readily familiar (I wasn’t), Serverless is an architectural concept in which code can be run directly in the cloud with zero knowledge of the physical environment in which the code will run. I do mean zero. Code is deployed directly to the cloud (sometimes referred to as containers) instead of being deployed to a specific server. The most well known of these Serverless platforms include Microsoft Azure Functions, AWS Lambda and Google Functions.

Of course, nothing is actually “serverless” in the true sense of the word. There are always servers. Just like there is no cloud, only other people’s computers.

It’s because of this technical inaccuracy that some people in the community take exception to the term. However, “Serverless” isn’t meant to describe a technology, but rather a new way of thinking about applications, and in that context, it is an incredibly important and appropriate word.

Think Different

Application’s have been built roughly the same way for decades. Usually they are monolithic entities that are deployed on very carefully configured machines where knowledge about the runtime and the hardware is almost as important as the knowledge of programming. Serverless simply removes the hardware part from the equation.

Furthermore, Serverless platforms such as Azure Functions ask us to think differently about how we construct our APIs.

Instead of thinking about applications in terms of binaries, we need to think about them in terms of the individual pieces that they contain. For instance, a typical application might have Login and Registration components. A Serverless architecture enables us to split these two pieces into separate modules with completely isolated APIs. That means that working on the Login piece of the API would have no effect on the Registration at all. And if you are thinking “that sounds like a Microservice” you are correct and 50 points to Gryffindor.

Plainly put, Serverless means that we can now build applications without thinking about servers, and in that sense, it is Serverless.

But the more I look into Serverless computing, the more I become concerned that we’re widening the definition of the word to much. I’ve seen numerous places where we are considering any application that uses a third-party service to be, at least in part, Serverless. That could be a database, or a mail shot service or even just push notifications.

Just because you aren’t aware of the hardware of a service that you consume does not Serverless computing make.

The fact is that if we expand the definition that widely, then anything that is “as a service” (ends in aaS) will fall into the “Serverless” bucket. At that point, “Serverless” hardly has a different meaning from, “Cloud”. And the last thing we need is another term that confuses people on the cloud.

The interesting thing about cloud computing is that we’ve redefined cloud computing to include everything that we already do. …

Maybe I’m an idiot, but I have no idea what anyone is talking about. What is it? It’s complete gibberish. It’s insane. When is this idiocy going to stop?

- Larry Ellison

See, people get confused.

To The Cloud!

Despite the zeal with which analysts and marketers misused and abused the term “Cloud”, we’re now seeing large enterprises conceptually realizing the competitive advantage of cloud computing and moving quickly in that direction. Forbes reported on several of the fortune 500 who are already making the move. To be way over-dramatic about it, we are at the cusp of the Cloud revolution and Serverless is going to be an incredibly important concept in this new generation of cloud applications.

We’re all just dipping our toes into these new waters. The technology is new, the platforms are new and the concepts are still sinking in. Many people are hearing these words for the first time just today. Let’s all be careful so that when they do hear the word, “Serverless”, it still means something.

--

--

Burke Holland
Burke Knows Words

Pretty fly for a bald guy. Hacking on Azure at Microsoft.