WEBVTT 0:00:07.620000 --> 0:00:11.920000 Hello and welcome to this course on an introduction to network programmability 0:00:11.920000 --> 0:00:18.700000 and automation. My name is Keith Bogart and I will be your instructor 0:00:18.700000 --> 0:00:20.560000 for this course. 0:00:20.560000 --> 0:00:23.180000 As you can see here, here's my contact information. 0:00:23.180000 --> 0:00:26.380000 So if at any point in time while watching these videos or after the videos 0:00:26.380000 --> 0:00:30.720000 are done, you have any questions or concerns or doubts, please feel free 0:00:30.720000 --> 0:00:33.560000 to reach out to me here via any of these methods and I'll be happy to 0:00:33.560000 --> 0:00:35.980000 do my best to answer your questions. 0:00:35.980000 --> 0:00:40.140000 So let's talk a little bit about what the course prerequisites are. 0:00:40.140000 --> 0:00:44.220000 So let's take a step back here for a moment and I'll sort of describe 0:00:44.220000 --> 0:00:47.040000 who this course was designed for. 0:00:47.040000 --> 0:00:50.960000 So this course was designed for the network engineer, whether you've been 0:00:50.960000 --> 0:00:55.840000 working in networking for two months or for 20 years, but the network 0:00:55.840000 --> 0:01:00.100000 engineer who is very familiar with the command line, logging into individual 0:01:00.100000 --> 0:01:04.440000 devices, whether they be routers, switches, firewalls and doing whatever 0:01:04.440000 --> 0:01:06.780000 you need to do on those devices. 0:01:06.780000 --> 0:01:10.180000 And maybe for a while now, you've been hearing buzzwords like software 0:01:10.180000 --> 0:01:15.120000 -defined networking or network programmability or automation or Ansible 0:01:15.120000 --> 0:01:19.360000 Python and you've thought to yourself, well, you know, that sounds like 0:01:19.360000 --> 0:01:23.300000 interesting stuff, but I've been doing just fine all these years with 0:01:23.300000 --> 0:01:25.080000 my command line. 0:01:25.080000 --> 0:01:27.760000 Sure, it might be a little cumbersome. 0:01:27.760000 --> 0:01:30.940000 I might have to do a lot of stuff repetitively over and over again, but 0:01:30.940000 --> 0:01:32.780000 this is what I'm used to. 0:01:32.780000 --> 0:01:34.080000 And this is what I know. 0:01:34.080000 --> 0:01:36.700000 And maybe up until now, you've pretty much gotten away with just sort 0:01:36.700000 --> 0:01:39.960000 of ignoring all that stuff, sort of like people got away with ignoring 0:01:39.960000 --> 0:01:44.080000 IPv6 for decades until it hit them square in the face. 0:01:44.080000 --> 0:01:46.520000 Same thing is true with this. 0:01:46.520000 --> 0:01:50.960000 So network programmability and automation is no longer just a buzzword. 0:01:50.960000 --> 0:01:55.340000 It's now moving out of its infancy and starting to gain some maturity, 0:01:55.340000 --> 0:01:58.860000 which means that if you're not doing network automation programmability 0:01:58.860000 --> 0:02:03.320000 in your network now, you probably will be in the near future. 0:02:03.320000 --> 0:02:06.800000 So you need to be introduced to some of these concepts, and that's what 0:02:06.800000 --> 0:02:08.380000 the purpose of this course is. 0:02:08.380000 --> 0:02:14.280000 This is not going to show you how to automate or how to program your network. 0:02:14.280000 --> 0:02:15.820000 That's not the intent. 0:02:15.820000 --> 0:02:21.860000 My intent is to give you exposure into what some of these concepts are, 0:02:21.860000 --> 0:02:25.600000 why you might want to dig into them further, what types of things they 0:02:25.600000 --> 0:02:28.160000 could do for you, the benefits they could offer you. 0:02:28.160000 --> 0:02:31.260000 So that by the time this course is done, you will be familiar with a lot 0:02:31.260000 --> 0:02:34.400000 of the terms and acronyms that right now might just be going right over 0:02:34.400000 --> 0:02:37.660000 your head and you have no idea what they are when people talk about them. 0:02:37.660000 --> 0:02:41.860000 So based on that, let's take a look at what the course prerequisites are. 0:02:41.860000 --> 0:02:45.000000 As I say here, I expect you to know a basic understanding of the roles 0:02:45.000000 --> 0:02:47.760000 of network infrastructure equipment. 0:02:47.760000 --> 0:02:50.780000 Simply said, that means that throughout these videos, I'm going to be 0:02:50.780000 --> 0:02:55.020000 saying, yes, a router here or a switch here or this topology is made up 0:02:55.020000 --> 0:02:56.120000 of a firewall and this. 0:02:56.120000 --> 0:02:59.540000 Well, if you don't know what a router is or a switch is, that will be 0:02:59.540000 --> 0:03:01.340000 completely meaningless to you. 0:03:01.340000 --> 0:03:05.880000 So I expect that you know what basic networking devices are, even if you 0:03:05.880000 --> 0:03:09.520000 never actually touch them and you know what their purposes are. 0:03:09.520000 --> 0:03:12.840000 Number two, I expect you have some kind of experience with configuring 0:03:12.840000 --> 0:03:15.600000 network equipment via a command line. 0:03:15.600000 --> 0:03:19.040000 Now, once again, you might not be a jockey with a command line and know 0:03:19.040000 --> 0:03:20.240000 every single thing. 0:03:20.240000 --> 0:03:25.740000 But in order to really understand the benefits of network automation and 0:03:25.740000 --> 0:03:29.220000 programmability, you need to have some exposure with the command line. 0:03:29.220000 --> 0:03:33.280000 It's not until you start feeling the pain of having to do the command 0:03:33.280000 --> 0:03:37.780000 line over and over and over again on multiple devices doing the same thing 0:03:37.780000 --> 0:03:41.720000 over and over again that you will truly appreciate what programmability 0:03:41.720000 --> 0:03:44.360000 and automation brings to the table. 0:03:44.360000 --> 0:03:48.360000 Third, a high level understanding of the usage of scripts. 0:03:48.360000 --> 0:03:50.320000 Now, hold on, you might be thinking, whoa, wait a second. 0:03:50.320000 --> 0:03:51.680000 I don't know anything about scripting. 0:03:51.680000 --> 0:03:57.620000 That's okay. What I mean by this is, if I asked you, what is a script? 0:03:57.620000 --> 0:04:00.940000 Why would you use a script in anything? 0:04:00.940000 --> 0:04:04.080000 I'm not asking you to write a script or to know all the different scripting 0:04:04.080000 --> 0:04:09.940000 languages out there, but hopefully you'll be able to tell me, oh, well, 0:04:09.940000 --> 0:04:12.960000 to automate something, to make something easier. 0:04:12.960000 --> 0:04:15.620000 So I don't have to do it manually over and over and over again. 0:04:15.620000 --> 0:04:18.220000 If you answered that, you're good to go. 0:04:18.220000 --> 0:04:22.220000 And then lastly, understanding of basic IP packet routing concepts. 0:04:22.220000 --> 0:04:26.360000 Once again, I'm not expecting to be an OSPF or an EIGRP guru. 0:04:26.360000 --> 0:04:30.880000 But as we go throughout this course, in order to do network programmability 0:04:30.880000 --> 0:04:34.680000 and automation, you're going to implement things into your network, like 0:04:34.680000 --> 0:04:38.640000 controllers, like servers, running things like Ansible or Chef. 0:04:38.640000 --> 0:04:42.260000 And these things are going to need to be able to have basic IP reachability 0:04:42.260000 --> 0:04:47.260000 to your devices, whether your devices be servers or virtual servers, router 0:04:47.260000 --> 0:04:49.680000 switches, even end hosts. 0:04:49.680000 --> 0:04:53.820000 IP is what carries all this stuff back and forth. 0:04:53.820000 --> 0:04:58.980000 So if you have no idea what IP is, if I say the term IP packet, you're 0:04:58.980000 --> 0:05:07.220000 like, huh, well, then that's going to be a network. 0:05:07.220000 --> 0:05:10.140000 So what are our course objectives? 0:05:10.140000 --> 0:05:12.000000 Let's talk a little bit about that. 0:05:12.000000 --> 0:05:17.080000 So as I mentioned, I'm to give you exposure to various elements of network 0:05:17.080000 --> 0:05:19.320000 automation and programmability. 0:05:19.320000 --> 0:05:21.220000 Now you can read all this stuff yourself. 0:05:21.220000 --> 0:05:24.420000 The basic idea is I'm going to expose you to a lot of these elements like 0:05:24.420000 --> 0:05:27.120000 tools like Chef, Ansible and Puppet. 0:05:27.120000 --> 0:05:30.800000 What is an API? And we'll talk a little bit more about REST APIs. 0:05:30.800000 --> 0:05:34.380000 I'm going to talk about what is an SDN controller and how are they different 0:05:34.380000 --> 0:05:35.700000 in some circumstances? 0:05:35.700000 --> 0:05:38.960000 How can you implement them in one way in a network and maybe implement 0:05:38.960000 --> 0:05:43.160000 them in a slightly different way for a different purpose in another network? 0:05:43.160000 --> 0:05:45.500000 We're going to talk about something called the imperative and declarative 0:05:45.500000 --> 0:05:50.540000 models, which directly correlates to how an SDN controller operates within 0:05:50.540000 --> 0:05:53.620000 a network. We're going to talk about concepts of underlay and overlay 0:05:53.620000 --> 0:05:56.080000 networks. And these things called fabrics. 0:05:56.080000 --> 0:05:56.960000 What are those things? 0:05:56.960000 --> 0:05:58.800000 What are they? Why are they important? 0:05:58.800000 --> 0:06:00.760000 I'm going to introduce you to Cisco DNA Center. 0:06:00.760000 --> 0:06:04.220000 You may have never heard of that product before, but I'm going to show 0:06:04.220000 --> 0:06:06.960000 you sort of what it is, what it can do. 0:06:06.960000 --> 0:06:10.620000 Once again, not with an emphasis on, hey, let's get you to the point where 0:06:10.620000 --> 0:06:13.660000 you can configure DNA center and make it do its stuff. 0:06:13.660000 --> 0:06:14.820000 That's not my objective. 0:06:14.820000 --> 0:06:18.500000 My objective is that you walk away from this course now being familiar 0:06:18.500000 --> 0:06:23.020000 with what the product is, what problems it was designed to solve, and 0:06:23.020000 --> 0:06:26.280000 maybe have a little bit of exposure to the GUI so you can sort of visualize 0:06:26.280000 --> 0:06:29.460000 in your head this product when somebody mentions it to you. 0:06:29.460000 --> 0:06:33.560000 And we'll also talk about the interpreting of JSON encoded data, which 0:06:33.560000 --> 0:06:38.740000 is a very popular and common format of formatting your data when sending 0:06:38.740000 --> 0:06:42.200000 it to and from networking devices. 0:06:42.200000 --> 0:06:45.700000 So I hope that you get a lot out of watching this course. 0:06:45.700000 --> 0:06:47.880000 Let's go ahead and dig right into it.