It was recently reported that Heroku will soon be making some changes to their basic dyno pricing structure. I wanted to take a look at the changes and see what they will mean for all of the apps that I host there, some already on a paid tier, and some using their generous free tier.
You should read the original post if you want all of the details, but the basic rundown is this:
So let's look at a few different configurations and see how monthly costs would differ between the current pricing and the new pricing.
For the record, I do not work for Heroku and was not paid or otherwise encouraged by them to write this. My goal here is not to convince you to move to Heroku, but rather to take a fair look at how these changes will affect apps currently hosted at Heroku, both free and paid.
Also, I'm assuming fairly simple (and possibly naive) usage patterns. One of the big benefits to Heroku (and other services like it) is that you can be very intelligent about how and when you run your infrastructure and scale up and down based on demand and/or time of day. For the sake of easy calculations I'm going to be looking at static dyno configurations. Many of these are real configurations that I've used, and some are better thought of as a base-line minimum for busier sites, which would be augmented with some additional dynos on-demand.
I'm also interested in helping developers understand that the economics of changes like these may not be as cut and dried as they appear at first.
Which leads me to my next point…
One of the things that's motivating me to explore this pricing change is that I've seen some grumbling from developers who are ready to move away from Heroku simply because they're not getting everything they need for free anymore and think that there are "cheaper" options.
On the raw numbers, yes, there may be cheaper options out there. However, moving to those other options will take time and effort, and unless you value your time at $0/hour there is a real cost to you in spending the time to make the change. This is true of any big change in hosting providers.
For the purposes of this conversation let's say that your time on the open job market, as a person who is technically capable enough to use Heroku effectively is $85/hour. This is a very realistic number, and in fact, is on the low end for contract developers. But it's a convenient number for our purposes. If you know how to use Heroku and you don't believe you time is worth at least $85/hour I'd reccomend that you read everything you can find from Patrick McKenzie, aka patio11.
The current free tier at Heroku basically allows you to run one dyno 24x7 at no cost. Dynos are currently put to sleep after 1 hour of inactivity, but I think that only applies to web dynos, and they can be kept alive by setting up site monitoring tools to ping them at least once an hour. So, basically 1 free dyno 24x7.
The new pricing indicates that the best you can do on the free tier is to run one web dyno AND one worker dyno each 12x7. If you currently have a site with only one web dynor or with just one worker dyno it seems that you'll be out of luck for staying on the free tier if you want to keep your dynos alive all the time. If you can schedule your dyno availability around business hours (for example) and allow them to sleep at night, you may be able to squeak by on the free tier.
If you really need your one web or worker dyno to live 24 hours a day 7 days a week OR if you want to host your web dyno at a custom domain, then under the new pricing structure you'll pay $7 a month, or $84 dollars a year.
I know that some people will balk at this figure, but based on the number we agreed to above, if staying on Heroku saves you even 1 hour over the next year it has paid for itself.
If we assume, for a moment, that you have the option to move to some other hosting service that is free, you can't spend more than 1 hour making the transition to the new service, and you really can't spend any time at all over the next year doinking with your new hosting provider.
If you value your time at all it's worth it to pay the $84/year to keep a project running there that was previously free.
Let's say that you currently have one web dyno and one worker dyno staying alive 24x7, both on the 1X or 512 MB dynos. (I'm running exactly this configuration for a couple of small apps.) Currently you get one of those dynos for free, and you pay about $35/month for the other one.
Under the new pricing structure you'd pay $7/month for your web dyno, and $7/month for your worker dyno, for a total of $14/month. This is clearly a better deal and represents a savings of over 50%.
Let's say that you currently run 2 web dynos and 1 worker 24x7, on the 1X dynos. One of those dynos is free, and you're paying $35/month for the other two, for a total of $70/month.
On the new structure you'll need to step up to the Standard pricing to be able to run the 2 web dynos simultaneously, so you'd be paying $25/month for each of 3 dynos. So all together you'd be paying $75/month instead of $70/month, for a total increase of $60/year.
Again, if you value your time in the least, an increase of $60/year is pretty poor motivation to change infrastructure providers.
If you're looking for places to complain about the new pricing this is one of your only sweet spots. ;) From here on up the new pricing is advantageous to Heroku customers.
Let's say you have 2 web and 2 worker dynos running 24x7 on 1X dynos. Currently you pay $35/month for 3 of them, with one being free. Total cost is $105/month.
The new pricing would see you paying $25/month for each of those dynos, for a total cost of $100/month.
So, it's not a huge difference, but about a 5% savings on the new plans if you run 4 1X dynos 24x7.
Let's jump up and say that you're using 2X dynos and have 2 each of web and worker dynos. The details of the calculation start to get a little messy, but the Heroku pricing calculator shows the total cost to be $250.50/month.
The new pricing structure has 2X dynos at $50/month, giving you a total of $200/month. A 20% savings.
The bigger your app, the better the news.
If you currently run 16 1x dynos you pay about $538/month. Under the new pricing you'll pay $400.
If you currently run 16 2x dynos, instead of paying your current $1,114/month you can pay a more comfortable $800. 28% saving.
32 2X dynos? How about $1,600/month instead of $2,26? 30% savings? Yes!
As you can see, the larger your app, the more savings you'll see under the new pricing.
Here you can see that the savings for 1X dynos trends towards 27% as you add more an more dynos.
For 2X dynos the savings trends towards 30%.
For performance dynos the savings trends towards 13%.
If you already pay Heroku just about anything for hosting your app(s) this new pricing is nothing but Good NewsTM.
If you're currently relying on the free tier, you can continue to host your project there for $84/year. Your time as a developer is worth AT LEAST $84/hour. So, if you value your time at all you should stop trying to find a "cheaper" alternative and just give Heroku your credit card.
The only good reason to move away as a result of these (rumored) changes is if you enjoy managing infrastructure as a low level. If you're into that, then great! Have fun managing servers.