Life after Heroku: What's a dev to do?(reaktor.com) |
Life after Heroku: What's a dev to do?(reaktor.com) |
I can want free shit. If you offer it, I can use it. If you stop offering it, I can leave and look for more free shit. I can also help other people who want free shit to find it. I can write about it, and you can downvote it if you don't like it. The end.
Can I borrow your car? I'll only put 20k miles on it, no big deal, man! Oh you won't? Do you know where I can use a car for free?
And you're defending this kind of nonsense.
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.
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.
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!
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.
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
> my generic Makefile is probably easier to read and understand than any standard that you have probably achieved
That sounds fairly rude for HN
If you have the need to state this when it's not relevant, then I highly doubt you have readable Makefiles ;)
I created an Ember.js and Ruby on Rails clone of an old video game called Heroes of Might and Magic because it was fun to show my old buddies what I could do and play through some mock battles. I have no interest in paying for a server to host this so it’s just going to disappear from the internet. I have no interest in doing the work to port it over to even another free service. It never would have existed had Heroku not been an option when I had the idea. Obviously I could pay for it, it’s just not worth paying for. It’s similar to piracy, I consumed a lot of content back in the day simply because it was free. I never would have paid money for those music or to watch those movies.
Or do you mean it's the same in Fly.io? If it auto-detects Node.js (through package.json), or at most allows for a dropdown to say "Node.js project", then that sounds about right for me.
Indeed the docs[1] say Fly automatically detects a Node.js project, so you don't need to create a Dockerfile.
[1]: https://fly.io/docs/languages-and-frameworks/node/#launch-th...
Well it still creates a fly.toml for you, which is still a new config file that I have to maintain across projects.
Four CPUs, 300GiB of storage and 24GiB of RAM should last for quite some time.
If you do need the compute and bandwidth: pay someone. Pay Heroku or set up a Dokku (or similar) system on your own server.
This is Oracle. You weren't thinking of agreeing to to the T&Cs without understanding what they actually mean, were you?
The 50mbps uplink isn't spectacular and certainly not enough to run a business on, but for anything the other free tiers are intended for (experimentation and hobby use) it's sufficient.
Juet remember to never give them your credit card number and provide as little personal information as legally allowed. You don't want the lawnmower to come in your direction, the lawnmower doesn't care.
I mean it even creates the basic file for you, I'm not sure what the issue is?
Heroku's free tier has been incapable of running a 24/7-accessible webserver for many years, nearly a decade[0].
At this point, if anyone is reliant on it, it's almost impressive that they've managed to get by for so long without either paying Heroku or bouncing off to another service.
[0] if you give them a verified credit card, you get a few additional free hours per month, just barely enough to run a single webserver full-time on one dyno. At best, the free tier offering is... incredibly limited.
I would say this kind of free tier is quite powerful. It even had free Redis and PostgreSQL. But it had some horrendous periods of downtime and bugs that affect the paying customers just as badly. So ironically the free Heroku experience in 2022 leads you to the conclusion that it's the worst service you could pay for, but the best service you could mooch off of (aside from fly.io and similar) -- which may be counterproductive for Heroku's marketing.