Why Edge Computing?
So, I was writing an article already about how Cloud Service Providers have basically conned the industry into thinking they are more valuable than they are and then I read this and it validated a major chunk of what I wanted to say.
Here are the major points:
- Cloud service costs grow over time
- Both through price increases and increased usage
- The incremental nature often means you face heavy vendor lock-in by the time prices really start escalating
- A lot of what you end up paying for is not really that complicated to implement on your own
- The solution is moving things to the Edge or in-house with your own services where possible
Incremental Cost Increases
If you're staying in business, then costs are going up. A major factor is that most businesses need to grow just to tread water thanks to inflation. But, also thanks to inflation, costs just rise over time in everything as well.
So, those cloud services you bought into and were manageable when you started can quickly start eating more and more into your profit margins. My experience is that it tends to get out of control, and get out of control fast.
Growth Means More Lock-In
Another common trend in software is also that software tends to get more complex over time. As a result, even without any new users/etc..., we tend to add more functionality which requires more cloud services or uses existing ones more heavily. All of which leads not only to more costs, but increases your vendor lock-in. Which is to say, it gets harder to leave the cloud the longer you're in it.
Over time it becomes an increasingly more critical part of your operations and the risk associated with any attempts to pull out quickly overwhelms any will to do so. If you don't come prepared you WILL feel trapped eventually.
It Isn't As Complex As You Think
One of the most interesting projects I ever worked on was one where I was planning to add an API Gateway to a solution I had been working on. In the process I stumbled across YARP and immediately started wondering why we would pay for Azure to do our load balancing and request routing when we could do it ourselves and have control over it so easily. I started noticing that similar things could be done with NGINX with just a bit of config and that there were actually quite a few solutions which could do the same or even better.
And, over time I started noticing more and more things that we were paying for that were actually quite trivial to implement or had well respected solutions and which were commonly being charged for. Like rate limiting, centralized authentication, logging and the list goes on.
Cloud services in my experience offer 3 main categories of services (not an exhaustive list):
- Hosting
- Cloud Specific Services
- Add-Ons
Hosting is something that might make sense for you to do in the cloud. But, I don't think it is nearly as necessary as your cloud provider would like for you to believe.
Add-ons are all of those services which are likely just funneling through your cloud providers API Gateway (logging, rate limiting, etc...) which you could likely implement on your own, and for less.
And cloud specific services are everything else. These also generally have free, self-hosted alternatives or are easy enough to implement. But, they exist in the cloud because there are cases where it is beneficial to both have a cloud to put that in, and you don't want to be responsible for the SLAs. I do think it is worth evaluating if you actually need a cloud solution here. You will likely find some that you do.
However, if your hosting and add-ons and everything else are already all-in on the cloud, you may find you have less control. So I suggested evaluating those before getting to the other services.
Start at the Edge
My advice, if you know or think that "cloud" NEEDS to be a part of your solution, start looking at an Edge based solution first. Designing a cloud native application from the start is, in my opinion, the quickest way to find yourself stuck with a series of massive bills you are ill-equipped to get out of.
Also, every major cloud provider prides itself on it's ability to migrate existing solutions of all shapes and sizes into the cloud. So, if you build something outside of the cloud first or at the edge, it will likely be MUCH easier to find a solution to get it in the cloud later if you need. But, if you built something "Cloud Native" you're not likely to find it easy or find many guides to rip it back out later.
Comments
Post a Comment