The whole point is that if you're going to take advantage of a free tier you should do so in a way that switching is trivial. Docker goes a long way to achieving that.
I personally just pay $10/month to Linode and self host these days using Nomad. Less restrictions and more freedom for the cost of a coffee and a bagel.
Adding docker means adding a whole new layer to ALL of my projects, which I'd prefer to avoid specially when there's no need as Heroku has very clearly shown.
How do your dependencies get installed? What happens if you depend on something in your package.json that isn't on the public npm repo? What happens if you need to compile some native code as part of one of your dependencies?
Do you need to depend on anything provided by the OS? Timezone data? Maybe you use sqlite as a storage backend and want to ship your database file as well. How do you include configuration data?
Docker drastically simplifies packaging and deployment, and gives you a ton of flexibility in where and how you run your code.
Oracle a problem? No, because my Jails can wander to Vultr, Hetzner (yes they sill support FreeBSD) and Amazon andandand, the only change is a DNS one.
Regardless, as someone who uses a variety of languages and is in the exact same situation, my generic Makefile is probably easier to read and understand than any standard that you have probably achieved.
Overall, I'm inclined to agree! You can pick a stack that's as boring or interesting as you want and have your container images work in almost any environment where OCI is supported, with minimal tweaking.
You can use either base images that someone else has made (Bitnami images in particular are rather nice), or build your own, about which I wrote in more detail: https://blog.kronis.dev/articles/using-ubuntu-as-the-base-fo...
Currently each of my individual nodes cost around 5-10 euros a month, or I can even use my homelab servers for whatever I want, since they can either be in the same cluster or a separate cluster. Essentially you just adjust some deployment constraints and feed some YAML/HCL into whatever container orchestrator you have. Provided that your registry access is configured correctly, you'll have your software up and running in minutes.
Did not mean to imply that Dockerizing applications is a bad thing - actually even pointed out that "it's not so hard". Just wanted to point out that writing one takes some effort and therefore Fly.io is not a drop-in replacement for Heroku.
Container based deployment is a great thing to have and definitely a skill worth learning.
Wish more cloud providers would focus on helping with existing open source tech, rather than trying to suck you in.
And it's a nightmare compared to fly.io
I’ve deployed K8s in the past but was curious if Nomad is lighter/easier
So, I'm sticking with Heroku. Sure, it'll cost some (and supposedly they're bringing in cheaper tiers than current, too), but it's not a big difference from their competitors, is reasonably priced (from a competitive perspective), and allows me to continue using a tool I know inside along with all the accompanying ecosystem.
I guess after ten years I'll actually have to pay Heroku something for their service. That seems... fine to me. Complaining about that seems petty.
Throw Cloudflare in front to survive an HN hug as far as bandwidth concerns go for the Replit free tier and you should be looking good.
It was the security breach where all of my environment variables were stolen. And the amount of time it took and their level of transparency through it all.
On the other hand, if you're an individual with a bunch of small projects and you want to host them economically, then standard VPS hosting is going to give you a lot more bang for your buck.
They can certainly play for Heroku.
As a Heroku user, you pay a premium for AWS instances, essentially, with the premise being that things "just work" and that you get simple deploys.
Well, if by "just", you mean "barely" - sure! We had several hours of outages where Heroku's status page was still green. We even gave them metrics to show that the issue was with their routing layer, and they just told us that it was our apps fault and that perhaps we should get New Relic to see why it's so slow... After several months of prodding they acknowledged that it was their fault. Or, well, they blamed another customer for excessive use of resources or something like that.
As for simpler deploys. We had multiple incidents where our deploys got into some hybrid preboot state. (If you're not familiar with Heroku's terminology, a bit simplified: Preboot enabled = start the new instances, wait three minutes and then reroute traffic. Preboot disabled = stop the old instances, then start the new ones.) In our case, deploying with preboot enabled, Heroku stopped our old instances and then waited three minutes to start new ones... Again, this wasn't acknowledged by support until after several weeks, even those we provided logs showing exactly what happened with our instances. Now they have admitted that it's a bug, but our issue is still open.
Oh, and the Github integration was of course removed when they were hacked, so the DX argument isn't very strong either.
Maybe we were just unlucky, but good riddance...
https://aws.amazon.com/about-aws/whats-new/2010/10/21/announ...
I don't see how that's comparable. it's one instance of a micro server(and a few other things) for one year for a new AWS user and then it's over. heroku was an unlimited number of apps free tier forever with a limit on cpu/database usage for each app.
it's been 12 years, but they had a decade of other business units helping to fund their service, and can afford loss leaders like few other businesses.
https://www.bleepingcomputer.com/news/security/massive-crypt...
Note, oddly the article doesn't state Heroku by name, but the network diagrams all do.
Heroku is mentioned in the first sentence.
I use docker containers for a rails app and send backups of my db to S3 with restic. Docker compose files and DR scripts are in my repo. If Hetzner goes down I’ll run them on a VPS from any of the million providers.
Deploys push a docker container to dockerhub, then ssh into Hetzner and pulls them.
If you want the ease of git push deploys similar to Heroku then use Dokku.
Everyone should remember how long it took Heroku to tell you your environment variables were stolen in a breach and how they were not transparent at all through the whole process.
Their business model is sound especially for the server auction dedicated servers.
All that to say I hear your worry but I’m not worried. Hell I was paying more than double on heroku for MUCH less compute resources. So if they double their prices I’d still be ahead.
On the other hand... there is a ton of intangible value in the form of knowledge to be gained from switching tech stacks and hosting platforms. So another way to look at it is, this is a chance to re-evaluate and potentially upgrade your tech stack or skils.
Which is not what I got from TFA, more like their local bar no longer giving away free buffalo wings because people weren’t buying drinks so now they’re shopping for new happy hour specials.
About a month ago I found a tiny VPS for ~$11 for two years which could easily host a pet node app if I were into that sort of thing. $5.50 a year I think it is.
Sigh.
Actually, there's a whole set of mental heuristics that are evolving in my head surrounding monthly-recurring-discretionary-fixed-costs, as compared with the cost of a $BEVERAGE at the $VENUE. It runs the gamut from a $5/mo DO droplet, which costs a Bier vom Fass in your average pub in Germany and grants me a public-facing static IP, to a $20/mo donation to Wikipedia, which costs a Singapore Sling at the Raffles Hotel and grants me a clear conscience when I dismiss its increasingly concerning[0] petitions to donate.
All that said, in addition to the booze quotient, one also has to compare the more nebulous cost of _providing payment credentials at all_ to a new party which didn't have them before; i.e., enlarging your digital footprint[1]. This often must include a mailing address and/or a phone number. In the event of a breach, the consequences to the payor range from a mere uptick in spam/robocalls/junk mail to identity theft and all that entails. We can agree the dollar here is a huge wildcard, just like the odds of it happening at all. It varies by individual, is usually unquantified, my point is the cost/benefit gets real muddy, real fast.
Your mileage will vary.
[0]: https://cyounkins.medium.com/jimmy-wales-final-email-de36f39... [1]: https://en.wikipedia.org/wiki/Digital_footprint
all the actual tiny projects on free tiers have actual costs approaching zero. everything else shouldn’t be on a free tier.
if it’s not possible to monitor usage (not billing) and automatically unplug dns if usage spikes above some threshold, it’s probably not a good provider. having confidence that some project will never cost above x/month is a reasonable ask, and not challenging.
hint: use aws. like python and linux, it's not very good, but everything else is worse.
From a previous thread on this topic - posted by driverdan:
> We're a large Heroku user currently spending $10-20k/month. This change may lead us to switching to another platform.
> We host a lot of individual apps, many that only need free tier DBs and Redis. This change will roughly double the cost of a basic app on pro dynos + DB + redis, from $25/m to $49/m, with no additional benefit.
> Heroku is already very expensive. $25/m for 512MB RAM is laughable. At $49/m we could get a decent bare metal server for each of our apps.
> If this change included a reduction in pricing to better match alternatives it would be fine. If they only eliminated the free tier for dynos but kept free tiers of add-ons that would be fine. But as is this change will significantly increase the cost for anyone using some free resources.
No wonder Heroku is getting rid of the free tier with freeloaders like these guys.
GCP offers Cloud Run which would probably free for most to run containers.
One of the main drivers behind the decision was that Heroku required us to move to the Enterprise tier to run private databases.
If the architecture of your application is not too complex, I would suggest trying Scalingo (or Fly.io, Render, etc.) first. It took me around a day to get the application running on Scalingo, Fly.io and Render. This allowed us to be able to compare them a bit. In the end, we went with Scalingo, since the Review Apps feature to automatically launch environments from pull request worked well for our workflow.
You can see the configuration for Scalingo for a smaller elixir app on Github [1].
Render has this exact feature. They call it Pull Request Reviews. Was it not around when you were evaluating?
Heroku Free Alternatives
https://github.com/Engagespot/heroku-free-alternatives
https://news.ycombinator.com/item?id=33300053
(271 points, 134 comments)
https://neon.tech/docs/cloud/about/
Seems neon is just a hosted database, not a heroku alternative? Will be interested to see what they offer when it's released.
I tried to get a similar solution with AWS Lambda and API Gateway and it was a huge PITA in comparison.
In my book Deployment from Scratch I make a case that just a little bit of Bash gets you pretty far.
There is also nothing wrong with Dokku (we used it at one startup) or Capistrano (I didn't really use it but I think it's fine!) and other simple tools for simple deployments.
I believe there is a new tier coming that that is a small price for dyno hours spread across all your apps. So if your apps sleep it could still be cheap.
Personally I just doubled down on heroku!
I cleaned up a lot of free apps. ‘git pull’ to grab the source is just as magical as git push.
I scaled the important ones up.
I simply don’t have time to learn another platform and its trade offs, or to repackage my apps. I definitely don’t have time for anything other than Postgres which isn’t standard or cheap on other platforms either.
Nothing else is free anyway and who knows how long other platforms will be around. The whole Docker fad has practically come and gone meanwhile build packs keep doing their thing.
In doing so I hit a problem redeploying and the docs and support response are as good as ever.
Thanks for everything up till now Heroku, I’m still a customer for life!