5 ms·
I admit: I find the argument for "fat binaries"[1] over containers compelling. There's just one problem... ...let's say I'm working on an existing code base
by Lazare 9y ago
I admit: I find the argument for "fat binaries"[1] over containers compelling. There's just one problem...
...let's say I'm working on an existing code base that has been built in the old-style scripting paradigm using a scripting language like Ruby, PHP, or (god help us) node.js. Let's say we're well aware of the shortcomings are are looking for a migration path to move into the future.
I can just about see how we can package up all our existing code into docker containers, sprinkle some magic orchestration all over the top, and ship that.
I can also see, as per the article, an argument that we'd be much better off with fat binaries. But here's the thing: You can dockerise a PHP app. How am I meant to make a fat binary out of one? And if your answer is "rewrite your entire codebase in golang", then you clearly don't understand the question; we don't have the resources to do that, we wouldn't want to spend them on a big bang rewrite even if we did, and in any case, we don't really like golang.
All of which makes this article seem oddly academic to me. There's a lot of value to something that can be layered on top of your existing solution for those of us who aren't starting greenfield projects.
[1]: Also, while "fat binaries" is a great term, it's one that already exists and means something totally different.
- danmaz74 9y ago> built in the old-style scripting paradigm using a scripting language like Ruby, PHP, or (god help us) node.js I feel like I didn't get the memo... is the new-style we're all supposed to use microservices?
- Sevii 9y agoMicroservices have won so hard that the fortune 500 are making it standard.
- danmaz74 9y agoAny data about this?
- manigandham 9y agoNo. Containers give you value regardless of the language or amount of "services" you use. Having an easy way to wrap and deploy, publish/download over HTTP, and use a simple API to run and keep running is new and valuable, hence all the popularity.
- awirth 9y agoBut here's the thing: You can dockerise a PHP app. How am I meant to make a fat binary out of one? For years Facebook (reportedly) did this with hPHPc. Not a very good idea these days, but it's certainly within the realm of possibilities for large companies.
- hennsen 9y agoYes, and we all know every shop in town has resources comparable to Facebook‘s...
- stuartaxelowen 9y agoIt seems you've misunderstood the problem.
- r0fls 9y agoI think the author's retort would be that PHP is one of these "outdated" languages like Python and Ruby. I tend to disagree, but overall enjoyed their opinion anyway. I came to criticize the article, but I think this comment already does that well: https://news.ycombinator.com/item?id=15578147 https://news.ycombinator.com/item?id=15578147
- perlgeek 9y agoEven more, the "solution" to create static binary scales linearly with the number of technologies you use. If you create a tool to create a static binary out of your wordpress blog, but you have also Python, node.js, ruby and Perl running, you still lost. Containers offer a standard where you can deploy your applications in a language-independent way, so they avoid this scaling problem. The same is true for most OS-level packages (like rpm and deb), except that they provide much less isolation.