by johnfelix on 9/5/10, 4:48 PM with 55 comments
by moe on 9/5/10, 6:42 PM
Heroku is indeed great for starting out when you can get away with the free plan or need only a small number of dynos and ideally none of their addons. Heroku can be a beautiful launchpad during the bootstrap phase.
Once your heroku bill approaches about ~$500/month you should start looking elsewhere, though. Their pricing for larger deployments becomes outright hilarious above roughly that threshold.
And with hilarious I mean really hilarious, as in the $3500 price point for a 50G memcached instance. For that money you can also buy a physical server with 64G RAM every month, fresh from the factory...
by angilly on 9/5/10, 6:00 PM
$ git push master heroku
is a lot cheaper then:
Setup a machine. Then setup mysql, nginx, REE 1.8.6, or did you go with MRI 1.9.1? You're not gonna launch on Rails3 right? Because then you can't do 1.9.1, you have to go to 1.9.2. And you know how to setup nginx to pipe requests through to a Rails app. Are you going with Passenger or Unicorn? Oh make sure to bring up another machine to act as a MySQL slave. You know how to do that right? And you're dumping your DB to disk and backing up to S3 regularly right. Just write a simple script/cron job to handle that. And when you setup your machines you made sure to setup 2 so that if one goes down, the other will still be around, and you setup a load balancer that will realize when one of those machines goes down right?
etc.... :)
by TylerJewell on 9/5/10, 6:49 PM
2) Scalability. As your system grows, Heroku manages architecture choices necessary for scaling all parts of your app. This is at the dyno web tier and database tier. But it also includes choices around architecting add-ons. For example, if you wanted to include their memcache add-on and you had multiple apps, should you create multiple memcache instances or one large grid? That sort of choice is handled behind the scenes.
3) Add-Ons. They handle configuration, billing, and setup of any add-ons you might need. Biggest savings is not having to research all of them to figure out which ones are stable, viable, functional.
4) Cheap to get started. You can deploy new apps for free, and migrate your code elsewhere if needed.
5) Their polyglot strategy is interesting, and they are pushing the envelope with beta implementations around nosql data stores. There is a nice polyglot post on their blog.
6) There is some performance advantages of using some of their add-ons. Because Heroku is deployed on EC2, and many of the add-ons are also on EC2, the integrated performance can be higher. EC2 ping rates are faster than gigabit ethernet in some cases.
7) Creating identical environments. If you manage your own servers and you need to create staging, QA, or development servers, you'd have to create those manually and they'd be close, but not identical because there is different hardware involved. In debugging scenarios, being able to clone a whole app environment has some advantages.
Good luck in your endeavor.
by patio11 on 9/5/10, 6:32 PM
Strong recommendation for the DIyer: deprec will save you a week.
by jacquesm on 9/5/10, 8:41 PM
by thibaut_barrere on 9/5/10, 10:28 PM
-> if time is more precious than money, go with Heroku.
-> if money is more precious than time, go with Linode/SliceHost etc.
You can change your mind later on (depending on scale increase cash etc), or even mix-and-match (eg: your workers on Linode, your front-ends on Heroku).
Last point: some software (eg: sphinx) are not available on Heroku, and some others (eg: websolr) are quite costly compared to a roll-your-own setup.
by techiferous on 9/5/10, 10:52 PM
At the same time, buy a $20/month Linode. Start playing around with it by setting up toy web sites and web apps. If you don't have experience setting up a server, then it's important to be experimenting with one for a long time because it takes a while to learn things. For example, you not only have to install and configure all of the necessary software, you have to think about security and resource utilization (memory, CPU, disk). You also are going to want to set up some server monitoring software such as serverdensity.com. And you're going to want to get used to managing web traffic (reading Apache logs, tuning Apache for performance, etc.). All of this takes time. But if you do this then if the time comes for you to switch away from Heroku, you will have experience setting up and managing your own web server.
by atldev on 9/5/10, 9:29 PM
Heroku definitely hides the complexity of their "magic". It just seems to work so effortlessly.
However, my biggest question so far is this: what is the best practice for managing and maintaining the DB? I'm used to jumping into the db for routine tasks, ad-hoc reporting, and troubleshooting. Amazon RDS would make it easier, but a bit pricy for my needs right now. I also understand you can db pull, but I've heard a few examples of data loss when attempting a pull/push roundtrip with a local PostgreSQL instance. So, I find myself spending time in the Heroku console, manipulating the data in code, manually.
What do you do to manage/report on data in the DB? I'm preparing to launch a number of larger projects, but need to get a better system in place first.
by dirtyhand on 9/5/10, 7:45 PM
The only major downside with Heroku is if there is any downtime within their infrastructure, your app will also go down. This has happened a couple of times in the last 3-4 months, and it took a lot of big sites down.
Engine Yard Cloud setups are self-contained and can be locked down to whatever setup, cloud version you're happy with. If they update their cloud setup, you don't have to update your instance anymore.
It also seems like you can get more "bang for your buck" with EY once you start needing more computing/db power
by aaronbrethorst on 9/5/10, 6:22 PM
I would much rather spend my time building my product than dealing with all of the fiddly bits of managing web servers, databases, full text search setup, security, patching, etc.
If need arises, migrating off Heroku in the future shouldn't be too challenging.
Also, if you do choose to try out Heroku, pick up my iPhone/iPad app for managing your Heroku applications (http://dopplerapp.com). Good luck!
by mark_l_watson on 9/5/10, 6:45 PM
by marshally on 9/5/10, 5:57 PM
Don't fret optimizing your hosting bill until it gets large enough to be an issue!
by jarin on 9/5/10, 6:31 PM
http://jarinheit.posterous.com/a-talk-i-gave-at-sd-ruby-depl...
by joe-mccann on 9/5/10, 6:09 PM
git push master heroku
is reason enough to give it a shot.
Joyent may be another option...
by andrewvc on 9/5/10, 6:09 PM
EY has its upsides (and downsides), but definitely requires more sysadmin experience.
by yogsototh on 9/5/10, 6:55 PM
It took only 3 hours to adapt our projects to heroku. Compared to many days working on hosting ourselves our projects. Because the longer is not to set up the environment but to choose what will be the best. I believe the heroku team made the best choice for me.
by paulsingh on 9/5/10, 7:26 PM
I don't use it much anymore - I stick to Moonshine and the Rackspace Cloud. The setup and management of a private slice is super easy and, IMHO, it's worth the small amount of extra work to setup.
by msie on 9/5/10, 7:03 PM
by consultutah on 9/5/10, 5:01 PM
by jarrold on 9/5/10, 5:57 PM
by logandk on 9/7/10, 10:00 PM
Say I need to run a simple background job, that would be $36/month - almost 2 linodes. And with the excellent articles on http://articles.slicehost.com, I find that setting up a vps takes no more than a few hours. Plus, it's a lot of fun and a good learning experience!
I don't see how Heroku could do it much cheaper though, when you look at the pricing of Amazon EC2 instances which their platform runs on.
by DanielRibeiro on 9/5/10, 6:50 PM
by friendstock on 9/5/10, 5:42 PM
by chuhnk on 9/5/10, 6:52 PM
by gunmetal on 9/5/10, 8:32 PM
I really love heroku though, especially after setting up my own servers on media temple for rails apps (which sucks using passenger).
by waratuman on 9/5/10, 9:56 PM
by waxman on 9/5/10, 8:01 PM
by swilliams on 9/5/10, 6:50 PM
by grinich on 9/5/10, 8:54 PM
by points on 9/5/10, 10:18 PM