Hacker News new | ask | show | jobs
by jcims 2530 days ago
This sounds great in theory but I would be interested to see if anyone has successfully abstracted the provider out if their architecture.

In my experience the only way to do this is to limit your service to leveraging the lowest common features of services that are common to each privider.

2 comments

Really depends on what you're doing. If you have something like a simple Rails stack it's fairly trivial.

From experiences it's easy enough to abstract NoSQL (i.e. AWS DynamoDB and GCP Firestore) and Serverless functions (AWS Lambda and GCP Cloud Functions), although you need to write abstractions for them in your code.

I have no experience with ML, but I'd imagine that's where it gets a lot harder to abstract these out.

Both Microsoft [1] and Google [2] provide tables with their equivalents to AWS services.

[1] https://docs.microsoft.com/en-us/azure/architecture/aws-prof...

[2] https://cloud.google.com/free/docs/map-aws-google-cloud-plat...

> Serverless functions (AWS Lambda and GCP Cloud Functions)

Look for severless benchmarks on your favorite search engine. The performance and trade-off for what seems to be the same service are not homogeneous across providers. This could completely change your costs, and then your architecture. To compare cloud providers or build multi-providers cloud, you have to be careful at comparing apples and apples, or build some kind of simulator first

Running kubernetes on a cloud system allows abstraction of the provider. We have tried it (in testing) between Azure and AWS, having a simple POC system running part on each.