If Heroku is so special, why is it dying?:
[Editors Comment: It seems it might be even more obscure that I thought it was. It is a container system similar to Kubernetes or Docker, but was around a while before them. JR]
With Heroku, there's always a "but." For 15 years, I've heard Heroku described as "magical," as the gold standard for developer experience, as the manna from heaven that the Israelites ate while wandering in the wilderness.
For all its impact, Heroku always seems bigger in its mythology than its reality. I don't mean to say that its impact hasn't been substantial in terms of other services and products it has inspired, but why is Kubernetes and not Heroku the increasingly default way to build and scale applications? Some suggest Heroku was simply ahead of its time. Maybe. Or maybe the price of that magical developer experience was too constrained to work in the modern messiness of enterprise computing.
Heroku is back in the news because it recently announced the elimination of its free tier. Why? As it turns out, it was simply too much work to keep up with the graft that followed a zero-cost tier: "Our product, engineering, and security teams are spending an extraordinary amount of effort to manage fraud and abuse of the Heroku free product plans," said Bob Wise, general manager of Heroku and executive vice president at Salesforce, which acquired Heroku in late 2010. Instead of playing Whac-A-Mole with crypto fraudsters, the company hopes to better invest in its customers—of which there probably aren't as many as there should be.
That sounds like criticism but isn't. Perhaps it's the crowd I follow, but I've never heard Heroku mentioned except to praise how it revolutionized deployment of applications. Prior to Heroku, it would take as long or longer to deploy an application as to build it. With Heroku, deployment was as easy as a Git push.
The problem, as Jason Warner, who led engineering at Heroku between 2014 and 2017, argues, is that "Heroku was never finished." Getting acquired by Salesforce didn't help, as Scott Carey covered in his article in 2021, because it effectively froze Heroku development in time: a gorgeous, snowglobe-like experience that could never be more than what happened within the globe. As Warner says, "Heroku was magical for a set of applications; a finished Heroku could have been magical for many more."
Again, this doesn't change the fact that "for many years [Heroku was] the most beloved dev tool for many folks, particularly those just starting out," Warner stresses.
Have you used Heroku in your professional life or maybe for a home project? What is your experience with it?
(Score: 5, Funny) by epitaxial on Wednesday August 31 2022, @01:31PM (9 children)
Still don't have a clue what Heroku is even after clicking the link
"Access Heroku Postgres and leverage Salesforce data via Heroku Connect. Publish events with Apache Kafka on Heroku and optimize data access overheads with Heroku Data for Redis."
(Score: 4, Informative) by janrinok on Wednesday August 31 2022, @01:44PM
It looks like we were both typing at the same time! It is a pity that I didn't get a few minutes start on you because I actually say "It is still active but it is not one of the names that you hear of very often. I'll bet there will be more than a few who see the summary and ask 'What the hell is Heroku?'."
It is a container system similar to Kubernetes or Docker, but was around a while before them.
(Score: 4, Interesting) by VLM on Wednesday August 31 2022, @02:21PM (3 children)
Pay someone else to host and maintain and take the 2am phone calls and generally operate Dokku (which is FOSS) for you
https://dokku.com/ [dokku.com]
You know how you can write a Jenkins pipeline such that every time you "git push" to the master branch, it rams it thru unit testing and if it passes it auto deploys? Assuming you don't do day to day development on master branch of course and only merge in completed work? Yeah you can download FOSS packaged software for that and skip all the Jenkins configuration, or you can just send a simply enormous amount of money to Heroku to host it for you.
Maybe an even shorter version is it automagically does "everything" for a deployment after you run "git push".
It works and its cool but its very expensive.
The problem it has can be expressed much less verbosely by pointing out their business model relied on "throw everything against the wall and see what sticks" so tests and experiments are almost free and then if the "next facebook" appears they can charge up the wazoo to make real money. The reality is everything successful won't be successful with what heroku charges, so anything that takes off, leaves. So everything gets thrown against the wall and nothing sticks it all slides off.
The other way to describe the problem is managers like to describe making the programmers wake up at 2am because a hard drive died as "wise hard working middle management" and their heroic leadership will be lauded. Also making salaried workers wake up at 2am is free, Heroku is NOT free, not even close. So outsourcing your Operations at considerable expense is a non-starter for any large company. Small companies don't have any money. Individual devs not only don't have traction but don't have money either.
Meanwhile there are 1000 ways to do this in a cloudy manner on AWS at lower expense.
(Score: 2, Informative) by Anonymous Coward on Wednesday August 31 2022, @03:02PM (2 children)
I ran Dokku for years. It was pretty handy for being able to rapidly deploy small applications. Unfortunately it doesn't scale well and it's just docker under the hood. It's so much easier to deploy to a kubernetes cluster and be done with it.
When I suddenly had to scale my app to handle ~500,000 hits per minute, I was glad I was running kubnernetes and designed the site properly. Scaled up in a matter of ~2-3 minutes, then scaled down about 6 hours later.
Since I was using DigitalOcean instead of AWS, Google, or Azure, it only cost a few extra bucks.
(Score: 2) by VLM on Wednesday August 31 2022, @08:45PM
See that's the other problem with Heroku, its "hey new people, why go to all the bother of setting up and understanding kubernetes when you can just present a credit card?"
So from the provider side, Heroku is stuck with the new small timers. The ones whom aren't profitable (profitable to the provider, I mean)
Meanwhile from the user, or author, or ... other side, they can only use Heroku until they're small, so they haven't eliminated their labor cost of learning K8S, they just doubled their labor cost because now they gotta learn and create business processes for Heroku AND K8S if they're successful. I suppose, if they're not successful or not optimistic about being successful, they do save the effort of learning K8S.
Dokku really is nice for 1-10 user small scale "intranet" type stuff at work. There's also CapRover which used to have a different name, drawing a blank and having trouble finding with Google; but yeah same idea as Dokku pretty much mostly in a hand-wavy sense.
(Score: 0) by Anonymous Coward on Saturday September 03 2022, @02:40PM
That's less than 10000 hits per second.
I think with modern CPUs and SSDs it shouldn't be hard to do that for many common web apps. I was already doing 2000 hits per second many years ago with multiprocess perl + postgresql + fast cgi on a single server.
There are also some sites which render/convert/cache most stuff to static - so only stuff like checkout is dynamic - and if you're getting 10,000 real orders per second that's a nice problem to have ;)
Just checking static html for on a Virtualbox VM on my desktop PC, things seem a lot faster than many years ago on real server hardware:
Benchmarking X.X.X.X (be patient)
Completed 10000 requests
Completed 20000 requests
Completed 30000 requests
Completed 40000 requests
Completed 50000 requests
Completed 60000 requests
Completed 70000 requests
Completed 80000 requests
Completed 90000 requests
Completed 100000 requests
Finished 100000 requests
Server Software: XXXX
Server Hostname: X.X.X.X
Server Port: 80
Document Path: /
Document Length: 436 bytes
Concurrency Level: 100
Time taken for tests: 2.501 seconds
Complete requests: 100000
Failed requests: 0
Total transferred: 67500000 bytes
HTML transferred: 43600000 bytes
Requests per second: 39985.40 [#/sec] (mean)
Time per request: 2.501 [ms] (mean)
Time per request: 0.025 [ms] (mean, across all concurrent requests)
Transfer rate: 26357.56 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 1 0.3 1 6
Processing: 0 1 0.4 1 7
Waiting: 0 1 0.4 1 6
Total: 1 2 0.4 2 8
Percentage of the requests served within a certain time (ms)
50% 2
66% 2
75% 3
80% 3
90% 3
95% 3
98% 4
99% 4
100% 8 (longest request)
(Score: 4, Insightful) by RS3 on Wednesday August 31 2022, @04:33PM (2 children)
I find this problem a lot. Many times I've searched to learn about something (anything) and the very thing's website talks about the features and functions and advantages, but never just basically tells you what it is. And even when they do, they use vague or even undefined terms, like "it's a containerized system" or "it's a framework". I forgot "virtual" and "virtualized".
(Score: 3, Informative) by hendrikboom on Thursday September 01 2022, @01:45AM (1 child)
I once logged into the webite for a company I has worked for years earlier. I could not figure out what their current product did, only how great it was.
(Score: 2) by RS3 on Thursday September 01 2022, @06:37AM
Your post made me think- maybe this is a fundamental difference between engineers and salespeople?
(Score: 0) by Anonymous Coward on Thursday September 01 2022, @09:53PM
I haven't looked at it in years, but Heroku was notable for being one of the first Platform-as-a-Service vendors, way back in 2007. They were useful in the very narrow window of companies small enough not to need a few full time system and network admins. They handle infrastructure, backups, security updates to the database and base operating systems, certificates, etc... you just code to their APIs, upload tarballs with your releases, and that's it.
If your business is one people, or even ten, that fits. Beyond that, maybe not. And when it comes to outages, most of us would rather shit our own bed than pay someone else to shit it for us.
(Score: 4, Interesting) by janrinok on Wednesday August 31 2022, @01:41PM
I have used it a few times but, to be honest, if is not something that I need very often. I cannot compare it with kubernetes or anything similar because I have never used them either. It does exactly what it says on the tin and, for the occasional user it takes a bit of getting used to. I suppose that had I used it more it would have become more intuitive to use.
It is a containerised system (known as dynos). Why did I use it? When I started writing Python projects (around 2015) the web was full of examples using Heroku, particularly in conjunction with Gunicorn or uWSGI, and it was simply to use those examples to get my software running on a server. However, since that time, other systems have come along and the cloud has exploded too. Perhaps the Heroku team just didn't push their software enough and relied on the community that they already had. Perhaps the more popular container systems are easier to use or have additional features - I just don't know. It is still active but it is not one of the names that you hear of very often. I'll bet there will be more than a few who see the summary and ask 'What the hell is Heroku?'.
(Score: 2) by tangomargarine on Wednesday August 31 2022, @03:11PM (2 children)
What's Heroku?
What's Kubernetes?
Ah, okay.
This is by no means an uncommon trend: Original project pioneers some new idea, spends a lot of work on it, and is pretty good but not quite all there. Then a few years later somebody else makes their own version and knocks it out of the park.
"Is that really true?" "I just spent the last hour telling you to think for yourself! Didn't you hear anything I said?"
(Score: 3, Informative) by choose another one on Wednesday August 31 2022, @03:58PM
This. But, also, sometimes first-mover is even technically much better, but fails because second/third are better marketed or funded.
Cynic in me suggests there is also more money for marketing when you are only copying rather than innovating, and when someone else has already established where/what/who the market is...
Oh, and BetaMax, LaserDisc, and, and...
(Score: 0) by Anonymous Coward on Thursday September 01 2022, @09:50AM
OK, so it's CI/CD In The Cloud. Yay.
(Score: 4, Funny) by quietus on Wednesday August 31 2022, @06:07PM
I've read some comments here that Heroku nowadays is billed as a container system, but I know it from 2012 as a [massively advertised] cloud database system. So I took them up on their offer and created a database instance (MySQL probably) with a few (empty) tables on their free or introduction tier.
A couple days later I checked it out after work, to find that my database wasn't accessible anymore -- it had crashed around noon that day. Fired off a notification e-mail to their helpdesk. Long story short, by the next morning around 7:30, they finally managed to bring the instance back up. The good, or funny, thing was that they kept me in the loop of what was happening, so I could follow closely the internal squabbling. The buck -- I believe they used the term 'hand-over' -- had passed around between about 7-9 people before someone could locate the single virtual server on which my db instance was running, and restarted it.
Maybe the fault lay with me, as I had increased the stress level a bit by noting that this particular [empty] instance was absolutely critical to the functioning of the business.
(Score: 1, Funny) by Anonymous Coward on Wednesday August 31 2022, @07:37PM
executive vice president at Salesforce
(Score: 2) by istartedi on Thursday September 01 2022, @03:19AM
Those who are "scaling across the enterprise in the cloud" and programmers targeting a particular system.
If you used Heroku at home (or any container), you've either got a screw loose or were interested in learning about how large systems work. Nobody needs a container system for the first release of their simple game, or even scientific number crunching library, or whatever else home developers are likely to do.
These containerization systems solve problems that don't occur for simple applications. It's even possible to push complex software out to lots of different configurations without them; it's just that they purport to make that easier.
So of course a lot hobby developers have no need for this and thus haven't heard of it, and even if you plan to push out to a lot of customers some day, you don't need to start with containers on day one. I've only read about it, because it just seems like it adds a needless layer of complexity during the early days of development for something that might never benefit from the container layer.
Appended to the end of comments you post. Max: 120 chars.