Ask HN: Alternative to Heroku
I've been looking for alternatives and found them severely lacking in security scope or basic functionality.
Render.com
- There is no concept of read/manage permissions. Anyone who is invited into a team can delete the team, all apps, services etc. By design of their UI also possibly by mistake. Support responded that they have been working on this the last 2 years or something like that.
- /tmp folders are misconfigured. This means that if you send a large enough POST and the web server stores the payload into a temp folder, that seek file is lost. I noticed this after a week of random EOF errors that the web server reported. The support responded I should just use their disk offering and that ephemeral services should not use temp folders, mind that Heroku is also ephemeral but /tmp folder can still be used because otherwise you have above problem.
- GitHub integration. The problem is that only one team/user can link the app to the entire platform. This means that if other team members visit the "Blueprint Sync" page, they will see an error that GitHub integration is broken. And for every team that you have, you would have to create a new GitHub user, just to set up sync and only that user can then see sync status.
I feel they are working hard and are closest to the Heroku. Yet I feel they are not up to the task that Heroku was/is, in particular I think they are not using the service themselves otherwise they would fix these shortcomings a long time ago.
Railway.app
They have Teams properly solved, and GitHub integration also works as expected. But they have issues elsewhere.
- Builder is slow as hell. For example, 200mb bundle needed 6 minutes to be deployed (they don't have build cache) and I was able to do it only once. The second attempt resulted in timeout (builds in 179s on Heroku and on Render in ~30s).
- No support for scheduled executions. This is a feature that both Heroku (Scheduler) and Render (Cron Jobs) provide. What it does, it spins the bundle/container and executes something at specific interval, you pay extra, but that's the whole point so that you can run more demanding tasks. I would have to rewrite everything into fake web cron of PHP era.
Do you know any alternatives besides these two? What are your plans with Heroku?
24 comments
[ 6.3 ms ] story [ 72.7 ms ] threadHatchbox is really great, and very affordable for my needs!
I like that it's a UI and some opinionated tools and processes on top of a standard Linode VPS.
I can still SSH into my Linode and it's all there.
Performance is totally down to the size of the VPS you pay for!
I dont have time/skills/focus for devops, and have found that Hatchbox took away the pain by affordably managing deployment of a bunch of Rails apps that didnt warrant the larger costs of Heroku!
I haven't kept up with it in years, so I'm not sure it's still the status quo.
It doesn't really have a story for when you want to scale up though - for example moving to multiple web servers behind a load balancer with your databases on some other vms. So it's great for side projects and demos, less so for anything you want to run in serious production mode.
I also use Digital Ocean's App engine, but its definitely not as hands off as Heroku, nor does it have the generous free add-ins for small apps (e.g. free redis or pg).
I've had a bear of a time trying to get elastic beanstalk to work on a rails app.
Fly.io will be next on review :), thanks for suggestion.
GitHub to cloud build. Cloud build deploys to cloud run. We setup multiple branches for different environments and it’s pretty much all streamlined.
We find the eco system pretty cool also we use scheduler and other cloud run instances for batch jobs. Worked great for us.
As for OP you might want to take a look at a combination of Cloud Native Buildpacks to keep that same Heroku like deployment experience that you’re already familiar with and combine it with something like Cloud Run which is a pretty simple contract where you give it an image and it will run it for you.
If it wasn’t for the legendary bad support and constant Google-typical paranoia of and arbitrariness in shutting off services and banning accounts I‘d move my whole company to it from AWS in a heartbeat. (Realistically these points have never been an issue ever, but that kind of backdrop doesn’t feel too good)
AWS vs GCP feels like Windows Server vs a Linux server distro in terms of UI and complexity overhead
The docs could use a lot of work though, and I find upgrading things like Ruby versions far more annoying than it should be.
Previously used Dokku for a few years then it was on heroku before that. Switched off dokku to outsource more of the ops.
They offer scalability across different regions and provide the networking and tooling for it. Their service also has a way to go, but I see continuous progress.
All the other services (heroku, render, railway) let me try out at least a toy app without having to use a card. That allowed me to evaluate whether the service was compatible with our needs without any further commitment.
If they manage to implement that, they'd be the ideal replacement.
So why haven't we fixed everything yet? Ultimately, our bandwidth is limited (but growing!) and every day is an exercise in ruthless prioritization. We haven't ignored role based access control — we just haven't gotten to it yet (as a side note, https://feedback.render.com shows things we're working on right now).
I can't provide ETAs, but I can say with full confidence we will address everything you mentioned, and more. Give us time!
It looks like when you at runtime configure "tmpfs", you actually look into what permissions /tmp has. On Heroku, the permission is apparently enforced and will always work. So on my end, I just had to chmod 0777 and that solved my server issue.