I finally started migrating our app from Heroku to Hetzner. Started by moving Postgres, and boy, what a difference in performance. I pay 1/5th of what I previously paid, and performance is through the roof. Like, as if we had rewritten our Rails app in Rust (metaphorically speaking). I know that in theory you get much more from managed postgres than a simple self-managed server, but I have pgbouncer and Wal-G set up,…
>. I pay 1/5th of what I previousl,,, For now?
It's not like Heroku was zero maintenance. I often ran into resource limits. I did a fair amount of optimisation on jemalloc to make sure Rails didn't run into Heroku's ridiculously low RAM limits because of loading too many ActiveRecord objects. Yeah, sure, I should probably paginate better, but now I have so much RAM it literally doesn't matter.
Heroku also regularly asked me to schedule DB maintenance. Before I paid for the expensive DB, that meant the connection string could also change, which meant I had to redeploy my AI workers (i.e. background jobs that need a GPU) that were hosted outside of Heroku. Now it still warns me that the connection string would change, but it somehow didn't anymore. Ah well. All problems of the past.
The solution in Heroku was always to throw more money at it, and the increments were quite serious. With Hetzner, I now have massively overprovisioned servers that cost a fraction.