New DevNet Learning Track: Build Your Home Lab to Learn about Network Programmability

June 26, 2017 - 10 Comments

Networkers have been building labs with networking gear for decades. Every one of us who has built their home lab has had to go through some learning curve of researching various product families, models, operating system versions, and product features supported by various hardware and software combinations. But building a home lab has often been worth the time and effort, because with that lab, we could learn more about networking at home, to get that next job, or a better job, or to pass some certification exam.

Now think about a networker’s home lab, but with the need to learn about network programmability. We thought about it as well, and created some new DevNet Learning Labs to give you some ideas and tips about your home lab.  The Learning Labs all relate in some way to answering this question:

What should an engineer add in their home lab to make it a good learning environment for learning about network programmability?

This blog post introduces a new DevNet Learning Track: “Building Your Home Networking Lab for Network Programmability”. You can read on for more details, or just watch the video version below:

New Learning Track: Building Your Home Networking Lab for Network Programmability
On the small chance you’ve not seen any DevNet Learning Labs yet, the DevNet site gives us an organized approach to using all their free DevNet Learning Labs. That approach uses the concept of a Learning Track, which lists related Learning Labs with a recommended order. To further group the lab, many Learning Tracks have Learning Modules, which are subsets of the labs within the Learning Track, just to group Learning Labs together. Then there are the Learning Labs themselves, each of which is a scripted lab exercise like what you might expect to do in a course. This figure shows the organizational concept.

We’ve created a new DevNet Learning Track called “Building Your Home Lab for Network Programmability”, with two Learning Modules planned so far. The first module focuses on APIC-EM, while the second focuses on getting your desktop PC and network devices ready for NetConf/YANG and Ansible experiments.

As for timing, the first two (of three) labs in Learning Module 1 should be posted about the same time as this blog post, just before Cisco Live US for 2017 (June 2017). Go ahead and jump in, or read a little more about what’s in the rest of the series!

Learning Module on Setting up APIC-EM in Your Home Lab
The first Learning Module focuses on APIC-EM. Why APIC-EM? Many reasons. Just to mention a few, it’s a great tool for learning about network programmability for anyone, especially for networkers who already understand a variety of Cisco networking devices. And the software is free! However, the decision to use in your home lab, or not, requires some thought and some planning. For instance, you need a lab with networking devices that are working models with specific operating system versions so that APIC-EM’s apps will work.

In short, APIC-EM can be very useful in your home lab, but it requires some thought from a couple of different directions. Hopefully the Learning Labs (listed in the next figure) will help you work through that decision making and planning.

Adding APIC-EM to your Home lab:

APIC-EM Home Lab Hardware Platform lab:

As for the individual Learning Labs, the first two have a similar theme. However, the first lab examines three separate major points, while the second lab stays focused on a single major point. For this first Learning Lab, the main topics are:

  1. The decision of whether to use APIC-EM at home or not
  2. APIC-EM software options and licenses
  3. Networking hardware/software required to make APIC-EM useful at home

The second Learning Lab then discusses the single biggest barrier to adding APIC-EM at home: The server hardware you need to run APIC-EM. This lab looks at the requirements, how much server capacity you really need, and some options to keep the price to something affordable for your budget.

Finally, the third Learning Lab in this first module, planned for release by the end of July this year, examines some key installation questions that impact your home lab, as well as advice about how to get the APIC-EM discovery process to work. We designed this Learning Lab to get you up and working quickly once you decide to move forward with adding APIC-EM in your home lab, covering topics that you do not typically need to worry about in other DevNet Learning Labs or in the Devnet Sandboxes.

Learning Module 2: Setting up PC and Network Devices
The second Learning Module in this new Learning Track focuses on the environment on your desktop or laptop PC at home, plus the networking devices you will configure and control with your network programmability experiments. By the end of each lab, if you follow the steps on hardware/software that meets the requirements for each feature, you should be ready to begin your experiments using Python, several other desktop tools, along with NETCONF/YANG and Ansible.

We expect to have the labs in this second module complete and posted within a few more months after wrapping the Learning Labs in the first Learning Module. Stay tuned for those!

Start Now – No Lab Required!
All the labs in the first Learning Module allow you to do your thinking and planning for APIC-EM, without needing to already own a server or own any networking devices that work with APIC-EM. Go ahead and jump in and start when ready! When need about 20-25 minutes to work through each lab, with some additional time required if you want to dig into a complete analysis of your own home lab. But the Learning Labs should point you in the direction to go for that analysis.

Keep an eye out for more Learning Labs in this Learning Track. You can watch for them here, or follow me on Twitter – I’ll definitely chat about each Learning Lab when they release. And given that this blog post is planned just before Cisco Live US 2017, if you’re there, look for me at the show – I’ll be at the DevNet Zone part of the show for sure!


In an effort to keep conversations fresh, Cisco Blogs closes comments after 60 days. Please visit the Cisco Blogs hub page for the latest content.


  1. Excited about APIC-EM after working on data center APICs. I was surprised at how intuitive and simple they seemed. My big fear, which I am not sure how to get past, is I am not a programmer and I don’t like programming. I used to do SQL in the early 2000’s, but it was not something I enjoyed. How does a network junky get excited about being a programming bunny?

    • Hey Pete!
      Programming bunny, huh? 🙂
      I think the first thing to get excited about is the power and function enabled by the specific API. It’s not that you can do exactly the same things – no more, no less – with an API, but that there is some fundamental change to the capability. For instance, what did you find the DC APIC that got you excited, and how much was that like the old CLI methods of building a DC?

      For APIC-EM, I’d suggested getting into the API in depth, even without using Python, and working through some of the depths of features. For instance, just grab the always-on APIC-EM Sandbox here at DevNet, and get into the API in more depth, just using Postman to make API calls. Or even just read through the API doc a little more. You might see some data points available only because APIC-EM already centralized and processes many facts about the network, for example, topology info, ACL analyses, and so on. And you don’t have to learn Python to kick those tires – just take an hour or two with Postman + a DevNet Sandbox, or even the APIC-EM API doc!

      Let me know how it goes! Good to hear from you.

  2. Hi Wendell! Thank you so much for creating some new DevNet learning labs! I’m sure our DevNet audience will find them useful and enjoyable! I’m so happy to bring your expertise to DevNet!

    • Hey Susie. Sure thing – happy to help! Been enjoying the learning content at the DevNet site for many years – thanks for the opportunity to lend a hand in that!

  3. Thanks Wendall ! Great informative content. I think I know what I might be doing over several upcoming lunch breaks. 🙂

    • Sure thing Steve! Working on lab 3 this AM, which includes APIC-EM install details. Enjoy!

  4. Excellent article Wendell! I hope after this week everyone who is amped up about DevNet finds this so they can get started on the network programmability journey. If anyone can make it easy to understand for the masses, it’s you!

    • Thanks, Paul – very kind. I’m a big fan of the net programmability content at DevNet – enjoy!

  5. I’m excited to try this out!

    • Great, Adam – let us known if you end up installing APIC-EM at home, and how well the process worked… later