2 ms·
Great advice. There’s a temptation, when the sun is shining, to make extra work for oneself. Let’s add a compatibility layer around our app so we can port it
by gorgoiler 5y ago
Great advice.
There’s a temptation, when the sun is shining, to make extra work for oneself. Let’s add a compatibility layer around our app so we can port it from AWS to GCE on a whim.
Then the storms come and you realise the last thing you want, when under pressure, is to have added-complexity to your business logic. Oof.
On the final point, pip install . and a tiny setup.py has worked really well for me. Putting these all in one place and having a house style is nice too. There’s probably even a debhelper to turn them into native packages, though again, that seems like extra makework compared to just throwing your junk onto automatically provisioned production hosts. Vive l’/opt!
- chakspak 5y agoOne thing that I wish was mentioned in this article is that Kubernetes already provides a pretty good compatibility layer between cloud providers. If you don't completely bake your app into AWS by using the AWS SDK all over the place or using a database that only exists in AWS or something, moving individual apps is just not that bad. You still gotta solve the cross-cutting things like logging and metrics, but you gotta do that anyway, and that shouldn't (!) require code changes to your app. To be fair, that's all moot if you're not using Kubernetes in the first place. As well, things like EKS pod roles add great value that you'll have to sacrifice to truly call your app "portable".
- da39a3ee 5y agoWhat does "pip" resolve to in your suggested solution?