Multi-Cloud Is a Trap
bravenewgeek.com
bravenewgeek.com
- this is hopelessly naïve. Lock-in occurs when you no longer can generate the capex to resolve the opex drain that a vendor squeezing you has created. If any vendor realises that you can raise the capex to get off them then they will raise the opex demand to the point of financial viability to maximise their returns and to ensure future returns (because by doing this they underline their control)
Vendors can't help doing this, it's natural. Also it's their duty to their shareholders.
Our responsibility is to NEVER get into this situation.
Can any single customer smaller than the US government get a policy change at Amazon by threatening to walk away?
Usually the new provider will advertise the win in such a way it highlights their competitive advantages. This can be extremely painful for the company that lost the very high profile brand.
They publicly advertise this under the "Netflix Open Connect" initiative:
It seems cleaner to go all-in on AWS/Azure/Google/Your Datacenter/something else. But the reality is, if you have a significant spend, and are dependent on one vendor, you are truly fucked. You won't get good terms, you won't get good pricing.
This industry goes through this cycle again and again. 30 years ago, people bet the business on Oracle/Informix/DB2/Sybase. Oracle is the king of that hill, and we all know the stories about how great they are to work with. 10 years ago we started with Office 365 and it's predecessor. Ask a big Office 365 customer how their subscription renewal process went.
Cloud is no different. Unless you can tell your AWS rep to go fuck himself and move workload elsewhere quickly, you are giving up valuable leverage.
The idea of starting out with a single provider until you actually have things working is probably a good idea. But, I'm surprised that more companies with a certain level of steady traffic don't run their own hardware and spillover to the cloud for spikes.
Absolutely. The major difference is that one is a technical challenge, and the other was a marketing decision.
I think doing multi-cloud for something "normal" and mundane is probably over-engineering. If you want to avoid vendor lock-in just avoid using the most proprietary features of your cloud vendor, or use them in ways that would not be terribly hard to port later (e.g. it's not hard to swap something else out for S3). Yes your DC or cloud provider will have issues every once in a while, but in the grand scheme of things it won't matter unless your service is one that demands damn near 100% uptime as a strict requirement.
Multi-cloud makes sense when you need near-100% reliability. There are few things where reliability requirements are this stringent. It can also make sense when you need a great deal of geographic diversity or portability.
I'll go one step further in saying that it's an inevitable future. The likelihood that one cloud will have the best price, best components, best qualities for every use-case is just not very likely. People will trade complexity for price eventually, once the price gets big enough.
The good news is, kubernetes is fast appearing to be the winner of the race for a multi-cloud substrate. The bad news is, kubernetes is complex (IMO necessarily so), so it takes quite a bit of investment and mindful practice to learn.
I just thought of it, but you know what would be nice, if people started posting their AWS/cloud provider costs.
Of course, the whole "not needing engineers" bit is a lie of the highest magnitude, but the marketing was really well done.
Dumb managers are gonna do dumb stuff no matter what, but judging by how the widespread use of AWS did not in fact mean hiring less developers, it just changed the kind you needed to hire. I feel like the job posting just changed from sysadmin to sysadmin (for actual in-company computer management) + devops (for tech-side server management)?
That said, I'm also kind of waiting for the other shoe to drop on Kubernetes, it just seems too good to be true (minus the complexity of learning it of course). Well, thinking about it, I use gmail so maybe I traded my privacy in small part for this.
That said, going Multi-Cloud is indeed unavoidable in a growing number of settings. So, instead of looking at it as a source of troubles, it can be leveraged as a way to extract the best features out of each provider, to avoid lock-in wherever it makes business sense and to minimize costs by distributing workloads accordingly. That introduces new issues regarding access control, cost analysis, auditing and governance which are best managed by a Multi-Cloud Management Platform.
If you're looking for such a tool check out https://mist.io
It's an open source CMP that supports most popular public & private clouds, as well as Hypervisors and container hosts. It takes care of provisioning, monitoring, RBAC, cost analysis and automation/orchestration. It can also be used to deploy Kubernetes clusters on any supported cloud.
Disclaimer: I'm one of the founders.
There is no problem with going with any single provider, as long as you "can" replicate any functionality you're using. You may never actually replicate it, but that ability is what makes me trust a provider... because even if they fail, I know it won't be too much of a problem.
In my previous work, some of our clients wanted to self-host our saas service. We allowed this by migrating our infrastructure on top of kubernetes (previously it was tightly coupled with aws). For some technical reasons, some of the services were still hosted, i.e. even for customers that had on-premise deployment, we provided access to our saas mobile-application build-service.