Readit News logoReadit News
Posted by u/seancoleman 4 years ago
Ask HN: Are you leaving Heroku?
It seems like Heroku has been dying on a vine. The platform is still incredible and unmatched in Developer Experience, but recent security incidents (along with a severely prolonged resolution), downtime, and (just yesterday) a DNS-related issue is making me reconsider and quite possibly will move some mission-critical apps to AWS.

Are you migrating away from Heroku? If so, which cloud provider are you using (AWS, Google Cloud, Azure, etc)? What's your stack and what service are you migrating to (ECS, Elastic Beanstalk, etc)?

buf · 4 years ago
Short answer: no.

Every year I try out new things (fly, render), but stick with heroku because I'd rather focus on building products and not devops.

I'm a solo dev making $700k a year on my projects. I'm happy to pay the extra cost for things to just work.

If there is a catastrophic issue though, I do have backups elsewhere that I will use.

nicoburns · 4 years ago
Are the things you feel are missing from fly/render, or is it just a case of it not being worth switching an already set up project?
melony · 4 years ago
Fly.io doesn't track Heroku buildpacks nor does it recommend buildpacks as a first class workflow. Buildpacks are very underdocumented. The official tutorial and guides pushes Docker as the "preferred" workflow. Docker is nice for environments like Rust/Go/when you have additional dependencies. For Ruby/Python/Node buildpacks are a lot easier. Your typical Heroku tutorial says "use cedar-XYZ pack for Python Z and everything will just work". The version of Heroku buildpacks tracked by fly is many years out of date (Heroku 18, https://fly.io/docs/reference/builders/). People use Heroku because they don't want to deal with DevOps or the differences between Ubuntu vs Debian vs Fedora for server side deployments. Docker is great for complex use cases but 80% of the time you just need to install dependencies and expose a port. Fly.io claims to have automated detection of environments but this isn't well documented at all. The docs doesn't explain when to use the automated detection and when it will fail.

In the entire fly.io documentation, there are only two mentions of buildpacks: https://fly.io/docs/reference/builders/https://fly.io/blog/topic/buildpacks/

Fly.io hides behind clever engineering blog posts while pushing tremendous complexity on to the developer. While I appreciate the transparency and clever engineering hacks used in building Fly, the lack of a true managed database with a proper GUI and point in time backup and recovery makes it hard to consider Fly as a true Heroku alternative (the official Fly.io recommendation is to go to Crunchy Data for managed databases).

buf · 4 years ago
I wish I could give you a concrete answer but it's been about 7 or 8 months since I last looked at alternatives. IIRC, it was something to do with Postgres restore support not being as good.
saasxyz · 4 years ago
Can I know what projects you build?
mrbugsbunny · 4 years ago
sent you a mail.
cguess · 4 years ago
Today I went to restore a backup from three weeks ago on a new test instance and I saw it broke. I was getting some utterly weird messages about the pgcrypto extension not being available anymore (problem since I use UUIDs as my ids).

After HOURS of messing around I found this https://devcenter.heroku.com/changelog-items/2446. None of which was communicated to anyone, and it completely breaks all old backups. There's no mitigation listed on the page, and from what I can tell no one can figure out the proper way to do this without manually dumping, manually changing all references, pushing it back up and hoping to god nothing breaks.

I find it absolutely, utterly, unacceptable to do something like this with no migration path documented. Most people (including myself) use Heroku because we're willing to pay more over being a sysadmin. I can run my own infrastructure on bare metal machines, but it's something I deeply, deeply, don't want to do. Much less manually editing 15gb SQL files.

So yes, I'm considering leaving if this isn't mitigated quickly.

jrochkind1 · 4 years ago
Yep. I am getting pretty good support communications on this issue in heroku support tickets (you are not?), but the fact that they haven't actually made a public announcement about it is pretty unforgiveable.

Last I heard from support, they thought the issue you are running into with backup restores would be solved maybe in the next week or two... but there is no public place to look for status or resolution, I just need to keep asking support, apparently. There are workarounds, that is there are ways to restore from those backups if you really need to... but it's confusing. Some more info here:

https://www.reddit.com/r/Heroku/comments/wgkjdf/heroku_ext_c...

Anyway, still being in the middle of dealing with this when the DNS issue happened... my opinion of heroku is definitely dropping fast... but it started out so high it's gonna take it a while to hit the ground and smash into pieces.

cguess · 4 years ago
Heroku support answered my support ticket within a few hours (so good on them) with a canned response that pointed me to the article I had already referenced to them (not so good) and some hand waving "we're working on it." How they deploy this without figuring out a migration path first is beyond me. Someone... must have brought this up internally and been shot down I guess?

The issue they say this was to mitigate is this CVE https://www.postgresql.org/about/news/postgresql-145-138-121... which seems extraordinarily difficult to exploit (oh, and they don't address in already active databases... so....).

Very much throwing the baby out with the bathwater.

Plus the "we're shutting down all your stuff" message today makes me scrambling for another service.

