Stop Avoiding Vendor Lock-In, And What You Should Focus On Instead
If you try to avoid it, you're missing the point.
I’ll say one thing about vendor lock-in. If I had a nickel for every time I had to move my production application to another provider… I’d be broke. ~ Jeremy Daly (from his off-to-none newsletter)
If I could point to one major concern that -directly or indirectly- keeps people away from fully embracing serverless, I would say that it is the fear of vendor lock-in1.
Some developers and organisations have an almost visceral rejection to anything that is not fully “agnostic”, or open source.
This is unfortunate and, in my view, both unjustified and potentially harmful to the success of your project.
What’s vendor lock-in
First things first, let’s define vendor lock-in. By vendor lock-in, most people mean the inability to swiftly and painlessly adopt a different technology provider for your software workloads than the one you are currently using.
These days, we get locked into vendors all the time.
For example, many Apple customers will agree that they are somewhat vendor locked-in. If you depend daily on your iPhone, MacBook, iPad, or any number of other Apple technologies, the thought might have occurred to you that migrating to a different manufacturer could be a little impractical.
Despite that, it does not appear that a substantial number of people is choosing to use open source alternatives just so that they don’t get locked-in2.
The relationship between serverless and vendor lock-in
Arguably, serverless can bring about a higher degree of vendor lock-in than other technological choices.
My firm belief is that this isn’t a bug, but a feature. Let me explain that.
There are some open source solutions out there that allow you to run serverless workloads without getting locked into a particular vendor. That, on paper, sounds great. Until you understand what’s involved.
To run these “serverless” solutions you have to, well, set up servers. Of course, some of them may have more or less sophisticated SDKs and CLIs that automate some of that for you. But fundamentally, you have to run the server(s) on which you want to deploy and execute your functions.
On the other hand, the big idea behind serverless is that you shouldn’t be worrying about any of that. No servers, very little configuration. Write your business logic, attach it to an API or an event, and deploy it.
Why you shouldn’t worry about vendor lock-in
Having a serverless mindset means thinking about vendor lock-in as a form of delegation: an apparent loss of control that in fact allows you to achieve more with less effort.
Avoiding vendor lock-in is the answer to the question “How can we be in complete control of everything that we are building?”.
But is that the question that we should be asking? What if we asked a different question, such as “How can we best and most effectively deliver value to our customers?”.
Now that, to me, seems to be what mature professionals and organisations ought to be asking. Adding value and serving our customers is what should drive us. Serverless helps us do just that.
The takeaway
Vendor lock-in is a tradeoff we’re often happy to accept in exchange for using products we love
Avoiding vendor lock-in is about trying to achieve complete control over your tech stack
Complete control is not a goal worth pursuing on its own unless warranted by your specific use case
Serving and adding value to our customers is the objective that we should go after
Serverless enables us to add value by focusing on what makes our product unique, rather than building and maintaining infrastructure
To represent this, the unfailing Jeremy Daly has written a fabulous little fiction story that puts into stark contrast the lives of two businesses: one focused on delivering value (using serverless), the other far too worried about vendor lock-in (using Kubernetes). You can imagine which of the two succeeds, and which one runs out of money way too quickly.
Technically, Android is an open source OS and many people are choosing to use it. Even ignoring the fact that with Android we are very much locked into the Google ecosystem, this is missing the point since we still have a big share of consumers using Apple products. My point is that, clearly, for all these people vendor lock-in is not enough of an issue (or at all) to justify giving up on products they love.