3 ms·
There are a few "cloud portability" companies, but the fundamental problem with this approach is that cloud providers don't offer the same APIs and pricing mode
by geofft 8y ago
There are a few "cloud portability" companies, but the fundamental problem with this approach is that cloud providers don't offer the same APIs and pricing models. If all you want is virtual machines and block storage, you can do it, but the answer is that your site is going to be more expensive on any of the providers than if you built it for an architecture that fits your cloud.
If you design for the strengths of, say, Amazon Lambda, you can't use Google Cloud Functions / Azure Functions directly. Most likely you'll just run it on top of self-managed VMs on the other clouds, making Amazon the "clear" winner. If you design for GKE, you'll find that Amazon and Azure's Kubernetes support isn't as good, but maybe there was a better design for your site that wasn't based around GKE. And so forth.
And if what you actually want is a fixed amount of compute capacity and block storage and you'll just manage OSes yourself (either because that's actually better for your needs, or because you're operating something that predates containers/serverless/object storage/etc. and the development work to get it there is expensive), just get some dedicated servers in colo, it'll be cheaper than any cloud for that model.
- samstave 8y agoExactly my point for the most part. The fact that you basically had to provide a ELI5 here on HN for this, shows what a dismal job we, as an industry, have done to educate the larger world as to the best-practice of cloud selection should be. We, on HN, for the most part, can spout off this tribal-domain knowledge because we live it most days. But what would be great is to have these types of nuggest of information, empiracally delineated, available without effort to those who would like to know. Specifically, in a way format/method where you don't need to have the lexicon to be able to formulate the proper question. Most people, even those IT people who may work for a tiny office who has very little need for anything "at scale" may not be able to ask the questions. An analogy could be (?): "everyone knows if they need a bike, motorcycle, car, truck or bus - and everyone should be able to assess their basic computing needs as well. It should be fairly clear if you need a single machine in an office, a colo or a cloud - and figuring out a path to doing so and selecting a vendor should be a straightforward task."
- clarry 8y agoSelecting a car is not straightforward at all.
- samstave 8y agoIm talking about bike|motorcycle|car|bus more than Mercedes|BMW|Yugo type comparison...
- jessaustin 8y agoYes, it really is. Anything you buy new will get you around and be (relatively) safe. If you're buying used, you have to know enough to check the right things or you have to hire a mechanic, but assuming that, for anything a decade old or less it will be the same. If you're talking about value, acceleration, fuel efficiency, etc. that's a matter of taste and your statement is equivalent to, "selecting a wine is not straightforward at all."
- WrtCdEvrydy 8y agoSo, I would actually say that you can do it fairly easily with open source software these days. If you need apps to be hosted, something like Flynn can host the apps. If you need Lambda, you can rack your functions natively into OpenFaaS. The issue is that these systems aren't really 'multi-cloud capable'. I really tried to put together a 6 node Flynn cluster with 2 in AWS, 2 in GCP and 2 in Azure but the response time in cross-talk was terrible!
- geofft 8y agoYou certainly can implement it - you just won't implement it in a way that's either price-competitive or as easy to operate as the native approach. (Or put another way, there's a reason AWS customers use Lambda instead of OpenFaaS on EC2.) If your goal is to make it work, sure. If your goal is to have a meaningful comparison of price, performance, reliability, and human ops overhead, you won't get that with DIY on top of cloud VMs. The DIY approach is fantastic when you're interested in operating your own cluster on your own hardware, though - if you're mostly in a place where colo / datacenters makes sense to you, and you need a bit of something like Lambda, don't do a cloud migration just to get there.
- mmcconnell1618 8y agoSpot on! I like to compare it to building mobile apps. You can create an HTML based app that works on Android and iOS but it won’t take advantage of many of the native platform features. Similarly, VMs and block storage will run in any cloud but won’t be optimized for any vendor. It’s portability vs. optimized for the provider.
- gaius 8y agoit won’t take advantage of many of the native platform features Kinda like how back in the day you could use Java and AWT just provided either the lowest common denominator widgets, or rendered the widgets itself to be equally unsatisfactory everywhere. Those who forget history...