3 ms·
Im just wondering if the full loop will ever be complete and deployment patterns start shifting to single file compiled executables.
by ActorNightly 5y ago
Im just wondering if the full loop will ever be complete and deployment patterns start shifting to single file compiled executables.
- inetknght 5y agocp ./app.AppImage /srv/app/app.AppImage for deployment_host in $( <deployment_hosts jq '.[].hostname'); ssh deployment_user@deployment_host /srv/app/app.AppImage & done okay boss, what's the next problem?
- jrockway 5y agoapp.AppImage used up all the RAM on the machine, and the kernel OOMkilled sshd. Now it's time to roll back. (But I guess it wasn't the fault of that deployment -- you just staged the binary, you didn't start it running.)
- inetknght 5y agoThe app.AppImage is staged to the network share and started on the remote host. The AppImage might eat all the RAM and the AppImage will get OOMkilled but sshd is unlikely to be killed. When the AppImage gets OOMkilled, the ssh session will end with an error and the ssh client will report that the session terminated unexpectedly. I've done it (and later cringed). But it definitely works.
- nonameiguess 5y agoFor programming languages that offer a good experience with static linking, sure, but even those may depend on external config files, environment variables, specific ports and sockets, all of which can potentially conflict with other programs on the same physical host. Go binaries are almost always just one file and yet are among the most popular to deploy as containers along with making up virtually all of the CNCF ecosystem.