Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ


Choose your language

InfoQ Homepage Interviews Oren Teich and Blake Mizerany on Heroku

Oren Teich and Blake Mizerany on Heroku


1. I'm here with Oren and Blake from Heroku and I'm very pleased to be talking to you guys. You released some interesting statistics this week. Tell us what Heroku is.

Oren: Heroku is a Cloud platform. We do Cloud platform as a service and in particular we believe Ruby is the best language for doing development in the Could, so we are a Ruby Cloud platform provider.


2. When you say Ruby Cloud provider, what makes it specific to Ruby? Why can't you host a Java app or a Python app on it?

Blake: We stick with Ruby because Ruby itself has its own ecosystem and its own way of doing things and we really agree with the way that Ruby does it versus other communities and we want to just focus on Ruby and just kick butt for Ruby and not worry about Java or Python or others. We've got things to worry about like gems and memory and all sorts of things so it's optimized specifically.


3. Is it optimized specifically for Rack apps now?

Blake: Rack app, yes. It is 100% Rack.


4. Those figures I was talking about show a serious increase in the use of Rails, right?

Yes. First you go to and you actually see a live counter and that really is live. I goes down sometimes, it goes up as people delete them. Two days ago we crossed 40,000 apps on the platform and we are now growing at 900 apps per week.


5. It's not quite as much but it's still a lot of apps, right? Maybe it's some users are creating a lot of apps.

Oren: It's not. It could be that someone it's in there, but it's not. When you actually do the math, it turns out that we don't tell how many users, but it's less than 2 apps per user. It's more than 1 app/user and less than 2, so it's somewhere between 450 and 900 users per week.


6. Are a lot of the apps on Heroku just idle or zombies?

Blake: It's an ever-changing landscape. These things come up and down, sometimes these things get used - once a week maybe and then they'll light back up and there are others that stick around a really long time or constantly being hit. So, it's really hard to tell how many are actually "dead" in that sense. If you mean "dead" by they were hit once and then they were never touched again, I don't have the numbers on that, but I know that we keep having to support all these new apps coming on and firing up more servers to handle all of these.


7. The platform is specific to Ruby apps, like we talked about a second ago. What is special about the platform? What is different about Heroku than just hosting on a VPS or a slice somewhere?

Oren: In traditional hosting of any kind and this is if you use infrastructure service, if you use a VPS whatever, the concept is you have a machine and that's the canonical object. You are talking about how you configure machine and manage machine and how you cluster machines, etc. That gets really gnarly because depending on what life cycle stage your app is, you can have completely different environments. You might need to have a small slice, you might need to have a huge slice, you might need 20 machines, who the heck knows? That doesn't help you, you are still in the management world. We came from a totally different perspective. We say the only object to care about is an application. We have a Cloud platform where you put an application into the Cloud and we do everything automatically. When your app gets to run, it could be running on a single server, it could be running on 50 servers, it could be running on 100 servers, you have no idea. It's all automatic in the background.


8. Elaborate on everything - you just need to think about everything, but this just includes a lot of interesting things.

Blake: Security patches - there are things like that. Just recently all of our customers benefited from the Nginx security patch and they were all sleeping when it happened and woke up and just realized that they had a security patch and they didn't have to think about it or worry about it - no upgrading, nothing.

Oren: It's probably worthwhile to say they way you interact with Heroku is, as a developer, you use "git" and you say "git push" and that's it. You just say "git push" and your app's there running on Heroku. There is no configuration or setup or management. "heroku create" to create an app that has a "git remote" and then "git push" and it's up an running on Heroku.


9. Your control panel is pretty cool, too and not for deployment but rather for adjusting the size of your app. You can take it from 3 to what?

Oren: Hundreds of millions of hits per months. No problem! We have some of the biggest Facebook apps. There is just a crazy high traffic. We have multiple individual sites, each doing over 250 requests per second, each request being actually an insert. We are talking about 250 database and server requests per second all running and it's just an issue of changing that slider and way you go!


10. You are in the process now of doing something that's even more interesting than everything you've done, so far, which is to create an ecosystem of app development for Heroku. Why don't you tell us a little bit about that and how, as Rails developers, we can get on the action while it's early.

