By now, you’ve probably heard of Cisco’s Software Defined Networking (SDN) solution that is centered around ACI, or the Application Centric Infrastructure. Like most SDN platforms, a key component is the controller otherwise known as the Application Policy Infrastructure Controller (APIC) in the case of ACI. The APIC provides a single pane of glass that centralizes policy, configuration, and monitoring of the complete fabric. It also more importantly exposes the complete system via an object oriented REST API, which is what we’ll look at in this post.
By itself, ACI reduces the number of touch points in the network. This is no different than any other controller-based network that exists today and is a great step in the right direction. We can then honestly say SDN simplifies operations.
The issue is if you don’t have something else driving ACI, or any other SDN solution for that matter, it could take a large number clicks within the UI to configure a new tenant, application, or whatever is being configured. This is error prone as we all know it’s pretty easy to fat finger something! Because of this, it still makes total sense to automate network fabrics even if it’s not for Continue reading
Going to Cisco LIVE? Interested in chatting about network automation or about how DevOps principles can be used on the network? Well, if you are, feel free to reach out - I would love to have a conversation out in San Diego! I just booked a trip to Cisco LIVE, but am only purchasing the $49 DevNet Explorer pass. This means I should have plenty of time to socialize and will likely be spending most of my time at the DevNet zone. I’ll have access to my remote lab and should be able to demo much of what I’ve posted about in the past few months too.
Email me (jedelman8 at gmail) or comment below if you’re interested in meeting up.
Thanks,
Jason
Twitter: @jedelman8
I’ll continue to update this throughout the next two days. Feel free to issue a pull request if you’re also here at the conference and want to add to this post.
Location: Open Networking User Group (ONUG) at Columbia University
ONUG currently has 6 working groups:
It is interesting and awesome to see that half of the working groups are all about Day 2 operations and management of networks. This is exactly what’s needed in the industry.
Speaker: Adrian Cockcroft
NETCONF is an industry standard (IETF) network management protocol. It’s actually been around for quite awhile and supported by numerous vendors. While NETCONF is not always compatible across network switch platforms, it’s the closest thing I can see that could be a unified multi-vendor API. Of course, there are also vendor extensions for those device-specific features too.
I’m not going to get too much into what NETCONF is because Matt Oswalt has already done that. Check out his post if you haven’t already done so. There are also plenty of other good resources on NETCONF out there.
What I am going to focus on in this post is using Python to interact with NETCONF-enabled network switches.
Let’s get to it.
First, you’ll want to install the ncclient. It is pretty much the de facto Python library to use when you need a NETCONF client to communicate with a NETCONF server, i.e. a network device.
sudo pip install ncclient
This will also install a few other required dependencies such as paramiko and lxml along with the client itself.
The next thing you are going to need is at least one switch (or device) that supports NETCONF. In this post, I’m Continue reading
Software Defined Wide Area Networking (SD-WAN) is bubbling up to be one of the prime use cases of SDN. The vendors that fall into the SD-WAN bucket often include Glue Networks, Nuage, Viptela, CloudGenix, VeloCloud, etc. As you dive into each of the solutions from the vendors, you may realize that some are truly unique technologically and some may just be offering a better way to manage existing wide area networking equipment (which is still a huge value add).
In this post, I’m going to give some background on what is driving me to deploy an SD-WAN solution. Follow up posts will cover the deployment a bit more technically.
Since I now have equipment in a colo, moved into a new office, and of course, have the home office, I figured it may be a good idea to look at some of these SD-WAN technologies. In reality, my requirements have a mobile 4th site too that will be used when doing consulting and training onsite at customers to give dynamic site to site access just back to the colo.
To be perfectly honest, I didn’t have strict requirements – they are probably equivalent to those of a small IT Continue reading
If you are a frequent reader of my blog, you know that last year I left my job to do something that I was intrinsically motivated to do. Unfortunately, because of this, I haven’t been able to write as much as I normally would. I do hope that changes. But, time is money now – literally. My time has been spent driving business, negotiating, writing Scopes of Work, building a website, managing finances, and producing quality work for customers, and I hope all of that continues.
Up until this point, I’ve been focused on providing services to end user customers. Today, I’m happy to say that I’ve officially launched the first, of hopefully many, training courses. This one is focused on foundational skills as it pertains to network automation. More detail can be found here.
Training and Education are paramount for technology adoption and hopefully courses like this can play a small part with empowering network engineers to not only expand their skill set, but realize the value that could be had by these skills for their own organizations and employers.
As always, I’m open to comments and feedback below or through the contact page.
Thanks,
Jason
Twitter: @jedelman8
One of the harder things to do when it comes to network automation is work with the majority of the install base that exists out there. This is true even if we focus purely on data extraction, i.e. issuing show
commands and getting the results in an automated fashion. The reason for this is that most devices do not support returning structured data in formats such as JSON or XML, and this often times makes automation a non-starter for network engineers.
Traditionally, SSH is used to connect to a network device, issue a command, and dump plain text results back to the user. This leaves the user with the task of parsing through raw text and probably working with a library built for working with regular expressions, e.g. re
for Python. If you make it this far, you become an expert in using expressions like this: ([A-Z])w+
. And that’s not even a hard one! Regex party, anyone? I’ll pass.
What if there was a way to simplify the process of getting structured data out of the raw text a network device responds with? As luck would have it, there is definitely a better way. Continue reading
Over the past several months, I’ve found myself holding back on writing posts simply because my blog platform does not support the ability to embed code or even change fonts to resemble code, CLI, or working on a terminal. Screen shots are good, but offering the ability to copy and paste is nice, plus it just looks cleaner. This is unacceptable.
Additionally, I have been doing much more with GitHub and markdown. So, after reading what Scott Lowe had done with his migration to Jekyll and GitHub pages, it seemed like that was a great idea. Not only should I be able to improve what I can write, I should be able to decrease the time it takes to write a post. Awesome. The journey shall begin.
Rather than harp on my existing blog platform and that it does not have an export option, I’ve decided not to prolong the process and make this a gradual migration. Going forward, I will be posting the full blog posts at jedelman8.github.io along with ONLY the excerpt at jedelman.com. When you go to continue reading from the excerpt, you’ll then be redirected to the new site. Over time, I really Continue reading
Over the past few years, I’ve written quite a bit about SDN and more recently more about what can be done today with existing products, APIs, and tools in terms of improving operational efficiencies. Most of the examples have leveraged modern network devices that have some type of API because it streamlines how to integrate with 3rd party systems be it a custom application or a platform like Ansible (a platform that I’ve written about frequently). I’ve posted examples here and there on GitHub on these topics, but nothing that starts from the ground up.
With that in mind, I’ve recently created a new GitHub project that walks through step by step on how to get Ansible installed and specifically up and running ready to automate Cisco Nexus switches. Note: In full transparency, I was compensated by Cisco for this particular project. It was a no-brainer since I was already doing similar work over the past several months. That said, going forward it would be great to get others involved in any capacity from writing docs to writing code.
The README in the GitHub project repository outlines exactly how to get started. There Continue reading
If you have ever worked with Ansible, it’s almost a guarantee that you have used their online docs to figure out what parameters a given module supports, how they should be used, or what their defaults are. Over the past few weeks, I’ve been working on a few custom modules and was trying to find a way to generate web docs for them, and have them locally accessible or easily posted to GitHub.
Ansible offers a way to “make webdocs,” but it generates the complete module inventory and truth be told, I didn’t get this work for my custom modules, so I figured I would explore a “simplified” way — a way that should be able to generate docs as needed for one or more modules on an as needed basis.
The outcome was the creation of an Ansible module and Jinja2 template that automatically generates a markdown file (that can then be viewed or posted anywhere).
The modules you’ve built or are local to your machine (even Ansible core modules) that you want to generate a web doc for must be documented according to Ansible standards. That’s the only major requirement.
From there, Continue reading
The way in which networks are configured, deployed, and managed is changing. The network industry is in a shift from managing devices box by box via the CLI to having more centralized ways to manage and deploy devices. While the CLI isn’t going away anytime soon, we can look at the two operational models that are gaining traction within the network community.
SDN controllers do two major things that increase operational efficiencies. They offer a central point of management and visibility for the network team, but also offer a single point of integration for 3rd party systems – these systems could be anything from cloud management platform, monitoring or automation systems, to native business applications. Note: even when there are controllers being used by a human, there is risk. There is the risk of clicking the wrong button, forgetting the order of operations of which buttons needs to be clicked, etc. This doesn’t go away. Change control windows still have risk.
We’ve also seen an increased amount of focus on the intersection of DevOps and networking. I’m really referring to DevOps automation tools and the network. For example, Puppet announced $40M in funding in June Continue reading
We’ve heard a lot of Software Defined Networking (SDN), Open Networking, APIs, and policy models over the past few months (and years). There are days where it’s sickening to hear the term SDN, but even on those darkest days, the reality is that the network industry has a bright and open future. In this post, I’m going to share a list of networking projects that I’m aware of that are not only open, but also open source. It is definitely eye opening and extremely positive to see so much open source activity in the network industry.
Edit/Note: updated list can be found here on GitHub. Feel free to issue a pull request to add or modify the list.
OpenDaylight (ODL) – established in April 2013 is an open source Software Defined Networking (SDN) controller platform(s). There are different controller platforms for different use cases.
OpenFlow (OF) – established in the late 2000s, the OpenFlow 1.0 release launched in December 2009. The Open Networking Foundation took over the development (not actually coding) of OpenFlow when ONF formed in late March / early April in 2010.
Open vSwitch (OVS) – established in mid to late 2009 by the Nicira team to Continue reading