Bio Blake Mizerany is an engineer at Heroku and is the creator of the Sinatra web framework. Oren Teich is a product manager at Heroku.
The International Ruby Conference or RubyConf, is the official annual gathering of Ruby developers from around the world, founded in 2001. RubyConf has historically been the venue for announcements regarding the future of the Ruby programming language as well as a place for the creators of all the major Ruby implementations to show their work, compare notes and involve the community.
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.
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.
Blake: Rack app, yes. It is 100% Rack.
Yes. First you go to heroku.com 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.
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.
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.
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.
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.
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!"
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".
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.
Oren: It's just like the Appstore. There is a revenue split, they get the majority of it, we get a small cut.
14. That's obviously a big part of the feature of the platform. But I imagine with the growth you're experiencing some pretty big challenges. What are some of these challenges that you are facing and where do you see them going in the future?
Blake: We have so many of them! We're trying to pick a good one.
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.
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.
Blake: Awesome. We have so many awesome people and all of us working together in channels and working together in C.
Oren: 15 now.
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.
20. You said that there are very big apps on Heroku, but the perception from some people I'm pretty sure is that it's a great place to do prototypes and toy apps and things like that or maybe serves the lower end of the market. Is that an OK perception?
Oren: No, terrible.
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.