Y Combinator startup Heroku, which has been in private beta since October, is coming out today with more details about how it’s out to ease the development and deployment of Ruby on Rails (RoR) applications.
There are two sides to Heroku’s offering. The first is a completely in-browser development environment where RoR programmers can build their apps instead of doing so with software on their own computers. Relative to other programming languages, Ruby and the Rails framework can be particularly onerous just to install and configure. Heroku wants both amateur and advanced programmers to get coding right away by making RoR development possible with any browser-equipped computer.
The second aspect to Heroku’s offering, which it is promoting with new materials on its website today, will allow RoR developers to not only build their apps with Heroku but to host and scale them there as well. Heroku is using Amazon Web Services to provide automatic scaling of its hosted apps and plans, like a utility, to charge premium users for the amount of processing power they consume. Even if you don’t want to build your app within Heroku, you can import it to (and later export it from) the hosting service to enjoy its automatic scaling capabilities.
For the time being, those who are interested in developing and/or deploying their RoR apps with Heroku can submit their names to a waiting list. Co-founder James Lindenbaum says that they are actually letting people into the site pretty quickly and are using the waiting list mostly as just a way to prevent an onslaught of new users.
A free version of Heroku’s hosting will be available to beta testers, with a premium version coming later that will remove Heroku branding, allow for custom domains, lift bandwidth and processor caps, and provide a set of advanced developer tools such as performance metrics and code optimization.
Heroku, while part of this winter’s batch of Y Combinator startups, has been in development since last June and has already attracted 2,500 users who have built about 2,000 apps. The three founders have backgrounds in enterprise software development and came up with the idea for Heroku when they witnessed the rising popularity of RoR for the enterprise but also saw the difficulties that many faced with the deployment of RoR apps.
For another company working to provide better RoR hosting, check out Engine Yard (discussed here) which provides a more hands-on approach.










