Re:Ask HN: So you moved off Heroku, where did you go?
by conradfr on Tuesday October 04, 2022 @06:56AM
(#33078654)
I guess most of my apps have persistent data.
Re:Ask HN: So you moved off Heroku, where did you go?
by smt88 on Tuesday October 04, 2022 @09:05AM
(#33079737)
Every useful app has persistent data. It sounds like you have a design problem, though.
If you're treating application servers like cattle, then none of them should have persistent data (except caching that's disposable). There are fire-drill days that require deployments, so downtime incurred when updating your application code is unacceptable.
To solve this, put your persistent data on a separate server and store it in a proper database (Postgres, for example). Postgres never needs emergency updates, so the downtime for those (infrequent) updates can be pushed to non-peak hours.
Re:Ask HN: So you moved off Heroku, where did you go?
by conradfr on Tuesday October 04, 2022 @11:26AM
(#33081721)
I would maybe do all that if it was for more than side-projects that can tolerate 5-10 seconds of downtime when deployed :)
Re:Ask HN: So you moved off Heroku, where did you go?
by smt88 on Wednesday October 05, 2022 @09:47AM
(#33095533)
That's fine, I wouldn't tell you otherwise. You just complained about a missing feature that isn't actually missing if you use the service properly and treat servers like cattle.
Re:Ask HN: So you moved off Heroku, where did you go?
by conradfr on Wednesday October 05, 2022 @11:59AM
(#33097221)
Well yes, some containers only read the persistent data so if those could have zero-downtime as there's no risk of data corruption it would be great, but that option is not offered to me.
Tangentially I was looking at Render.com the other day and they also don't support zero downtime deployments if you have a mounted volume, so it's not very uncommon even on cloud platforms.
As for restarts, I didn't have that problem yet, I believe CapRover adds `restart: always` to all the running containers so they should automatically boot. You might want to check out the logs of the containers that don't restart or just always hard restart the server after a Docker update.