Dash Open 03: Alan Carroll - Networking On The Edge: IPV6, HTTP2, Apache Traffic Server

Transcript:
Gil Yehuda: Hello everyone, and welcome to the Dash Open Podcast. Dash Open is your source for interesting conversations about open source and other technology from the open source program office at Oath. Oath is the parent company of Yahoo, Huffington Post, AOL, Tumblr, TechCrunch, and many other beloved brands, and we're a division of Verizon. I'm Gil Yehuda, your host today. And today I am with Alan Carroll, a software engineer at Oath on the Edge team. Hello, Alan. Alan Carroll: Hello, Gil. Gil Yehuda: Welcome to the podcast. I have a couple of questions for you that I think and hope will be interesting to our listeners. First of all, Alan, tell us a little bit about yourself. Do you have any hobbies outside of the context of work? Alan Carroll: Yeah, I have a few hobbies. One of my favorites is model rocketry. I've done a lot of flying of model rockets. I like it because I deal with virtual stuff all day, and it's good to actually use your hands, do something physical that works or it doesn't. You put the rocket on the pad, it launches, it deploys correctly, you hope. So that's been a lot of fun, I fly everything from really small things as big as your thumb to my biggest is a six-foot four-inch wide rocket. Alan Carroll: It teaches you loss when you mess up and your rocket crashes and you have to build again. It teaches you to go on from disaster, which is really helpful in the... Gil Yehuda: In the world of software engineering. Alan Carroll: In the world of software, yes. Gil Yehuda: Well, you can't just reboot the rocket and sort of...you've got to rebuild it. Alan Carroll: Yes. Gil Yehuda: Got it, okay. But from a software perspective, in terms of your day job, you work on the edge team. What does it mean, "The Edge"? Alan Carroll: Well, the edge is really the place where networks we don't control hit networks we do control. And so you have a perimeter there where you want to assert control over what's coming in and what's going out, and that's the edge. So we're the first thing that any user or customer hits first. We're, in some sense, the butler. So they talk to us, and if we can just help them out and they don't actually have to talk upstream to a data center or somebody else, we can just take care of that for them. Alan Carroll: And then we decide, "Well, no, we don't have that in cache, we don't have that memorized. We'll go ahead and we'll send you up." And so that's the caching stuff. Does a lot of proxying, so we clean off the headers. So they come request in, and we for some reason don't like the headers. Maybe they're trying to spoof or it's just malformed. We clean all that up and send it upstream so that the data centers handle much cleaner data. Alan Carroll: We deploy technologies early. So, for instance, when we decided as a company we were going to go to TLS, it was the edge, we did it first. And so everyone who came in got a TLS connection into our network. And then even if that local connection was still non-TLS, it was still reasonably much more secure than it was previously. And that gives the other properties time to update their stuff to do full TLS. Alan Carroll: IPV6 is another example. We're doing HTTP/2 now. So, in a sense, we lead the charge in a lot of these technologies. We see them first, work with them first and deploy them first. Gil Yehuda: Got it. Oh, that's interesting. So, you are at the edge. One of the technologies I know you work on is an open source project called "Apache Traffic Server". What is Apache Traffic Server? Alan Carroll: It's a proxying web cache. So it caches objects. So, when someone comes in, you can have something stored in-cache and send it out immediately, which gives you a better experience for the user, because they don't have to go as far in the network. It does the proxying, which means we can adjust headers, we can add headers, or that we can adjust the requests that come in. And we can also do a lot of routing. So what we call, internally, "Layer 7 Routing". So we look at the request, and based on that request, we decide what upstream it should go to. Alan Carroll: So you see, it comes in as a mail. But you say, "Oh, but it's got this cookie on it, so we're going to send it to the service over in that data center. But it's got a different cookie if we send it to some other data center". So, for instance, if you're indexing through your mail, it goes one place. If you're doing a login it goes to a different place. Gil Yehuda: So that's the "traffic" part, it's like a traffic cop. Tells you where to go, depending on who you are and where you're supposed to get to. Alan Carroll: Yes, and so it's an expandable system, so we write a lot of plug-ins you can put in. So we do a lot of custom stuff to drive all of this proxying and routing. It was originally, actually, a Yahoo project. And then around 2009, Yahoo decided that they would do better to open source it, rather than keeping it proprietary. Gil Yehuda: Well, why is that? Why give something away? Alan Carroll: The idea was that other people would use it, and they would then add value back. So we would leverage our investment. We would work on it and add value, same time other people would work on it and add value. But all of us would share all the added value. So that gives you a lot more bang for your buck, for your developer time. Alan Carroll: Another thing we do, actually, which is really kind of interesting, is that we will frequently do tech support for some of these other companies and help fix their bugs. Because every single time it'll turn out that they just hit it first. When they have a problem with it, it's a problem we're going to have in the future. Gil Yehuda: Interesting. So we're actually working together with them, more like a partnership, even though we're not really partners. We're just partners in the code. Alan Carroll: Yes. So it's a real benefit to be able to get a fix in before we actually have the problem. So then our delivery is smooth. So that's one of the big wins that we get out of this. Gil Yehuda: Is it rewarding to work on open source? Alan Carroll: Yes, it's really a lot of fun. We have a great community, so we get together two or three times a year. Most of us have become friends. I've had community members when they visited in Champagne stay at my house, and I've stayed at their houses. So it's great, we have lots of interesting technical discussions. Alan Carroll: You're talking with other people who are very interested in what you're doing. Gil Yehuda: So this is more than just work. This is like a passion project. Alan Carroll: It is for me. It started as work. But over time I've really embraced the project. So yeah, it's a passion. Gil Yehuda: Alan tell us, what's your GitHub name? Alan Carroll: Solidwallofcode. Gil Yehuda: Why is your GitHub ID solidwallofcode? Alan Carroll: I had to pick something and when I was thinking about it, there was an Elton John song I like, "Bennie and the Jets", and there's a line in particular like, "You gotta hear electric music, solid walls of sound". And it just had this kind of power, this outgoing, this forwardness to it that I really liked. So I wanted to be a solid wall of code. I wanted to produce code, I wanted to produce quality code, cutting-edge code. Aggressive stuff. And it just seemed to suit me better to say "I do code". Gil Yehuda: Wow. Alan, tell us if you will, something that you know about our working environment that probably the listeners don't know, but would find interesting. Something unique, something that makes your working environment, delightful, fun, or interesting. If somebody were to work with you or work on your team, what would they get or see that they might not have known about? Alan Carroll: I think one of the things that I really like is that we're moving into advanced C++ stuff. We recently moved up to C++17, which is the current standard. And we've done that primarily to get rid of technical debt. So there's a lot of code, there's, in fact, a lot of C code left in the project, and we're gradually working that out. And I find a lot of fun to say, "Okay, here's some code. It was well-written 15 years ago. It just doesn't work today." So we can improve it, and we get to use the new language features. We get to explore the new language, the new features and how can we use them to make our code faster, more reliable, and more maintainable. Alan Carroll: I really enjoy programming. So the ability to do this is a lot of fun. For a lot of the junior staff, they get to experience world-class C++ development by people who are experts in the field. And so it's very enjoyable to see our junior staff really move forward and get commits. So once they work with us, they're a contributor. They can say, "Yes, I have contributed to an open source project". Gil Yehuda: And that's good for their resume and their career, right? Alan Carroll: Yes. It's a great experience, it's really nice. You can say, "I worked on this. Here's some of my code", it's not just all anonymous. And you get to meet people. If you build a feature in and some other company uses it, they get to talk to you. I'll admit, it's pretty ego-boosting to have other companies come and say, "Oh, you wrote this? Can you explain it to us?". Gil Yehuda: But that's good. I mean, after all, if you're an engineer and you solved a really difficult problem and you get recognized by your peers for doing it, maybe it is good for the ego to have somebody who could appreciate it say thank you. Alan Carroll: Yeah, I mean ultimately, I don't write code to enjoy writing code, although I enjoy it. It's ultimately to deliver value, to make things work. Right, that's why I'm an engineer. To build stuff. Gil Yehuda: Alan, that's fantastic. Thank you for that, let me thank you for your time. Let me remind the listeners that we do hire, and teams are looking for great engineers. If you worked on a team with Alan, you would literally be working with somebody who is a rocket scientist, right? Alan Carroll: Correct. Gil Yehuda: And somebody who is passionate about delivering code, delivering value, and building a solid wall of code. So, thank you again for this. Gil Yehuda: If you enjoyed this episode of Dash Open, and you'd like to learn more about open source and other technologies at Oath, please visit developer.yahoo.com, and you can also find us on Twitter, at YDN.

More Episodes: