Heroku, Open Source, And Rails Operations: Mike Hall Interviews Richard Schneeman | RailsConf 2014

Heroku, Open Source, And Rails Operations: Mike Hall Interviews Richard Schneeman | RailsConf 2014

UGtastic Archive
Full Transcript Available
🚀 Dive into the world of Heroku and Rails with Richard Schneeman, a Hacker at Heroku and avid F-OSS contributor. Learn about the company's focus on performance improvements, particularly with the introduction of PX Dynos, and his role in the Ruby task force. 🌐 #Heroku #Rails #Performance #Ruby #DeveloperExperience
The Interviewer

Mike Hall

Interviewer, UGtastic

The Guest

Richard Schneeman

Heroku, open source, and Rails operations

The Conversation


Mike Hall Interviewer, UGtastic
It's Mike with UGtastic. I'm here at RailsConf 2014 and I'm standing here with Richard Schneeman who gave a talk earlier today called Heroku 2014: A Year in Review. He's also a Rails core contributor and he's created a few libraries over the years. One popular one was Sexton for helping Rails developers see their routes without having to run rake routes and another was Wicked which was a multi-stop form wizard basically. Thank you very much for taking the time to speak with me. Yeah thanks for having me. I appreciate it. So Heroku 2014: A Year in Review. We're only a few months into 2014. How do you do that?
Richard Schneeman Heroku, open source, and Rails operations
That's pretty... So Rails is really important to us so I measure my personal years from RailsConf to RailsConf. Oh okay. So it's a RailsConf standard year. It's like the RailsConf calendar. Yeah there's like the Gregorian.
Mike Hall Interviewer, UGtastic
Exactly.
Richard Schneeman Heroku, open source, and Rails operations
So yeah a lot of really interesting things have happened this past year. We've been majorly focused on performance and a lot of things in that vein.
Mike Hall Interviewer, UGtastic
Would you like to hear something about that?
Richard Schneeman Heroku, open source, and Rails operations
Yes. Yeah no. Please tell me about your talk. Yeah okay great. So one of the biggest things that we released is PX Dynos. In the past a dyno represents 512 megabytes of ram and with a PX dyno instead you get I want to say it's eight gigabytes of ram and six physical cores.
Mike Hall Interviewer, UGtastic
Oh per dyno?
Richard Schneeman Heroku, open source, and Rails operations
Six physical cpus yes per dyno. So that in the past you've always been able to scale out very horizontally very easily but if you're either using an application that has a lot of memory use or if you want a lot of concurrency per application. Let's say you want to run a bunch of unicorn workers or puma workers per actual physical dyno than you weren't able to in the past. But now we're focused a lot more on not just fast but consistently fast is kind of the key with that.
Mike Hall Interviewer, UGtastic
So do you work with the the dyno team or how what is your role at Ruby?
Richard Schneeman Heroku, open source, and Rails operations
Okay so I work with I work with the Ruby task force so Terence Lee and I are on the languages team and we are in charge of the Ruby experience. That means we maintain the build pack whenever you do get push Heroku master and like all bundle install and everything flies by your screen that's uh that's us. Okay so if like deploying is slow. I definitely use your work. Okay great great. Many times many many times. We also luckily um the company thinks it's a big part of that product is actually coming out and interfacing with the community and like finding real world people you know experiencing their pains or experiencing like you know oh I love you know love your work and just figuring out what people like what people don't like how they're working and where we need to go in the future so a lot of that as well.
Mike Hall Interviewer, UGtastic
Okay so I we yeah we haven't my my team hasn't directly implemented uh the PX Diagnose product but um what's what's what's interesting to us is that once they came out with this this product and they said okay we think this is important we think this is valuable um they they kind of came to each individual language team and we said like all right well how you know how should people on uh you know python optimize and maximize this and they came to us and they're like all right now that we have this how do people on ruby like really take advantage of it exactly exactly and so um working in like hand in hand with some customers and uh doing a lot of experiments had just one afternoon I was like oh you know I wonder how many rescue workers I can run on on a px dino and I was like I was like I'll just guess and start at 200 oh okay I can run that many like yeah let's just see how much until you can make it fall over yeah exactly uh and just playing around uh and ended up so I wrote some documentation for a rescue pool as a result of that um and so it's really nice having access to you know customers who are kind of craving and demanding for these things and that are interested in actually working hand in hand with you in act in in implementing them and getting real world feedback from them so it's not just it's uh it's also been able to take a lot of that and take it over to um other uh open source frameworks like like rails right um so yeah it's so as far as the the uh I'm actually gonna have to talk to you after this interview about about the px machine because my client does oh utilize that so that's uh that's very interesting uh but that's not too much for the interview uh but as far as how did you come to be with Heroku x I mean you're you're with railscore kind of can you tell us a little bit about your journey there did you were you with railscore before Heroku or uh so um actually on the uh on the issues team uh currently and what so I started working for Heroku about two years ago a little over two years ago previous to that I was working for a company called goala okay uh they were competitors to foursquare got bought by uh got bought by uh facebook and facebook doesn't employ a lot of ruby programmers a little different platform yeah uh and um like loved Heroku basically forever and they happen to have have a have a job slot and for uh for getting involved with rails that was something that like it was my dream to like have a commit into rails I remember like bumping into uh Aaron at that conference at one point in time being like how do I do this and like how does it even work I was like I want to add this this uh it's like you used to have git and patch and post in your log say like saying this request is a git request and for some reason that got like bumped or like no longer in there uh or maybe it was an error message or something and I was like how do I do this and like he helped me out and I was like this is great and so I kept on trying to do that just whenever whenever whenever whenever I ran into like stubbed my toe on something I'd be like oh I'd like to actually like dig in and fix that and just after time um yeah like uh actually with sextant the uh the routes in the browser right I released that and then um some of the some people on rails core actually independently approached me and they were like we love this can we yeah can you like please work with us to like get it into rails you know rails proper right uh and like that that was a pretty good experience and just hung out in uh in campfire and just did a bunch of work and one day I got an email saying hey like we've given you like like collaborator access like you know feel free to like close out uh close out issues and like you know do do all of this stuff right great yeah that's interesting you're in that the path that it's it's a common path it's get in there do something be helpful reach out communicate and if you're doing good stuff eventually you're probably going to become a trusted member of the team and uh you just keep going at uh uh charles nutter had kind of the same kind of story he was just saw some issues and just wanted to help out and eventually you know he's running JRuby next thing you know yeah yeah I mean like very like the the famous quote like writers write it's like open source contributors contribute yeah like just you know start out documentation and like it's uh it's not magic it's a lot of work yeah and uh so I'm just curious working with with the uh the ruby uh team you probably have to do a lot of interaction with people outside the community um you know how's that how do you balance that with your your like going to conferences and talking how do you balance that with with working inside of your own organization uh it's really tough um any kind of balance is really tough I I tend to be the kind of person that like I get a problem and I like focus like that's all I can think about that one problem right uh so a lot of forced contact switching um a lot of uh I mean even even at um even at conferences just like having to having to partition time and saying like okay you know what even like I'm here I'm still I'm still meeting people uh one trick well maybe it's not a trick but at conferences I think uh I think it's actually a mistake to try to go to every single session right and you know even if it's especially if it's a multi-track session or you know conference uh you just can't uh so I try to reserve about 50 percent of my time for just hallway interactions bumping into people uh like having some great conversations finding out what other people are are working on and I still love going to going to the talks and hearing everything there um but uh you know so instead of working in my room like I'll work outside and if somebody bumps into me and asks me a question about something I've been working on or they want to like oh you know I like typically the best feedback is like unsolicited feedback like somebody's like hey you know I didn't like this one thing that happened when I was pushing to Roku and I'm like oh you know like I can actually do something about that like uh just you know recently we've had some it's like people are like oh I'm getting bad performance and it's like oh well like let me take a look and it's like okay oh you're I see you're using web brick in in production and it's like yeah and it's like oh well I didn't know that and it's like it just says rails like it says rail server and you know it's just rail server and it's like yeah but so it's a little bit more complicated yeah and it's like we well we you know and so added uh some some warnings and some things and just uh this kind of like gradual trying to gently lead you to the path of happiness and zen you know and this is uh probably a question on the left field but I'm since I mentioned charles nutter earlier um headius is a JRuby uh maintainer the there's there's a trend towards uh moving towards uh using JRuby or encouraging people to use JRuby because of uh proper threading and and um you know some of that support when you're having long running processes is that something that um like you are you using cruby or are you starting to encourage people to look at JRuby with Heroku or is that uh so so we supported JRuby for quite a while actually and um we we work with charles quite a bit we also we have uh we have Rubinius it's it's actually technically not supported okay but uh but it still it still runs and it works our support is actually provided through the Rubinius team okay um um yeah and uh so i just generally wreck encourage people to like play and have fun and like please like if you're on mri now try mr try JRuby right and like i've written when we first when we first launched JRuby like i wrote docs on like migrating a rails app and um you know just some some things uh like even being a be trying that as a gem author i was like oh wow there's all of these gems that like just don't work in on JRuby because of like c extensions and um and so like in the future now that i'm working on gems i'm very conscious of like how like on travis i always test on JRuby and always test on Rubinius i was to say like with travis you can have multiple uh targets exactly you can you can just say test this on JRuby or mri 19 182 things like that so you can get some of that flexibility yeah and and it's also the the more people who try it the more people who demand these things and are looking for them the more knowledge there is out there it's a lot easier today to switch over your app to use JRuby um i mean the community portion of it typically my code has been relatively trivial most of my code just works and it's and like over time like it gets faster uh and so like i think every app is slightly different uh so some people just want like quick running you know fast scripts and like that's exactly like you cannot beat the mri like boot up time it is great and amazing like if you want to if you can parallelize and you could you're actually doing real ruby like number crunching like JRuby and threads like i still but i still actually recommend mri even though we have a global interpreter lock it's still not it's not like you can still write threaded code especially if you're using like a web server um or you're on the web like you're using database calls you're hitting apis all these other things didn't you create a background worker gem called threaded or something like that yeah yeah yeah yeah yeah because actually i i spiked on that myself between sucker punch and and uh threaded uh so yeah and being able to use that for background on JRuby and save a few bucks on dynos was yeah yeah so i forgot about that so even even in other smaller aspects it might not be as as popular you've done a bunch of open source sorry that was that was when you're talking about threads and i'm sitting there oh yeah that's that that's something that's you know you can do that you don't necessarily always have to spin up a rescue worker in a separate dino or in Heroku and and that's the reason i was asking about moving to JRuby is um you know being able to do those things where i can consolidate and have one like if i don't have a long running process it's going to be kind of quick but i want to be able to just return my response back to the clients i can uh you know run this thing in a separate uh thread mm-hmm and uh earlier today you had a book signing so you're you're you're moving into the world of being an author you you're a code writer and now you're a code book author yeah a writer of many things so the name of the book is Heroku up and running okay it's uh published on o'reilly also uh co-author uh neil middleton he like uh it was he actually started the book and then and then brought me in um so a lot of there's there's some other Heroku books out there and most of them just end up being do this then do this then do this and it's just number one all the majority of it is very technical very rote it's all online already and there's no explanation as to why and we wanted something that was a little bit more timeless um it's really got into the philosophy and uh it was published a couple a couple months ago and it's it's not outdated yet oh really yeah yeah that's rare it's it's like and that it's like that's the that's like the golden standard of what we were going for it didn't make it past the three month mark uh yeah i think like just yeah we're right there so we'll know in a few days whether or not yes totally like revamp the entire if the book collapses but uh and i've had i've had some people tell me uh that like they played around a little bit with Heroku and there's like there's a large number of things that like they didn't realize or they knew that that was what happened but not necessarily why it happened that way yeah and i even today at lunch i was hearing one of the uh other employees from Heroku that's here was sitting at the table and people were just picking his brain trying to understand and it sounds like Heroku has done a great job of black boxing a lot and and making a very low barrier to entry but being able to go beyond that and say okay what can i really do with this this thing that i have with this dino what is what is that you know and it's and these obstructions sometimes you know they're good for marketing and being able to just have a common language but when somebody's really like how do i get in there and do stuff you know they don't know and things i do every day there's uh you can run Heroku run bash and i can actually get a bash shell into like an ls and cd and you know and they did not know that exactly yeah and it's like i literally use this every single day and i i mean so there's there's some stuff in there like that that like it's like there's a whole section on debugging and troubleshooting and like you know things that you might not have known before right um but i mean like we we do love the we we aim to be as easy to use as possible um and kind of my goal in life is to make that a little less magic-y and a little less black boxy uh and and just make it a little bit more user friendly yeah so like for the 90 use cases it's a nice even path and it's nice and well-trodden but when you need to go off and just ls into your bin directory and see what permissions are on some bin yeah and which you know which bundle and all of these other like so so there's a lot of that stuff that's being exposed in the book and how to do that yeah yeah because uh to be frank people when i said well Heroku dino is a linux instance there i mean ubuntu 10 i think is where it's where it's at right now or something they were like i did not know it wait it runs on a computer i thought it was literally magic well i mean it's almost like is it is it some kind of custom bespoke you know image it's that's its own kernel build or something like that yeah it you don't know you know it's it's hard to tell those kinds of things unless you go in there and dig around i had somebody come up to me they're like oh you you inject a custom version of rails right no yeah it's the version of rails you specify well i think something that comes from when it would rewrite your your html and you're like what really happened there no just wrote a file and also mounting some gems that used to do yeah yeah that's that's changed but well anyway again thank you very much for taking the time thank you Heroku up and running Heroku up and running right and that's i'm sure it's on amazon and all those places wherever you find books thank you [Music]