I really appreciate the service that Heroku runs. It was a very easy way for me to get started in Node.js, and also very affordable! I kept marveling at what a great deal it was, gushed publicly about it, and paid them the highest honor, I developed my software around their architecture, so it would be really easy to deploy my stuff on Heroku.
My basic idea is that back-ends for software are very small things. They just move data out of the app, which runs in the browser on the user's desktop, to a storage place, and back out later. That's all the server has to do.
I designed it so that each app has its own server. That way if one of my apps got really popular, it wouldn't interfere with the others. This is ideal for developers, to have scaling be a totally fluid thing. That's why you want to chop the pieces as small as you can. Rather than try to host ten apps on a server, give each app their own server, no matter how small and insignificant. It's a design that can only work for a system like Heroku. It was really a breakthrough.
But, they changed their pricing so as to really discourage this architecture. It's possible they weren't even aware how their change would affect us. I didn't hide the design, I wrote lots of posts about it. I emailed with people there. I even met with their CEO on a trip to California to talk about how I saw their service and to learn how they were planning to evolve it. I kept emailing them asking if they were sure this is the deal and thanking them for their generosity.
But once they changed, I had to change. It no longer made sense to have lots of individual servers, one for each app. With the new economics. I'd have to bundle them up, the old way, where one server is running N apps. And if one gets successful, there's a bunch of manual work to set things up so it gets more resources without slowing the other apps down. Scaling is no longer a matter of sliding a slider on a browser interface. I wish it were.
Anyway it's up to them to decide how to price their service. And it was up to me to migrate when they changed their pricing. It was a pretty hellacious weekend here, lots of stress, but it's not bad. It's kind of like a basketball player has to get really intense to make it through the playoffs. This was a very high wire balancing act. But it was a good thing to do, now I have a much better understanding of what I've done. I've moved code I wrote when I was a total newcomer to Node.js. It wasn't a horrible experience!
And now I'm back on solid ground (knock wood, praise Murphy) I look forward to getting back to the stuff I really love, making new idea processing software that networks people in incredible new ways!
PS: A little more perspective in a post on my liveblog.