From Building Network Automation Solutions
At a Glance
- High-intensity interactive online course;
- Jump-start your network automation career;
- Hands-on experience working on a solution to your own problem;
- 9 module course spread across ~3 months;
- Live discussion and guest speaker sessions;
- Design and coding assignments and group work;
- Final course completion certificate.
One of the highlights of the Building Network Automation Solutions course are the guest speakers: industry experts talking about emerging technologies, use cases, or their deployment and operational experiences.
List of modules
Dirk Feldhaus will describe how to automate service deployment with Ansible within a network fabric to make the implementation faster, more consistent and less error prone. His solution deploys a new customer environment within a Cisco ACI fabric including a tenant, VRF, bridge domains, application profiles, endpoint groups, etc.
During his presentation he'll show you how he used YAML to represent an abstract model of the components of his environment, standard Ansible modules to configure these components, and Jinja for customizing configuration steps that are not covered by standard modules.
Mark Prior started the Spring 2018 course describing his network automation journey, and the automation projects he completed in recent years using open-source tools like Ansible, Git, Jenkins and Slack.
In September 2017 Patrick Ogenstad, the guest speaker in the introductory session, talked about his journey to network automation, what got him started as well as key takeaways and lessons learned along the way.
In January 2017 Elisa Jasinska (Bigwave IT) gave an overview on how to approach your automation and orchestration strategy. She described how you could:
- Split your automation challenge into numerous small automation services;
- Decompose each automation service into smaller components, and identify common components that could be reused across many services;
- Design your network automation systems;
- Create a single source of truth for your automation solution;
- Set up data collection and monitoring systems;
- Integrate individual services into an orchestration solution.
Network automation is becoming more widely, if grudgingly accepted. However, this acceptance has not spread much beyond initial configuration, and there are genuine reasons why automation isn't easy to adopt. With ideas such as BGP unnumbered, the domain of network configuration can be significantly simplified. But what about the life of a network operator after the initial configuration ? How do we automate validation and troubleshooting ?
Dinesh Dutt, the guest speaker in September 2017 course, explained why we need new tools to supplant existing network troubleshooting tools, and described the new technologies and tools being developed. He concluded his presentation with a deep dive into NetQ, the tool Dinesh had been working on for over a year.
Scott Lowe started his transition from an infrastructure engineer focused on storage and virtualization into full-stack engineer familiar with open-source software in 2012. He started by exploring the intricacies of Git and GitHub and continued the journey by researching the capabilities of Open vSwitch, LibVirt, etcd,Terraform, Vagrant/VirtualBox, Docker and Ansible.
In spring 2017 course he focused on lessons learned while using Git/GitHub. We also spent a significant amount of time talking about his journey toward becoming an open-source-aware full-stack engineer.
In autumn 2017 course David Barroso (the author of SDN Internet Router, co-author of NAPALM, and author of YANG and OpenConfig support in NAPALM) talked about OpenConfig support in NAPALM and demonstrated how you can use YANG data models to modify device configurations and get structured operational data in a multi-vendor environment.
In spring 2017 course Marcel Wiget introduced OpenConfig and explained how you can use it for configuration and telemetry. He concluded the presentation with with practical examples demonstrating the capabilities of Ansible networking modules in combination with OpenConfig/YANG to provision Juniper Networks routers and switches.
In their presentation, Carly Stoughton and JP Senior will go deep into intent-based networking technology and cover data models, validations, graph database queries, jinja rendering and how abstraction removes the heavy lifting in terms of distributed state management, change management and real time notifications. They’ll illustrate these concept by providing a simple-to-use deployment automation and ongoing analytics of one of the most complex data center technologies - multi-vendor EVPN control plane using VXLAN encapsulation.
Jeremy Stretch explained what drove him to create NetBox, a new IPAM/DCIM tool, the challenges he encountered in defining the data models, and how the API can be used to drive network automation. Or as he said:
Network automation is great, but it can't happen unless you have some way to model what your network should look like. NetBox, one of the few open-source tools focused on networking engineers' needs was developed to function as the "source of truth" for a network, covering all aspects of IP address and infrastructure management.
David Barroso, the author of NAPALM and SDN Internet Router, described how you can use NAPALM to create a vendor-independent network automation solution in spring 2017 course. His presentation included these topics:
- The challenges of working with vendor automation libraries and data models;
- Abstracting vendor API with NAPALM;
- Abstracting vendor configuration syntax with Jinja2 templates;
- Simplifying the configuration management workflow with NAPALM;
- Data-driven configurations
- Using database backend with Ansible and NAPALM;
- Simplifying network operations by abstracting sites and services.
When you automate, you do want to make sure that you are not automating bugs and mistakes too, thereby making them spread across your environment. That is why you want to have a proper testing pipeline in place! In his presentation, Gabriele Gerbino will give you some practical examples on how to build a simple testing pipeline by using Travis-CI and VMs/containers to make sure that you can sleep better once you hit the DEPLOY red button.
In a prequel to the Spring 2018 course on February 6th, David Barroso explained how you can use NAPALM to validate whether the actual state of a network device meets its desired state.
Spring and Autumn 2017
In March 2017 Pete Lumbis explained how you can use the software concept of automated testing to bring a faster rate of change with a greater degree of success. He described the tools required to make automated testing a reality, and how automated testing can be easily folded into a team-wide change management system.
The attendees of spring 2017 session wanted to get more details about the Continuous Integration pipeline Pete Lumbis set up with GitLab and Vagrant, and he agreed to come back and do a deep dive into CI with GitLab in autumn 2017 course.
Most networks operators don't have the luxury of deploying in green field scenarios. In his presentation, Nick Hilliard will examine how to take a practical, hands-on approach to network automation for live networks, starting at business analysis, product abstraction and data modeling, and ending up with practical automation of live configurations.
In autumn 2017 Thomas Wacker (UBS AG) described how UBS embraced automation for the currently ongoing data center network rebuild. He started with prerequisites and key objectives, described the architecture, showcased the toolchain in use today, and explained the phases of build, test, documentation and ongoing operations.
In the conclusion, he went through the benefits of UBS approach, the next immediate goals, and how automation will keep changing the networking industry.
In spring 2017 Ryan Heffernan and Mat Wood (both from Facebook) discussed lessons learned from automating an enterprise network environment within a web-scale software company.
Mark Prior started the Spring 2018 course describing his network automation journey, and the automation projects. He also described his take on network infrastructure as code and the solution he used in a production-grade private cloud deployment.
What Is Event-Driven Automation?
On March 20th 2018 David Gee dived deep into event-driven network automation. As he explains the challenge:
When it comes to running infrastructure and infrastructure services, a lot of the decision making is human based. Someone reads a ticket, someone decides what to do. Someone gets alerted to an event and that someone does something about it. This involvement causes friction in the smooth running nature of automated processes. Fear not! Something can be done about it.
We all know the stories of ITIL and rigid process management and David explained how event-driven automation could be made reality even with strict and rigid controls, resulting in an environment that reacts automatically to stimuli from your services and infrastructure. We discussed what events are, when they're important, how to normalize them, and what we can do when we have identified an event positively. David also described commercial vs open source options along with their pros and cons.
Finally, David demonstrated syslog and ICMP powered event driven automation in action, and provided links to usable code samples so you can reproduce the demos in your own environment.
Event-Driven Automation with Salt
On February 27th 2018, Mircea Ulinic described Salt, an open source, general-purpose event-driven automation framework that is used by very large companies around the globe for various operations including: cloud provisioning, bringing systems up to a desired configuration, schedule commands, securely transfer files, or coordinate complex multi-systems orchestrations.
Mircea explained how to get started with Salt and set up an environment for event-driven network automation and orchestration. The cross-platform capabilities of SALT are relying on NAPALM which you should already be familiar with. He described the recommended steps to install Salt, and the key points to remember, did a brief introduction to the CLI syntax, and acquainted you with the advanced configuration management capabilities. Debugging is always very important - particularly during development, so he covered that as well, and explored the features Salt provides for debugging.
In the end, Mircea briefly discussed event-driven infrastructure that we can use to trigger fully automatic configuration changes in response to external or internal network events.
David Barroso will demonstrate Nornir: a pluggable multi-threaded framework with inventory management that makes it easier to operate a collections of devices with tons of data than server-focused tools like Ansible. Nornir abstracts the complexity of dealing with data and multithreading so you can focus on solving your automation needs whichever they are.
We will learn how easy it is to write Nornir code even if you're not proficient with Python, how easy it is to integrate with other frameworks like flask or click, and how to leverage your text editor features for autocompletion, easy access to documentation, or even debugging and troubleshooting. As always - all through hands-on examples :)
The following guest speakers talked about network automation tools:
- Scott Lowe introduced Git and GitHub;
- Pete Lumbis explained how you can do continuous integration with GitLab CI;
- Jeremy Stretch described NetBox - a network-focused IPAM/CMDB system;
- Mitja Robas presented how you can use Chef (and to a lesser extent Puppet) for network automation;
- Mircea Ulinic talked about network automation with Salt.