Heroku is one of those things that if someone tells me their still on it without a plan to migrate I question the executive leadership at their company.
Shade of its former self, expensive, and there are plenty of better options. Really seems like the company is in zombie mode until it's eventual slow demise.
I saw Fly.io and it doesn't even offer a managed database, not to mention the fact that they have had serious reliability issues.
Heroku is pretty battle tested and mature at this point, though the feature development has stopped, I don't doubt Salesforce is now going to use it simply as a the "cloud" offering for their other products..
I agree.. but I'm surprised how little Heroku alternatives have popped up yet.. There is new contestants, mostly focussed on more global deploys, but no "Heroku but maintained" that I know of.. yet.
Thanks for the graph, but I'm looking for others that are "as far left" as heroku - eg offer db stuff (like elements), review apps, etc. I haven't seen that yet, but will take another look at Render!
Which are the players between Northflank/Fly and DO and work with Python? For example AlwaysData allows you to SSH and inspect your stuff and has managed DBs and backups.
I am not surprised. There are a handful of competitors but I believe the ship has sailed. I am a complete AWS dunce but it's too easy for me to spin up an ECS with spot machines and run my python app on it. When Heroku hit the scene and for many years, there was no easy alternative. You had to go and provision your own machines to then setup.
I actually gave up on AWS forever when trying to use ECS. It was incredibly complex and it kept failing to deploy, but cloudeatch only contained log entries for it about 20% of the time. All I could do was click redeploy over and over — sometimes there were logs, usually not. And they charged me for every single deploy. After a day and a $100 bill later, I gave up and used DigitalOcean’s hosted docker instead. I had it up she’d rubbing in under ten minutes and no bill other than the actual usage costs.
Now I avoid AWS as much as I can. Of course my employers tend to be on AWS so sadly I can’t completely avoid it, but I do my best and would never recommend it anymore.
Strange, maybe billing was different when you used it. ECS only charges for usage, you must have been requesting a lot of resources to rack up a cost that quickly. For example Ohio spot pricing is $0.01260298/hour/cpu. Deploying costs nothing.
It is a tool like any other and it is not as simple as DO's but its also a lot cheaper and more powerful once you learn the tooling. The logging on deployment is true but I think the majority/all issues I have seen with that is when the image is not configured correctly and cannot run when testing locally.
It was a problem on my end causing it, yes, but the point was that AWS deployment logs were next to useless as they didn’t even show the majority of times. On digitalocean, I got logs every time and after four or five deploy attempts had it narrowed down enough to fix my problem and get it working. All without a bill.
I don’t remember what I was charged for, I assumed it was because it was counting the few seconds of running time at the minimum billed time each time I deployed, but I’m unsure. This was in 2020. All I know is that I had a reasonably simple setup, there was an issue where it wouldn’t successfully start up, but logging was flaky at best and I was charged for my attempts.
I’ve been using AWS for years, at various employers and my own last startups, and it’s far more complex than many of its competitors. That’s ok when you need all of its features, but if you need just one or two, then the complexity gets in the way.
I think it took me maybe a 1/2 day to grok the majority of it and get a build pipeline setup. Most of that time to be honest was getting the permissions correct between the build pipeline components. I used to feel the same but found it to be not that true once using it.
Github Action (Build Docker Image) > Push Image to AWS ECR for image storage > Kick off Deploy of ECS.
You can configure your ECS cluster using the console UI or something like Terraform. Once configured its set it and forget it.
Honestly not that much more complicated compared to Heroku.
Without a doubt Heroku is ultimately easier but I found that once I spent the time playing with ECS and using LLM tools to understand permissions in AWS it made a lot more sense. Now its quick enough and cheaper for me.
I don't think the way you are doing it is the worst way. I am biggest expert here of course. I do mine via a github action, right now it triggers on merges to main but could also be setup independently.
Condensed but I use
1) "build-push-action" - github action to send an image to ECR
2) "aws ecs update-service --cluster <name> --service <service> --force-new-deployment" for the deployment
I haven’t used Heroku in a long time but I really liked the feeling of starting up a database and a container for the app with two clicks. Which are the main alternatives in that space today?
I'm working with a company who are very happy on it currently. It still works really well for them, they're ok with the cost relative to the rest of their costs.
Shade of its former self, expensive, and there are plenty of better options. Really seems like the company is in zombie mode until it's eventual slow demise.