Heroku 22 Stack
devcenter.heroku.com
devcenter.heroku.com
After the latest 6 week credential loss / security breach we are actively looking for our replacement and expect to be gone by the end of the year if not the summer
Platform.sh looks promising. Render was a breeze to setup, loading our ENVs was the longest task.
Too many issues both discussed here and undiscussed. Also, their upsell approach is stale:
* Public runtime has a 20 min cooldown after 3 app crashes
* Hobby pro dynos don't report container mem limits due to ancient cgroup setups(gotta upgrade to performance M)
* No Dyno sizes between 2.GB and 14GB ?!
Bunch of BS trying to push you towards Enterprise accounts, more expensive dynos, and private spaces(which cost more Dyno units).
[0] https://nixsanctuary.com/best-paas-backend-hosting-heroku-vs...
Luckily I was not affected by the recent "issues", since I'm not using the Github integration.
If someone was to use heroku I'd advise to at minimum:
- move the DB elsewhere.
- not setup external services through heroku auth (sentry, logtail, newrelic etc)
With all of that said - I do have my startup and some pet projects there as it does in fact abstract the devops aspect away.
We're extremely overprovisioned on EC2 as it is (peaking at 54GB consumed RAM over the last 12 months, and we have 386GB available) so management is welcoming the change to a bunch of Performance L dynos!
We're moving to Heroku for a variety of reasons — least of which is their recent fiasco — primarily dev exp and Pipelines/review apps (still supported!). Both will give our developers a vastly superior experience to what they had: nothing (we desperately need it).
- ~500gb one fails to backup
- ~1tb one fails to backup
- ~100gb one succesfuly backups
The link where I got that number is here - https://devcenter.heroku.com/articles/heroku-postgres-backup...
- http/3 (and 2)
- DDoS protection
- Mount a disk if you need persistent storage across deploys
- Secrets files (not just env vars)
- Private networking and DNS-based service discovery between your account's deployed services
Disclosure: I'm a Render Dev Advocate
First is there anything you think that Heroku is still better at then Render is today? Not including stuff thing might come later, but if I had to use todays stack.
I see some locations/regions but would like to know more about where the datacenters are, and how close to AWS networks they are.
What tuning options do I have for Postgres and Redis.
Thanks!
As far as I know it’s not possible to have separate environments where you’re guaranteed a bit-for-bit match going from staging to production in Render. You have to build for each environment, which if your builds are deterministic should be fine, but I’ve definitely seen that go haywire where you find out your build is in fact not deterministic in some subtle way.
We've had a lot of success with this. Heroku Postgres didn't make much sense for something we were doing so we spun up a RDS instance in the same region since Heroku uses AWS anyway and the latency was next to nothing but with easier management, better price, better performance, etc.
For small teams/products/services it totally makes sense. After a certain point, especially in a large organization that understands the value in infrastructure/operations investment, most applications/services can be streamlined and deployed. At that point, no, it is much much cheaper to go elsewhere.
If you’ve not already gone through the line items I’d recommend it. You might find that replatforming isn’t as cheap as you’d expect, unless that also included ditching the multitude of other SaaS products the team has accumulated.
1. Redis was wildly unreliable, would go down for 2-5 minutes every few days with no explanation from support
2. We had to pay for a much beefier instance of Redis just to increase our connection count. We weren't using more than 2-3% of the available memory, we just needed the connections, but you can't pick and choose.
3. Their limits on websocket connections were also a killer, I think each dyno could have a max of like 1,000 sockets so we had to add more dynos just for more sockets.
4. Switching over to AWS reduced the RTT (just networking, not actual query runnig time) on Postgres queries from ~8ms to ~1ms. Seems like the dynos and db weren't closely co-located.
However, the amount of time spent and code we have to maintain our infrastructure is waaay more than it used to be on Heroku. No free lunch for sure.One nice thing for us is that we also use Heroku CI so our tests run on the same infrastructure as prod, and the pricing for Heroku CI is just based on usage with no concurrency limits so everyone can have their CI runs across all their branches happening at the same time. We tried Github Actions when Heroku CI was ahem "down" and it was slower & more expensive + the concurrency limits meant we had to wait in line to get a CI run though. Nobody else seems to use or even talk about it though, so either we have a crazy CI setup or Heroku just never marketed it.
We occasionally do the math to see if Heroku is still a good deal and the answer is always that the amount of time we estimate we're saving on devops more than pays for itself in extra time spent on app development. There's a break-even where that will no longer be the case, but as engineering & devops get more and more expensive Heroku seems like a better and better deal.
The scariest part isn't really the product itself but all the recent talk about how it's a ghost town and nobody works there anymore. It's a great product but I do hope they start innovating again.
I'm sure that there are limitations for larger teams or if you have specific requirements. But I think it's a great choice if you're a small team and/or your application is more or less run-of-the-mill from a technical point of view.
Still more expensive than I’d like, and the lack of an AU option sucks, but it’s been great so far, I choose it because I didn’t want to worry about devops, and that’s pretty much been the experience.
I have had a look at render, but didn’t find it as easy as Heroku, It’s probably due to me being more familiar with Heroku.
The decade-old app is still running great. We make extensive use of the Heroku CLI and some of the addons for databases and logging. The newer one isn't so heavily integrated into Heroku's features aside from the database. It was set up by a senior dev who's given largely free rein over his projects, but otherwise the company switched to DigitalOcean for new projects several years ago.
So my job is ~75% working with DO droplets and ~25% Heroku dynos. I didn't care either way, really, because at the end of the day my priority is the actual program. But the recent blowup with Heroku's GitHub integration was really painful, especially for our old app whose deployment process was deeply integrated with our GitHub repo. Once the outage had dragged out for a couple weeks, I started advocating to my lead for a move to DigitalOcean. The only reason we haven't done it yet is that we're a consultancy so we'd need to sell our very non-technical customer on a migration.
My points are 1) I think a lot of Heroku's business in 2022 comes from large, old projects that, for various reasons, are complicated to move elsewhere, and 2) Heroku is pretty much fine for those projects, aside from the recent issues that were thankfully resolved.
If I'm starting a new ktor project, who offers the least friction in trying things out and learning the frame work?