HermanMartinus · 4 years ago
I was pretty unhappy with the outage last night. All the user blogs for https://bearblog.dev went down for about an hour and a half (and I had so many emails to respond to this morning).

I'm looking to move Bear over to either a Digital Ocean droplet (I have the staging server running on one with SQlite and Litestream running, and believe it could actually scale well), or to Fly.io (to be seen).

mtlynch · 4 years ago
I've got several SQLite + Litestream projects running on Fly, and I've been happy with the service. Here's my config if you'd like a reference:

https://github.com/mtlynch/picoshare/blob/b246751d5036fdb332...https://github.com/mtlynch/picoshare/blob/b246751d5036fdb332...https://github.com/mtlynch/picoshare/blob/b246751d5036fdb332...

HermanMartinus · 4 years ago
Thanks :)
rozenmd · 4 years ago
Do you have a status page? (I'm biased as the founder, but) our customers at https://onlineornot.com report getting fewer support tickets during incidents as their users know to check status.example.com before asking support what happened.
nkotov · 4 years ago
This thread will be filled with a ton of alternatives suggesting a "heroku-like experience" on top of some other cloud provider. My honest opinion, don't waste your time with these "shortcuts". Just use the cloud providers directly.
zoomzoom · 4 years ago
Would love to hear more about why you think that is the case. For example Cloud Run on GCP is one of the best developer experiences in the cloud provider world, yet still has some key issues (some are solved by Herkou and some aren't). For example: - long-running workers, crons (they're just fixing this in beta with jobs but still has a lot of limits) - ability to get a shell to run arbitrary commands (e.g. SSH) - having multiple environments, auto-configuration of sql/redis connections for each, secrets for each. - Then if you're doing a "real" production-grade app you have to deal with how you orchestrate multiple cloud run instances behind a load balancer (e.g. frontend/backend) and all the DNS/SSL/VPC configuration here - how you deal with CI/CD across multiple environments (e.g. staging/branch previews) for multiple services, both in terms of configuring CI appropriately and in terms of which services trigger which jobs - matching up deployed envs with dev environments

ECS or App Runner on AWS has many of the same issues. 100% agree that many of the k8s-based environment automation solutions are a mismatch for a Heroku replacement. But I do believe there is room for tools that help solve these problems on top of cloud providers (disclosure, working on one at withcoherence.com...)

mrkurt · 4 years ago
Good thing we (Fly.io) are a cloud provider you can just use directly. :)
countspongebob · 4 years ago
Hi all... I'm the new-ish Heroku/DX GM for Salesforce, and in prior job was the Kubernetes GM for AWS. I always read these threads with great interest. Very much appreciate the unvarnished feedback about Heroku we get here.
anotherfounder · 4 years ago
In the main thread on Hacker News, you still haven't addressed any of the issues raised by developers on closing down the free tier. What alternatives did you consider? What stats? What about folks who have both free and paid dynos?

Also, please read all the feedback on the communication style in the blogpost.

Deleted Comment

shakezula · 4 years ago
I left Heroku in favor of just a hand-configured DigitalOcean droplet. I might try Fly.io but honestly, for what I’m doing, the flexibility of a full Ubuntu box is just too good, even in 2022.
systemvoltage · 4 years ago
Try Debian if you want everything almost the same as Ubuntu but without the bloat. Everything is faster. What it lacks in branding/marketing, it makes up for it in the speed. Also recommend FreeBSD.
6bb32646d83d · 4 years ago
What's faster? There's not really any bloat impacting server performance on ubuntu vs debian
beeboop · 4 years ago
Reposting this because fuck Heroku:

A former employer was mad at me for daring to leave my job and made a malicious DMCA claim against my website. Heroku took it down with zero notice and treated me like a criminal when I called them to quit their bullshit.

They said I was not allowed to ever host the falsely claimed content on Heroku ever again. They said that I should pursue external avenues for disputing the claim. I took my site off Heroku and kept it offline because of the implicit threats of lawsuits from my previous employer. The site was my online portfolio of work and experience I was using for job hunting. However, my Heroku account was also used to host my profit-generating website/business, and instead of taking down only my portfolio site, they took down every site on my account. My account was completely disabled and I wasn't able to even remove the specific site and put my other ones back online, which is why I had to call them to re-enable it, but only after they treated me like shit and like I was murdering babies even though I told them the DMCA claim was malicious.

rcarmo · 4 years ago
Those of you interested in the Heroku lifestyle and willing to have a quick and painless deployment experience (for simple apps) are welcome to try out Piku, a tiny Heroku-inspired PaaS for your own servers:

https://github.com/piku/piku

jrochkind1 · 4 years ago
Neat, but "my own servers" is not what I think of as the "heroku lifestyle" at all!
rnmp · 4 years ago
Have you by any chance tried Dokku? How does it compare with Piku?
rcarmo · 4 years ago
Yes, I developed Piku because I did not want to deal with containers on low end platforms like the Raspberry Pi.

These days I run it everywhere, for anything between a headless scraper worker pool to a full blown site.