Heroku sells convenience, and resells EC2 instances to you. Their previous dedicated database option, Ronin, cost $200/month. When you connect the dots that this DB has a 1.7GB cache and that a small instance on EC2 has 1.7GB memory[1], you start to realize what you're really paying for.
While paying 3.3 times more[2] may be ok for the added simplicity, you have to wonder if your 'dedicated' database is really just a small instance on EC2? If it is a larger instance, then you are sharing it with other users.
However, even a small instance is far from not being shared. EC2 has performance issues, especially small instances. Disk IO is the worst.[3]
Disclaimer: These are all just my observations, and I don't how Heroku actually configure their Ronin databases. I'd love to be proven wrong, and to have someone from Heroku explain. But from personal experience with both EC2 and Heroku's Ronin database, if my conclusions are wrong, the results are not. I've seen very slow performance on the simplest of queries on both configurations.
If anyone from Heroku is reading, that page is a great example of how poor contrast results in poor readability. Blue-on-blue text makes me close the browser tab, and not actually see what you're trying to sell.
Can somebody clarify which heroku plans are best, as you work from development through MVP and initial traction? My current understanding is:
Development Stage: Use the free plan.
MVP Stage: When I have an MVP that I'd like to show people and get feedback on, I'm not sure if I should stay with the free plan, or if I need a paid plan at this point.
Gaining Traction: Still low overall volume, but consistent users. What is the cheapest paid plan that works for this stage? Is it the $15 plan, or the $50 plan?
Increasing Traffic: At this point, it's a little more clear that you choose add-ons to match your specific needs.
I would love it if someone could clarify what kinds of loads each of these plans could reasonably be expected to handle.
The answer to this depends on such a variety of factors that it's impossible to give a useful answer.
Use something like New Relic to watch your app's performance. If it's exceeding tolerable limits, you need to change something. This might be a re-write of your code to reduce load, or pouring more resource into dynos, workers, database or caching.
Heroku is really great to get your started if you don't want to worry about managing infrastructure. However, you're paying a major premium for that and you need to have an exit plan from the beginning incase you grow too big and the costs no longer make sense.
I agree with everything you said, except that I don't think you need to spend any time working on an exit plan until the day you realize you're paying "too much" (whatever that means to you) for the benefit you're receiving from their managed hosting. I recommend: Launch on Heroku. Reevaluate that choice on success.
What Heroku features, products, or enforced architectural choices (like no permanent disk on the spawned processes) do you see as causing lock-in that you would plan around avoiding or taking into consideration for a migration off Heroku?
Congrats to the Heroku DoD on launching this long-awaited price point!
Can we create Crane followers of a larger master database yet? That would be really useful - keeping a cheap, eventually-consistent replica around for backup and analytics.
If you are on an older ronin or fugu you can't. But you can from all other plans and newer ronin/fugu databases. The limitation on older ronin/fugu databases is related to: https://devcenter.heroku.com/changelog-items/37
I'm building an app that will eventually use hstore for data. I say 'eventually', because I'm currently using serialized columns on the $15/month shared plan, and hstore is not yet supported.
At $50/month, this is cheap enough for me to use as a staging server or as a pre-release server to get hstore across my entire environment.
Very cool. I've been looking at spatial databases and the fact that I could get MongoDB running on a free plan (e.g. with MongoLab and MongoHQ) made me go that way. (for now)
PostGIS has been available on Heroku's dedicated DBs (https://devcenter.heroku.com/articles/is-postgis-available), but the $200/month was a bit high for early stage. $50 is much more manageable and I might be looking towards Postgres + PostGIS in the future… (assuming that the linked post also applies to these new plans)
Tried to set up a dev database from the dashboard; got a generic fail message. Told me why when I tried to add it from the CLI (my acct wasn't verified), may want to make this clear on the dashboard as well.
Damn, this is nice!
Thanks Heroku! I love the service, but 200 bucks as the lowest price point for a dedicated db didn't always make sense to me, especially in the startup world. This changes everything.
They've said they'll release something "at a comparable price point" to the $15/month shared plan. Hopefully the $50/month database isn't it as that seems high for hobby projects that outgrow the small dev database.
Most of our beta-testers have been using it just fine. We had one unlucky soul who encountered several pernicious bugs over a long period, but at this point I think they're all sewn up.
[+] [-] jstin|14 years ago|reply
While paying 3.3 times more[2] may be ok for the added simplicity, you have to wonder if your 'dedicated' database is really just a small instance on EC2? If it is a larger instance, then you are sharing it with other users.
However, even a small instance is far from not being shared. EC2 has performance issues, especially small instances. Disk IO is the worst.[3]
Disclaimer: These are all just my observations, and I don't how Heroku actually configure their Ronin databases. I'd love to be proven wrong, and to have someone from Heroku explain. But from personal experience with both EC2 and Heroku's Ronin database, if my conclusions are wrong, the results are not. I've seen very slow performance on the simplest of queries on both configurations.
[1] http://aws.amazon.com/ec2/instance-types/ [2] http://aws.amazon.com/ec2/pricing/ [3] http://www.frederico-araujo.com/2011/12/27/why-ec2-still-sux...
[+] [-] zokier|14 years ago|reply
[+] [-] shaggyfrog|14 years ago|reply
[+] [-] pvh|14 years ago|reply
[+] [-] japhyr|14 years ago|reply
Development Stage: Use the free plan.
MVP Stage: When I have an MVP that I'd like to show people and get feedback on, I'm not sure if I should stay with the free plan, or if I need a paid plan at this point.
Gaining Traction: Still low overall volume, but consistent users. What is the cheapest paid plan that works for this stage? Is it the $15 plan, or the $50 plan?
Increasing Traffic: At this point, it's a little more clear that you choose add-ons to match your specific needs.
I would love it if someone could clarify what kinds of loads each of these plans could reasonably be expected to handle.
[+] [-] tomblomfield|14 years ago|reply
Use something like New Relic to watch your app's performance. If it's exceeding tolerable limits, you need to change something. This might be a re-write of your code to reduce load, or pouring more resource into dynos, workers, database or caching.
[+] [-] salimmadjd|14 years ago|reply
[+] [-] aculver|14 years ago|reply
[+] [-] fdr|14 years ago|reply
[+] [-] samstokes|14 years ago|reply
Can we create Crane followers of a larger master database yet? That would be really useful - keeping a cheap, eventually-consistent replica around for backup and analytics.
[+] [-] freeformz|14 years ago|reply
[+] [-] tomfakes|14 years ago|reply
I'm building an app that will eventually use hstore for data. I say 'eventually', because I'm currently using serialized columns on the $15/month shared plan, and hstore is not yet supported.
At $50/month, this is cheap enough for me to use as a staging server or as a pre-release server to get hstore across my entire environment.
[+] [-] freeformz|14 years ago|reply
[+] [-] Timothee|14 years ago|reply
PostGIS has been available on Heroku's dedicated DBs (https://devcenter.heroku.com/articles/is-postgis-available), but the $200/month was a bit high for early stage. $50 is much more manageable and I might be looking towards Postgres + PostGIS in the future… (assuming that the linked post also applies to these new plans)
[+] [-] freeformz|14 years ago|reply
[+] [-] killion|14 years ago|reply
[+] [-] mattsoldo|14 years ago|reply
[+] [-] dmishe|14 years ago|reply
[+] [-] RexM|14 years ago|reply
[+] [-] mml|14 years ago|reply
[+] [-] erikpukinskis|14 years ago|reply
https://devcenter.heroku.com/articles/migrating-data-between...
[+] [-] ConstantineXVI|14 years ago|reply
[+] [-] freeformz|14 years ago|reply
[+] [-] marcelfahle|14 years ago|reply
[+] [-] 7952|14 years ago|reply
[+] [-] mshafrir|14 years ago|reply
[+] [-] 100k|14 years ago|reply
[+] [-] jalanco|14 years ago|reply
[+] [-] jalanco|14 years ago|reply
[+] [-] iamrok|14 years ago|reply
[+] [-] gdsf34dfsg|14 years ago|reply
[+] [-] pvh|14 years ago|reply
[+] [-] artellectual|14 years ago|reply
[+] [-] marshallp|14 years ago|reply
[+] [-] michaelfairley|14 years ago|reply
[+] [-] pvh|14 years ago|reply