Eric Chou 0:00
Network Automation Nerds podcast. Hi, this is part two of an interview with Josh. In part one, Josh talked about his origin story as well as his path to network automation. In part two, we geek out more about technology topics as well as looking forward. Enjoy. So we talked about, you know, the network automation, the good parts about it, how do you go through some of the obstacles, crawl, run, fly, that sort of stuff. So like you said, network automation is a big, gargantuan chunk of technology under one umbrella. So what is your tech stack like? Python, Docker, Ansible? So what are those things that you… I guess kind of what you like and where do you see the fit into the picture?
Josh VanDeraa 0:55
Yeah, definitely. Python is the king right now, the stack. We've done a very good job of take a look at Network to Code open source projects and this is what we've standardized on internally which is in our open source. Within Python, we're using Python in bulk. to just help with the various commands, which we also very heavily use Docker. And so I also still believe in Docker. I think I've got a couple of Docker projects in my personal repo out there. And so it's a… invoke helps with all the Docker commands. Because without it, it's just like, what was that Docker compose command? So invoke helps to handle all that and will run those commands. And then Python poetry from a package management. It's out there in virtual environment management. If I'm being honest with you, a bunch of Python folks might want to hate on me for this, but I much prefer to have my virtual environment as a Docker container. You know just right. Hey, I want to move from Python 3.8 to 3.11. Right? Just change a Docker command, right? Right? So I'm pulling different images when I exactly 'cause they'll pull in. So I've I've become a big fan of using Docker as my virtual environment, but again, poetry is doing some really good things on that front. And so yeah, Docker. And then I do set up some virtual machines here and there at my home. I've done a lot of Ansible in my past. Ansible just takes care of making it easy, such as installing Docker, installing, getting the system set up the way I like it, and installing all the other pieces. In my book, I talk about telemetry. And so I'm trying to dog food. my own, read my own doc, hey, monitor my Linux server, see, just keep an eye on how things are moving. And so I want to automate all that stuff because I can only install Telegraf so many times before it gets pretty redundant.
Eric Chou 2:48
So, right, right. Okay. So let me just kind of organize it for people who are just listening, right? So, so at the top level, you know, you have, kind of virtual machine. And the virtual machine is obviously abstract everything above the hypervisor. It's just like OS, but it's virtual. And then you have your Docker, where you have this containerized stack of technologies that you group together. And that is kind of your virtual machine replacement. And then you move down the stack a bit about Ansible, which is like a framework based on– Python, and you got your playbooks, and it takes you a lot of the low level operations for you. And then you have your Python. which is just a programming language. Within that, you mentioned a few of the libraries that you use, like invoke, poetry, and was there anything else that you mentioned?
Josh VanDeraa 3:43
I think I also, we use Nornir quite a bit. Nornir is there. Nornir is definitely from a network automation framework is. becoming more and more part of our core. One of our plugins for Nautobot is doing config backups on devices. It's pretty remarkable how quickly Nornir can go in and do show run or whatever the backup, the command to do backups are, and just be able to turn through that.
Eric Chou 4:06
I'm not very clear on that. Can you tell us a little bit about why is Nornir so much faster than say a Ansible playbook or a Netmiko script. –
Josh VanDeraa 4:39
Yeah, so Nornir specifically there, it's… It takes and handles the advanced task of multiprocessing. I think that's the biggest piece. Compared to Ansible, Ansible's got really Ansible There's a lot to it and probably could be a whole separate issue. It's there and it has a whole lot of safety checks. Whereas Nornir is kind of just a raw, here you go network, go ahead and interact with the network device. And so you can use Netmiko or Napalm at that point. Or also, I think Scrapli's got a plug-in to Nornir. All these libraries have helped with that. setup of the SSH connection. I actually did at one point, this was one of my biggest mistakes is
Eric Chou 5:21
I love it. I love it. Tell us.
Josh VanDeraa 5:21
Yes, I didn't. I didn't really know about the open source community when I first got involved in Python. So I'm sitting here trying to write a library to interact with network devices. Oh wow.
Eric Chou 5:21
Oh, there's that. There's Netmiko. Yeah, yeah, yeah. Kirk already done the work. Exactly. Yeah.
Josh VanDeraa 5:47
And so I had done some things and I so basically I I learned the same mistake that are not the same mistake I learned had the same learnings that Kirk did about yeah that when you SSH to a network device at least the Cisco devices There's actually two parts to it, right? It's SSH connection is the first part, but then you actually have to stay in a shell. Yeah Right. And so Netmiko, Scrapli, and Napalm take care of all that for you. And so that will be one of my big piece of advice if you're trying to get certain, you find yourself doing things with Paramiko or trying to SSH to a device. Just go use those libraries. They're there. They, you know, if there's something broken with it File an issue, open it, you know, let's make the community better.
Eric Chou 6:29
So yeah, unless you're doing something. really old, right? Like, I mean, I, I, Awesome! blade, like the old IBM blade switch or something like that. But also like some older 3Com switch, you do have to go to the low level, do the expect step, Paramiko stuff. But outside of that, there's a lot of libraries out there. different from where I would imagine different when we started. The ecosystem is a lot more complete now. Of course, you mentioned Ansible. Just to know, Ansible is a whole infrastructure management tool. It's not just about networking. It just so happens to be the most network-friendly, I would say, amongst all the infrastructure DevOps tools. But at the same time, they're part of this big picture, whereas the tools that you mentioned, Netmiko, Scrapli, those are actually very network focused.
Josh VanDeraa 7:34
Yeah, and I like to when I talk about automation or not on how to talk about the telemetry side of things I use them zero to alerts. Well, the zero to automation might be if you're really for the first time looking at anything. Ansible probably might be your quickest to being able to do a show version or yeah, I want you to switch and get across your your entire fleet of devices. Yeah, but then Python is probably good and the Nornir frameworks are going to be able to take you further. Yeah, it's you know, sometimes if I like it to keep that same analogy of zero to 60, you know, sometimes the Chevy is going to do just fine where you don't need the Plaid mode of a Tesla to be. just out on the freeway, right? Yeah. But it'll get the job done for sure. It's different, so. –
Eric Chou 8:15
Yeah, being somebody who drives a Chevy. I agree. But yeah, okay, cool. So you mentioned the book, "Open Source Network Management," and then I'm very, I mean, I bought the book even before we knew each other. I saw this book and… heavy usage of Docker for sure. And I read the book. So tell us a little bit more about this book. –
Josh VanDeraa 8:48
Yeah, so really it came down to when I left the large retail and went to this much smaller shop, I wanted to get involved in the open source because I didn't have the budget and I didn't have the awesome tools. And so I really wanted to be able to deploy a telemetry solution like the TIG stack. And I tried for a little bit and I couldn't get anywhere. So I mean, I failed at that point. I would say I went down and just, I didn't make any shift away from the traditional NMSs. And so at a point I got to the point, I had a little bit of downtime and said, This is something I'm interested in, I'm doing some writing and I want to share how to get started because now I do know how to get started and build a full TIG stack that gives you, whether it's a Datadog or some of the other advanced systems that have a premium price to them and do it in the open source. And so I really want to take that time to be able to share how to do that. And so that's what really started me on this book. And from there, from a management perspective of if you're setting up a management solution, well, you also need to set up a source of truth where what are the devices you can monitor? Right. You also need secrets. How do you how do you log into this? Right? You don't like hard coding your script. You know, if there's there's a place for that. But most enterprises would that would be frowned upon, I think.
Eric Chou 10:08
Yeah, yeah, you wouldn't pass your PCI audits. And so that's right. Really put together.
Josh VanDeraa 10:08
Docker is a great tool to be able to get rid of it. It works on my machine perspective. It's something that is universal once you do get Docker out there. Kubernetes is still able to run Docker containers and so on. And so it is a getting started. Is it going to be able to monitor the 30,000 devices? It's going to take a little different setup to it, right? This is going to set up for your 100 devices type as getting started. But it's out there and there's lots of communities to be able to help take you all the way to its scales.
Eric Chou 11:11
Yeah, it's an introductory book, but it's a good introduction on, would you say it covers like a wide range of tools and, you know, kind of. I get the feeling when I was reading it, it's kind of your own notes, right? Like, "Hey, this is how you would do it today, knowing, you know, try 10 other things that didn't work, and now that you're coming back to us and say, 'Well, you know, having bumped my head, 9 other times, this is one time that I find pleasant.'"
Josh VanDeraa 11:41
Exactly. And there were definitely a few times I did bump my head, inviting the book as I'm going through. And, you know, because I do take it on the journey of starting with that source of truth, getting the secrets set up. So it takes a little bit. But then once you get into, OK, now we're setting up the rest of the Telegraf and Prometheus and Grafana to be able to have visibility. And I absolutely, you know, it's. the book, it's Origins are in Leanpub. So I haven't made a ton of updates in the past year, but I definitely, as I watch the open source, I'm going to continue to add to that. So I'm going to go ahead if, you know, alternatives to Prometheus, Grafana and Telegraf, maybe add another chapter on that. But I, you know, get into as other apps become prevalent in the open source community, want to be able to write about that. Leanpub will automatically get that all pushed out to the individuals. –
Eric Chou 12:27
Yeah, that's a good point. So here's just as good as any place to mention that being generous. And we'll mention again at the end of the podcast too, you have agreed to… you know, give out various copies of that book. And like you mentioned, for Leanpub, if you have the copy, once you push out new editions, you automatically get to be able to download those changes and be able to get the most up to date. There's no like– you know, copywriting, you don't have to read it off a website or something. You just download the file format that's most… applicable to you, PDF, EPUB, or some other format like Kindle. –
Josh VanDeraa 13:19
Yes, indeed. And that's why I wanted to get it out there and why I chose Leanpub as the primary place for it, right? From being able to continue to add to it over time and not just be a, that snapshot in time. Working on publishing at other places as well, it will probably have to be a version type thing, but that's an area I still don't know about. So I'd like to talk to you some more about it.
Eric Chou 13:46
Oh my God, it was so painful. And thank you for it. This is a good place to mention that you're the tech reviewer for the fourth edition of Mastering Python Networking coming up. And I thank you for it. I think I read your comments. You're very thoughtful. And it gives me more confidence about just more eyeballs. I'm someone of your caliber looking at it. It really makes me comfortable. But you're right. It's so painful. There's like color coding and there's like, I've read the same words like four times. And like, that's just for this edition. And like, you know, at some point, you just kind of puke when you see your own writing. And so so definitely, definitely something that's like very different than self publishing. And there's pros and cons for both.
Josh VanDeraa 14:30
Indeed. And still got to also reverse that and say thank you to on behalf of the community. I think in the pre-show brought a copy of the, I've got a copy of Eric's. I think it's a second edition, but I think you're telling me it's the first edition, right?
Eric Chou 14:30
Yeah, I think that was the first edition. I mean, I think if you have that red cover where it's like, Yeah, but anyways, I'm blushing and you know, I thank you for the kind words. And, you know, I do like Leanpub. I do. I did publish the Kafka book through Leanpub. And I do like the format, but you're right. It's a lot of work just to be put on yourself. Right. You don't have that editor portion, but you get to publish a lot quicker and you get to get the feedback from the users a lot quicker. So, you know, if you're up for it, I definitely put a link in the show notes. And on the book, it's not very pricey, but you actually get paid more as an author because you don't have that middleman taking the royalty on the top. So your benefits, you're encouraging and sponsoring the author at the same time. I'll definitely put the link in the show notes. And like we talked about, we're going to give out a few copies. Keep your eyes open for the ways to get more book on that. But back into the book content itself, you mentioned some of the tools Grafana, Prometheus, and what are some of the other challenges that you find in writing the book or learning these stacks because For me, it's always hard to keep up with all of them. So do you find that the same thing? –
Josh VanDeraa 16:39
It is, and I think that, you know, I definitely call what versions I'm running on, right? Yeah. Of the various pieces, like Grafana itself has, their organization is turning out so much awesome open source projects as well. Yeah. Could probably just turn it into a book just about Grafana's systems, right? Yeah. You know, and so. It is, there's a lot to handle and that's going to be one of the things here as if you're looking at it from your cell, your own organization. Yeah. It doesn't matter. You know, you can replace some of these pieces. So.
Eric Chou 17:19
Yeah, I mean, it's definitely like I I almost thought about just breaking up Mastering Python Networking into like different sections. And so for like these two sections would be like a book by self, right? And then the monitoring would be by book by self or security would be by by self. But you know, like you said, it's like the publishers are involved and once they're involved, it's, it gets a little more complicated than that. But I definitely agree that a lot of times Not a lot of times, but in your book particular, you know, like there's portion of it where you could go super deep into it. But I still like the book about, you know, it's being broad. So you get like a good looking feel. It's like a buffet, right? If you really like seafood, yeah, go to a seafood restaurant. But this is the buffet for you to sample each of them a little bit.
Josh VanDeraa 18:04
Yeah, if you just need the hash, you know, we talk, it's when I talk about vault, it's HashiCorp vault. If you, you know, if you just want to, you don't want to worry about any of the other tools. Yeah. There's, you just go straight to that. And that's in the book there, I did set up each chapter stood on its own. And then the last chapter bunged everything together into one system.
Eric Chou 18:25
Yeah, so that's pretty awesome. So we're getting toward to the end of our talk, but I do want to look forward and look ahead into how can we help people to get started. So you mentioned, you know, crawl, run, fly. You mentioned getting small wins. So what are some of the other recommendations that you would have? for people to get started with network automation, maybe they're interested in Ansible, Python, that sort of stuff.
Josh VanDeraa 18:55
Yeah, definitely. So out there from a reading perspective, definitely two books. Your book is definitely a must have on there. Okay. Thank you. Jason Edelman and Matt Oswalt and Scott Lowe have a book on network programmability and automation. Definitely a read to pick up. And without that in the community, I gotta say a shout take a look for Netmiko, N-E-T-M-I-K-O. Kirk has throughout the… Throughout the year he said I has both free and paid training courses I think actually that if I go way back in my memory banks I I definitely have gone through the course and I could give it that was the Python course. Yeah, and so I won't give a shout out there because and then it's just getting involved in the community Whether you know, we're working on a network automation nerds community. That Network to Code slack is a great place to go. So just look up Network to Code Slack. It's a free sign up. There's, you know, as you're going down the journey, there's channels there for you to get involved to ask questions on Python answer. Well, what what it has, it's there as a community. And then if you're, you know, lots of stuff going on with Twitter, but and the Twitter look up the hashtag NetDevOps. That was one of my phases. As I got into the larger network automation community, there is still a good amount of interaction on Twitter there.
Eric Chou 20:37
Yeah, I mean, 100% on all the resources that you mentioned, I went through both of the free version of Kirk's course, as well as the paid version. And they're excellent, right? Like they actually put you into contacts. And contacts really matters, right? So when I was taking Kirk's course, I was at Microsoft. So there's no lack of developers around me to ask around. But at the same time, they're in a different context. They're worried about something else. But when you go to Kirk's class, both the free and the paid version, he puts it into the right context for you. The host names are the router host names. And the environments, the scripts are all very network specific. Like you said, Paramiko has his own glitches when it comes to Cisco devices. So he took a lot of that for you.
Josh VanDeraa 21:25
Yeah, and it takes care. Like I said, a lot of these libraries that are out there use them. Yeah, you know, don't don't be afraid or don't be ashamed by I have to be able to write this myself. And in fact, that's probably, you know, as a person that did write one myself in my very first formative years of network automation, it is not the right way. You know, you do learn some pieces and you learn some of the underlying wise, but Yeah.
Eric Chou 21:52
Yeah, and also Jason's book too, right? Like I think second edition is on preview. I think it's still a kind of like draft review, but keep an eye out for it, right? Like if you needed, just get the first edition. But there is a second edition that's coming out with the new cover and all that.
Josh VanDeraa 22:11
I didn't know there was a new cover. I know there's a lot of work going into with various previews and so on.
Eric Chou 22:19
Yeah, I think they actually– in the first edition, I'm just like peeking over to my bookshop because I think the first edition has one of the coolest animals because– I forgot who I talked to, but he was just telling me like, there's a yeah, exactly. That's one of the coolest animals. He was telling me like he didn't want a fish to be his O'Reilly book cover, but he's like, anything but a fish, anything but a fish. And he got a fish. And then he actually went back to the O'Reilly publisher and said, Hey, what if I just pay you? Like I would commission this artist to come up with a different animal and I don't care what it, but They said no So all the power to Jason and Scott and for their incredible good luck to have that. to have that nice animal on the cover. Indeed. So yeah. So where do you see network automation in the next one to three years as a good wrap up to, you know, like looking ahead, like where do you see the trends are if you, if I asked you and look into your crystal ball?
Josh VanDeraa 23:26
Yeah. This one, I might catch some flack for this one.
Eric Chou 23:26
We'll put in the spreadsheet and say, "Was Josh right or not?"
Josh VanDeraa 23:26
Yeah. I definitely see APIs. As network automators, we all want to work with APIs. The network team, the whole reason why you write automation is so you have to do less than usually. You're only doing work if someone's asking you. So that's where I do believe in APIs, providing APIs to your partner teams for network automation. And along those lines is chat and chat ops. And one of my positions, I got a lot of pages overnight, or not a lot, but I just didn't want to get called overnight. So I wrote a web page to help. help the help desk and do all the things that I would do. So I did that. Then I showed it to a manager and the manager said, "Okay, let me bookmark that page." It ended up showing like seeing her bookmarks. She's never going to remember that bookmark page. So that's where everybody's in chat every day from Microsoft Teams or Slack or whatever it happens to be. That's kind of now the universal interface. And so I do still see chat chat ops as that next phase to be able to interact with network organizations.
Eric Chou 24:34
Some small program called ChatGPT something.
Josh VanDeraa 24:34
Indeed. That's a it's. That could also be a great resource to be looking at. I know I've gone out there and asked it to give me a few scripts. I think when I asked a Nornir question, it was giving Nornir two instead of Nornir three. Wow. As you use ChatGPT, you do have to be careful. Yeah. The versions behind things, but it gave a nearly complete solution there.
Eric Chou 25:15
You know, that's that's what's my not to diverge our, you know, question a little too far. But that was my experience too. It's like the general framework is right. And then if you ask for like a literature question, like fundamental questions, those are those are right. But the dates and names and like the specifics is sometimes a little bit iffy. And this probably gets better as the as more people use it and as more people such as yourself starting to correct them so that training model becomes a little bit more robust. So what else? You talked about APIs, chat ops. Is there anything else that you want to mention?
Josh VanDeraa 25:53
I think the only other thing that I'm going to start to see, we're seeing a little bit more is orchestration of network automation. I think you're starting to see a little bit more point in your automation on Kubernetes type where you have Kubernetes or whatever your flavor of container automation.
Eric Chou 25:53
Orchestration, yeah.
Josh VanDeraa 25:53
Yeah. I do still see containers as very viable. down that path and. I'm seeing a lot of Python libraries just maturing in general that they are in a good state. They're accomplishing things for organizations and getting the task done. One of the big things for me is I like getting things done and moving the needle. Ah. That's a big part of what I do, network automation day in and day out and at Network to Code just helping to see the journey for organizations move along.
Eric Chou 26:53
Yeah, it's very nice. I mean, I think one of the signs for the libraries being mature is keeping up with the latest change of Python, right? So you see this with Scrapli, Carl is doing a great job on keeping it up to date, Kirk as well. So I think that's one of the signs of being mature is that you're growing with the Python as opposed to it's somebody else's site project. One day they just decided not to work on it in the garage anymore. –
Josh VanDeraa 27:20
Yeah, and I am seeing a little bit of that where there isn't support for 310 or 311. Yeah, that's right. We're out to 311 and the other libraries want to move forward. I mean, Ubuntu 22 comes with 310, if I'm not mistaken. Yeah, yeah, you do. And so, hey, why use some of these libraries that are out there and they don't have 310 support? It's challenging.
Eric Chou 27:43
Right. So you're like, hey, go get a Docker image that runs three seven. Yes. Something like that. That's your new new virtual environment. Like you said, indeed. Yeah, cool. Hey, Josh, it's just been such a pleasure to chat. Like I said, it's so great to just geek out on these kind of stuff, talking to a fellow author. So tell people where they could find you on social, if they want to follow your work. What's the best way to kind of get in touch and follow your work?
Josh VanDeraa 28:12
Yeah, probably the best place to get in touch with me is via Twitter. I'm there at vanderaaj. So V A N D E R A A J. Yeah, we'll put a link in the show notes. Yeah, live with it my whole life. Take a look out there. You can josh-v.com as well as my website that has links to all things. And if you've and also on Mastodon on the free and open source side of things. And so yeah, I'm in the socials and then Network to Code Slack. It's out there. I think it's jvanderaa. Between that, you look up VanDeraa and Jay somehow. –
Eric Chou 28:36
Not that many people are VanDeraa as a, not that many VanDeraas out there who's also a network engineer, I guess.
Josh VanDeraa 29:00
Indeed. So and I'm out on the social. So but yeah, I want to thank you as well for having me on and being able to be a part. I know we've talked on your books and being able to give me the opportunity to be the tech reviewer on your fourth edition. Congratulations. Yeah, thank you.
Eric Chou 29:00
No, the pleasure is all mine. Like I said, you know, I am very glad you get to, you know, like look at the work and. you know, makes me comfortable and then see better at night for sure. So and also, like we said, in the middle of the podcast that we're able to, you know, you're generous enough to actually give out some of the free copies of the book. Just keep an eye out on when the podcast is released, we'll announce it. Chances are, I think we'll just do some kind of drawing or maybe the first few. people to message me or whatnot. And we'll see. But you being a generous person, I can't imagine we're too strict on the number of copies or too strict on like follow me on Twitter.
Josh VanDeraa 30:06
Exactly. It's about making sure the community, if the community gets larger and is able to adopt, the network automation community wins altogether. So that's as long as things keep winning from network automation, I'm happy as can be about that.
Eric Chou 30:25
Yeah, totally. Yeah. Let's grow that community. Let's grow that pie. Thank you again, Josh, for being here. I wish you all the best of luck on that book. I hope to see that book being 100% completed soon. Yes, thank you. Same. Thanks for listening to the Network Automation Nerds podcast today. Find us on Apple Podcasts, Google Podcasts, Spotify, and all the other podcast platforms. Until next time. Bye-bye.