4 ms·
Question: how do you reliably deploy? And if it's just scp-ing tarballs, how do you handle dependencies? Do you run & upgrade any third-party processes that rel
by mdaverde 3y ago
Question: how do you reliably deploy? And if it's just scp-ing tarballs, how do you handle dependencies? Do you run & upgrade any third-party processes that rely on having their filesystem or deps?
Struggling with this because even in a small app in a Linode box, I don't mind just cp-ing my bins but there's always other things/versions they need. Thinking of bringing in Ansible to help me out here.
Deploying feels easier in the container, Kubernetes world
- pdntspa 3y agocapistrano makes it pretty easy/repeatable, at least for me deploying RoR code onto my VPS All it is basically doing is a git pull, symlinking in the vendor code (gem) cache, doing all the rails preflight ceremony, and updating a "current release" symlink to point at the new folder. Oh and it restarts the servers (nginx, rails). At a previous job I had an 8-line shell-script that did almost the same thing and it worked for years.
- marginalia_nu 3y agoIf your problem is needing to synchronize a complex mesh of services when you upgrade stuff, the solution is to not have a complex mesh of services that needs managing. I have a dist-directory, in it is a directory for with each release version, and a symlink current pointing to the current release. To deploy a new version, I create a new directory, unpack each service, and then redirect the symlink ... then "systemctl restart service-name".
- mdaverde 3y agoJust read your article: https://www.marginalia.nu/log/09-system-upgrade/ https://www.marginalia.nu/log/09-system-upgrade/ You got rid of a lot but where did the functionality for those tools go? I understand wanting to get rid of containers & Kubernetes, but did you rewrite/bake the functionality in to your app? or maybe not care about monitoring and logs temporarily for now?
- marginalia_nu 3y agoI mostly just got rid of the functionality. I do logs with grep and monitoring with vanilla prometheus. Kubernetes and the surrounding ecosystem can create many of the problems they set out to solve.