9. Network Programmability
Network programmability is a set of tools to deploy, manage, and
troubleshoot a network device. A programmability-enabled network is
driven by intelligent software that can deal with a single node or a
group of nodes or even or address the network a single unified
element.
5/28/2020 9
*It doesn’t have to be python
11. Benefits of Network Automation
5/28/2020 11NetOps Meets DevOps: The State of Network Automation, 2018
12. Why Network Programmability
• Running network infrastructure as code is not something cliché anymore. It’s real and
necessary. When we have more devices in the network, automation is the only way to
avoid human error. However, automation can bring complexity. And one mistake in CLI
may bring down only one device, while one mistake in automation platform can be
propagated quickly to the entire network
• Try to build our automation skills slowly: starting with Level 1, task specific automation,
where we can write simple code to communicate to network devices using various APIs
to execute certain task. Then move up to Level 2 by using platform like Ansible and its
playbook to execute series of task to complete one workflow. Continue doing this until
we reach Level 5 automation.
5/28/2020 12
13. Let us just see a simple use case applicable to
our network
5/28/2020 13
We won’t discuss all of them
15. Some task we have to do related to network
• Inventory Network Devices
• Backup Configuration
• Get VLAN Information
• Set Common Configs. Ex : change SNMP Credentials
• etc
If we only have a few devices it will be OK. How if we have hundreds to
thousands of device? Log in into the devices one by one to do the task?
5/28/2020 15
16. We will use a simple code to do the repetitive tasks
• Inventory Network Devices
• Backup Configuration
• Get VLAN Information
• Set Common Config. Ex : change SNMP Credentials
5/28/2020 16
https://github.com/albertsuwandhi/Cisco-Tools
I just use a few common libraries : Paramiko, Netmiko, TextFSM, etc
20. Simple Steps to Getting Started
STEP 1: Make the Case for Automation
STEP 2: Identify Business Processes That Can Benefit
STEP 3: Map to the Network Infrastructure
STEP 4: Make a Plan and Start Simple
STEP 5: Emphasize the Human Element
STEP 6: Use the Right Tools to Leverage the Benefits of Automation
5/28/2020 20
22. Learn More about Network Automation
5/28/2020 22
https://developer.cisco.com/netdevops/live/
23. What’s Next?
• Build a GUI/Dashboard? (I am not good at it )
• Explore more network automation libraries : PyATS, NAPALM, Nornir, etc
• Explore and Use “Ansible”
• Logging with ELK/Splunk
• Running containers on our switches?
• Cloud Networking
• … and many others interesting topics to be explored together
5/28/2020 23
24. There's a "works" in "networks", and that has
never been as important as today.
5/28/2020 24