Currently working on moving a large client away from Capistrano to Kamal for a number of reasons.
Easier to test, reset, test, reset etc.
Much easier split and merge servers.
Potential for having some of the clients customers running their own Kamal destinations.
Easier testing of things like a streaming replica of the database.
I could go on for a long time but I am so happy to get rid of Capistrano. I’ll miss the faster deployments and log files but that’s about it.
No more systemd additions when I need to scale or add some service, just add an accessory and everything runs on docker.
You don’t have to love or use it but I for one couldn’t be happier.
The private repo thing is going away over time, I am sure of it.
For example in exchange for the longer build times I can deploy a new Ruby version in a container to single server and test it out before crashing everything.
With Capistrano, an upgrade sometimes is catastrophic, had a maintenance OS upgrade go wrong and existing Ruby version stopped working due to psych.
Downtime 6 hours before I bit the bullet and upgraded Ruby to 3.1.6.
That would have never happened in a Kamal scenario and I can test and verify the image locally first or even build the image with tests and test dependency to be really sure.
You have a huge disconnect with Capistrano and you can’t really test what is running on the server except on the server.
Took my half an hour to finish my first Kamal deployment.
I have extensive devops experience though and I have used docker for almost ten years now.
• • •
Missing some Tweet in this thread? You can try to
force a refresh