“Relative to other programming languages, Ruby and the Rails framework can be particularly onerous just to install and configure.”
Um, wtf? One of Rail’s benefits is that it’s EASY to install and configure.
J: That’s just a lead-in story for the simple fact that this is a RoR hosting service with some TextMate clone in the browser.
@J – It’s easy to program but not so easy to install and configure (and later to deploy). Setting up a programming environment, in my experience at least, is much easier for something like PHP than for RoR.
Don’t get me wrong, Rails makes some things difficult (i.e. supporting multiple and/or partitioned databases), but installing and configuring is notoriously easy. Deploying/serving isn’t as mature as other frameworks obviously, but Capistrano/Mongrel are pretty easy tools to use.
If ruby is so great, how come there is mod_php but no mod_ruby for Apache?
Its called ‘mod_rails’ Dum dum!
Good point. Ruby is bad.
@Mark
I think it is an interesting service that may allow newer developers to get involved with RoR.
However, I don’t agree with you that setting up RoR is difficult and def. do not believe that setting up PHP is easier than RoR. With RoR one only needs to install Ruby, Ruby Gems, and Rails from the CLI – also install a DB which is easy. One can complete the whole process in under 5 minutes.
Getting a production scale or even a persistent rails environment up is not easy at all.
The ability to just click a button and start making a RoR app and let them take care of everything else is amazing. I love what Heroku is doing.
@J Not even close to as easy as PHP. Not everyone writing a Rails app has the time (or even the desire) to learn mongrel, capistrano, apache (mod_proxy_balancer), nginx, pound, pen, or any of the other various setups you can think of. Not to mention taking the time to set this all up.
Like many contemporary web frameworks, Rails uses the Model-View- Controller (MVC) architecture for organizing application programming. Rails provides ‘out of the box’ scaffolding which can quickly construct most of the models and views needed for a basic website. Other helpful development tools come with or are installed with Rails, such as the WEBrick web server, and the Rake build system.
Rails is easy to deploy if you want to run your own servers, and have unfettered access to the shell. Nginx, mongrel, etc., are awesome. But it’s still a lot more hassle than simply clicking a button, which is what these guys are providing. Totally revolutionary.
@Jamie: Everything’s easier if you’ve done it. I’d have an easier time building an app with Rails, you’d have an easier time with PHP. That’s not the point. The point is that it is not difficult to build/deploy an app in Rails if you put in the mandatory couple hours of learning, and mongrel and capistrano are very straightforward tools with good documentation and can be learned quickly.
I’ve used Engine Yard in the past, and having someone else worry about deployment is truly great. Just develop and someone else takes care of it.
I think what Heroku is doing is quite cool. It’s simply ideal for prototyping and even running a bunch of small apps. I’ll look into this soon.
Appjet.com is something else I’ve been toying with. I found Appjet quite good, and there’s some similarities here.
I’m an expert Rails developer, love capistrano/mongrel, but would still LOVE not to have to do any of it. Plus mongrels still die all the time and have to be monitored and restarted, you need a dynamic balancer, bleh. I’m switching everything over to Heroku as soon as they have paid accounts.
@J I was referring to deployments specifically, not languages/frameworks. I think this is a great solution for prototyping or just starting a project when you’re not in the mood to do a bunch of server configuration and just want to bang out some code.
One of the key issues that makes Heroku so kickass is that Rails doesn’t perform very well in a shared hosting environment. With almost any other language, you can have a live/functional web site by investing in a $2-10 buck a month hosting account. With Rails, a virtual server is pretty much required, and that can cost $40-100+. Not a big deal for a startup, but prohibitive you hobbyists, young folks, or people who live don’t have a 1st world income.
IMO, this is a huge step to help Rails grow and (potentially) a helluva business.
You’ve changed my life Mark! I hope I get into beta soon!
Getting a robust and scalable deployment of a Rails app can be challenging, and the founders of Heroku have some broad and deep experience in doing just that.
The fact that they’ve now wrapped their experience in an excellent interface and service makes this a very compelling offering for a lot of people.
Now if they’d add support for additional merb modules… well, maybe you can just load merb as an installed gem. Hmm. I’ll have to ask them.
@Tony – I see what you’re saying, but give it time. I’ve got my site running on shared hosting with godaddy for like $4/month, and it’s built on rails. performance is fine, but deployments are a royal pain because i have to do everything through a web-based interface (no ssh/terminal/capistrano/etc.) and do uploads via ftp. so yes it’s harder but not impossible, and there are plenty of other hosting providers who cater to rails and offer competitive pricing.
also, there’s no mention of how much this will cost. amazon’s EC2 is awesome but it’s not that cheap – $72/mo to keep 1 box running, plus bandwidth. so i’d imagine heroku will be passing a lot of those costs on to the customer somehow, even if they do partition each box to several users…
also Mark you should mention RightScale.com – heroku seems more focused on the code development stages (which i can do just fine locally), but rightscale has the tools to automatically scale, handle db backups, etc. i’d like more information on heroku to see how it compares in those areas – their site isn’t too heavy on the details just yet…
Dang it!
Why is there no Uncov anymore to cover this!
“Relative to other programming languages, Ruby and the Rails framework can be particularly onerous just to install and configure.”
Spot the person who’s never tried to run a Java web application (J2EE).
#5 – no mod_ruby because most rails app(the good ones anyway) don’t use apache. They use servers like nginx, and pound.
If scaling, which heroku is trying to solve, is a requirement for you, then your app probably is pretty important and means a lot to you. If that’s the case and you can’t even deploy your app, then you’ve got more problems.
If you really want to use amazon services, go ahead and use them. Why pay a middle man to do it when performance is a big concern of yours.
btw, a lot of VPS’s start at $20/month and you can put 5 (medium traffic) rails app on it.
I think that RoR has great potential. Not so sure it is ready for massive scalability even in a cloud environment. But I can be wrong. Time will tell.
You don’t need mod_ruby for apache. You can use it as a proxy for mongrel the same way as you do with nginx/pound.
@mathew – you found me =)
Looks cool. Yet another way for a starving developer to spend their last buck in pursuit of the great internet dream.
I developed and deployed (using Cap) my site in Ruby on Rails along with Apache, Mongrel, and MySQL. Once it is setup though, subsequent deployments are easy. While it wasn’t trivial, it wasn’t that difficult either.
My question for Heroku is how they scale the database? This is a big problem with Amazon Web Service until as of late when they introduced SimpleDB which is still in private beta currently.
Anyone who thinks Rails is difficult to configure doesn’t know what they are talking about.
Heroku = Fail.
I agree with #29. They’re trying to solve a one-time “problem” (initial deployment setup which isn’t even a problem) for a monthly recurring charge! I know I won’t use their service.
@AnonTroll: We’ve discussed the mod_ruby issue to death in the community already so this should fill you in on all of the viewpoints and reasons.
Secondly, I’ve semi-solved the deployment issues regarding caretaking Mongrels and all that nonsense. It’s called SwitchPipe. It’s one app. It works, it monitors, it maintains, and you don’t have to get involved with port numbers, clusters, or any such nonsense.
For large and/or complex apps, a VPS, Solaris Zones or something like Heroku makes sense. For the rest, there’s some interesting projects going on to make Rails as easy as PHP to deploy. Check out SwitchPipe as an example:
http://switchpipe.org/
BTW, try deploying a large PHP app sometime. Rails’ framework and tool stack doesn’t look so bad…
Mosso, cloud environment I believe, is pretty easy to use Rails on. No shell access but I just develop on my local box and use my IDE’s ftp functionality to upload. Super easy, but I’ve always preferred working locally.
Although I’m still deciding between RoR and going back to PHP via the Zend_Framework. Zend_Framework looks smooth. Ruby language wise seems to have some powerful stuff you just don’t have in PHP though. This is my conundrum.
“Not even close to as easy as PHP. Not everyone writing a Rails app has the time (or even the desire) to learn mongrel, capistrano, apache (mod_proxy_balancer), nginx, pound, pen, or any of the other various setups you can think of. Not to mention taking the time to set this all up.”
Jamie, I’m a Rails developer by day, and I’ve never had to learn any of these, and I haven’t even heard of some of them. I’m not sure what you’re saying here, but it’s not an argument against Rails or for PHP. You can put PHP behind apache or nginx, too.
That said, I’m not going to say “Heroku = fail” yet, because moving something from 2 steps (rails foo && foo/script/server) to 1 step might just be enough to bring more people on board. I am skeptical, though. Hosting isn’t trivial, but any solution that starts out “OK, give up your editor and terminal and version control and offline editing” seems pretty fishy for anything beyond the 15-minute blog demo.
This looks pretty cool. A couple of comments. Rails is pretty easy to install to develop and play. Making it work on an ISP is a little dicey – but getting better. This looks pretty awsome actually. Particularly if it means that scaling issues and backup issues are not my problem (except for money). I would think that the greatest weakness would be the lack of real version control that I can separately work with. I don’t want yo do all my development in a web browser – sure it has a slick interface but sometimes you just get a hankering to put it on a USB stick or use the tar command or recursive diff.
Anyone know of a .NET “Heroku”?
I have launched three Rails apps so far, and I have to say–it is a pain! Apache has random FCGI error problems, Apache by default kills the processes if inactive over so many minutes, Mongrel is often required, thus requiring a virtual or dedicated server in 99% of cases, which in my experience starts at $70/mo for something reliable for even the most modest of sites. Heroku sounds like a godsend.
Let’s be honest. Rails deployment sucks.
PS: I love how everyone says you don’t need a virtual/dedicated server. You don’t, but the second you have a problem or it is running slow, go into #rubyonrails and ask. You will get five people telling you, “Just buy a virtual server.”
As a hobbyist RoR developer, this is absolutely wonderful news. I’m hoping to develop some apps into potential $-makers, but don’t want to pay the cash to have a proper developer set things up for me. This is fantastic, and will allow me to try the app out with potential customers before I decide to sink serious $ into finishing development.
Overall, GREAT news.
Heroko is for Windows and linux base ? it is wokring for both OS?
Shrikant
I’ve been using Heroku for some time now – I really hope Heroku fail
This is why I like it
* Zero Setup. Why muck around when you really want to get stuck into coding
* You don’t need to remember to restart for config changes – it does it automatically (how many times have I forgotten to do that and wondered why my changes aren’t working)
* You don’t need to remember to migrate (did I mention I’m a bit forgetful on that front)
* I can get to my app from any machine – saves having to carry the laptop home
* You can have more than one person working on the app at once, see changes in real time without any special set up.
* I don’t have to leave the browser at all – none of this browser/textmate/MySQL Query Browser switching.
There’ll always be a place for doings things locally and deploying yourself with your own special setup but its great to have alternatives.
Good luck to Adam, James and Orion. I’m a fan.
Just Amazing!!! Now my only hope is that someone does the same for Django. I like Rails. But Ruby’s funny syntax takes longer for the guys around me to pick up. The hype helps though! And I guess the cryptic looking wizardry of ruby is probably an unnecessary distraction. I hate the tabs of python too (why does everything I like have to have at least a few quirks to annoy me). And the Rails guys like Magic while the Django guys adore transparency.
But hey, these guys rock.
THEY HAVE MADE WEB APPLICATION DEVELOPMENT n DEPLOYMENT ON RAILS AS EASY AS BLOGGING OR PHOTO SHARING!!!
What on the earth you need..
ROR on cloud or so one click install (tar or zip your application and upload just like you do Java base application using Tomcat)
Yes they have database import /export little different but they have to compare to so many db format to take care.
I had Flex & ROR running on local PC and looking at ISP to deploy on web (thinking of paying some $$ to host) but heroku solved the problem and now I can test and deploy or go public at my convenience.
Online deployment systems for Ruby on Rails maybe are the next turn for web development. Yes, its green, but promising