Blake: I think one of the coolest things I like about where we've gone with it it's add-ons. It's one of the coolest things to be able to say "add DJ" or "add memcache" and it's just there and it's working. I don't have to think about it, I don't have to worry about it. It's exciting to me because even as someone who works on the infrastructure system to make this happen, whenever I want to just put an app out on Heroku for the weekend and then I'm just like "I'll just add memcache" and then I always get giddy "That's so cool!" I know how it's working, but it still is "Oh, I got it!" I don't have to think about it, I don't have to worry about it. I think that's one of the coolest things is that feeling that I get an IC. When I was out touring and showing people things like this, they all had this exact same feeling. It's just like they crystallize and go "Aha!"


11. You definitely get goose bumps, the first few times.

Blake: When I was talking of all these people also you could see a lot of crystallization in their heads going on - "I have a business opportunity here. I can go build a service and then we can integrate it with Heroku." Now more and more people are starting to see that and, instead of trying to manage it all of themselves, they say "Let's just manage everybody's and let's build a service for that or this".


12. So are you opening up the add-ons?

Oren: Exactly. Some of the add-ons that we have today are add-ons that are made by us. But others are made by other people, so there is stuff like New Relic, Get Exceptional, Sandgrids, Arago, Solr - all of these are third party companies. It's a whole ecosystem for them, too, because they get access to all of our developers, so it's like total win-win. The developers go crazy, because it's like "I can add 'search' with a command?!" and then he has a business for it.


13. How do the third parties make money on this?

Oren: It's just like the Appstore. There is a revenue split, they get the majority of it, we get a small cut.


15. Growth was slow and steady for while.

Oren: It wasn't full steady. It was fast and torrid and it just went insane. If you look at the platform, we have things like Varnish as a cache and Nginx and we have all these layers and we need these layers - the Dynamo Mesh exactly. So there is literally like 20 pieces that analyze your code versus through - you need all these. What you find is you have a platform that can do 10 requests a second, well, the bottleneck's here and then you have 100 requests per second and the bottleneck's there and then 200 and 500. Every time it's one of those things where you don't even know what you don't know until you get there. For us it's just a situation where it's constant, like Varnish. Literally today we had a situation where there is this very strange edge case where Varnish isn't passing enough header fields, so, if you throw too many HTTP headers in and you use HTTP headers for custom stuff, it dies.

Blake: It doesn't die, it truncates. How many headers have had a hard max limit of 32 and unfortunately in the response to the request was being made content length was the last one that was getting dropped - that's pretty important.


16. You end up patching it yourself.

Blake: We just patched it ourselves and had it deployed out.

Oren: I think where Heroku is at we spent 2 years getting this platform. The engineers have done an amazing job, and it's now like now that we're here let's keep the wheels on.


17. What's the culture like in Heroku?

Blake: Awesome. We have so many awesome people and all of us working together in channels and working together in C.


18. How big are you now at Heroku?

Oren: 15 now.


19. How can we feel comfortable as users that you are not just going to disappear?

Blake: We're way too excited about this to disappear. I've told the founders that "I'm either going to have to get hit by a truck or you are going to have to fire me, but that's the only way I'm leaving."

Oren: I think there are 2 things - this is a coined term that Blake Bowie creator of Sinatra .There is a lot of cool stuff that came out of this and one of my favorite quotes when he gives presentations he talks about how if you do it on Heroku and you can make here, you can make it anywhere. One of the things we made sure is there is no lock-in on Heroku. What's the worst case that he gets hit by a truck and the company goes out of business or whatever? The reality is it's a few minutes worth of work to get your app off of Heroku. It's never going to hurt you, there is no downside. The other is we are VC founded company, we are growing, we do have a lot of revenues, so it's a good business.


21. don't know. It might be. Sometimes you target certain sections of the market.

Blake: You can definitely do that, but the main goal of Heroku for the past 2 years has been to build something so solid that anything can run on it, no matter how much traffic and how many resources they need, we can handle it and I think we've built that today. Like you said, the Facebook apps. Those guys are just humming along and they don't have to worry about anything. That's exactly what we set out to build.

Mar 11, 2010