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.
The initial module of the course covers the big picture:
- Network automation services you might need
- Reusable components within these services
- Data sources (databases, text files… ) and single source of truth
- Data collection systems
- Monitoring and orchestration
We’ll prepare for our journey by revisiting a few oft-ignored truths:
- Learn to walk before you try to run - start with read-only access
- Don’t try to boil the ocean - solve one small problem at a time
- Create reusable building blocks instead of humongous conglomerates of code
- Get executive sponsorship and professional help
The non-programmers in the audience will also appreciate these topics:
- The need for computational thinking
- You’ll get lost without source code control and versioning
- Refactoring is inevitable - get used to it
- Error handling and unit tests are your friends
In the hands-on part of the course you’ll build your own lab, either using virtual devices or physical gear. If you decide to go with the virtual device approach, you can choose between Arista vEOS, Cisco VIRL, Cisco CSR, Cumulus VX, Juniper vSRX or Juniper vMX.
You’ll also get familiar with Git, create your own Github account and create your own exercises repository.
The guest speakers in this module include:
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.
To master the basics of network automation and network programmability watch these webinars, videos and presentations:
- Introduction to Network Automation (1 hour 50 minutes)
- Getting Started with Network Automation (50 minutes)
- A Network Automation Journey (1 hour 20 minutes)
- Design Your Network Automation Systems (1 hour 40 minutes)
Next step: The tools we'll use:
- To understand why we'll use Git and Ansible during the hands-on assignments, watch the Network Automation Tools webinar (2 hours).
- Trying to figure out which tool to use? Selecting the right tool for the job (1 hour 15 minutes) will definitely help you.
- Haven't used Git before? Watch the Learn Git presentation (1 hour 40 minutes).
You'll also have to build your own lab, install Ansible, and check that you can reach the devices in your lab from your Ansible host/VM. To get familiar with simple Ansible operations, watch the Using Ansible section from the Ansible for Networking Engineers online course (25 minutes).
Additional recommended materials
You might want to get familiar with Vagrant, VirtualBox and Git. Here are a few links to get you started:
To understand how Git really works (beyond the three basic commands) read at least the first few chapters of the Pro Git book.
It also wouldn't hurt to get familiar with Python. These (free) online classes should help you get started:
Finally, to get in proper mindset, listen to these Software Gone Wild episodes (each one is ~1 hour long)
- Becoming a programmer with Elisa Jasinska
- Network Automation Tools with Jason Edelman
- Network Programmability with David Gee
- Open-Source Network Management tools
- More Open-Source Network Management tools
Recordings of live sessions
Course introduction and logistics
- Course Introduction - September 2017
- Course Introduction - January 2017
- Course Introduction - February 2018
Getting started with network automation (January 2017)
A journey to network automation (September 2017)
- Automating Firewall Rules
- Scaling to 100 Routers
- Undead Routers
- Idempotency and Dry Runs
- Data Is Key
- Heroes, Conclusions and Answers
- Journey to Automation (PDF)
Design your network automation system (January 2017)
Select the right tool for the job (September 2017)
Network Infrastructure as Code (February 2018)
- Automating Cloud Infrastructure
- Network Infrastructure as Code
- Introduction to Using Ansible in Network Automation
- Network Infrastructure as Code - Demo
Security and Reliability (February 2018)
- Securing a Network Automation Solution
- Increasing Reliability of a Network Automation Solution
- Ansible Vault
- Slide Deck: Security and Reliability (PDF)
Whiteboarding and discussion questions