An Introduction to Network
Programmability and Automation
Prepared by : Albert Suwandhi
Albert Suwandhi
Certifications :
• Cisco CCNA and CCNP - Enterprise
• Mikrotik MTCRE and MTCTCE
• AWS Certified Solution Architect – Associate
• Azure Fundamentals
GitHub : https://github.com/albertsuwandhi
LinkedIn : https://id.linkedin.com/in/albertsuwandhi
SlideShare : https://www.slideshare.net/albertsuwandhi
Telegram : @albertsuwandhi
5/28/2020 3
DISCLAIMER
• I AM NOT AN EXPERT
• I AM STILL LEARNING
The Old Network
5/28/2020 4
Network Nowadays
5/28/2020 5
The Four Ages of Networking
5/28/2020 6
The New Infrastructure Stack
5/28/2020 7
Programmability Skills
5/28/2020 8
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
Why we need to automate?
5/28/2020 10
Benefits of Network Automation
5/28/2020 11NetOps Meets DevOps: The State of Network Automation, 2018
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
Let us just see a simple use case applicable to
our network
5/28/2020 13
We won’t discuss all of them 
Example Use Case
5/28/2020 14
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
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
How about Logging? Use centralized logging
5/28/2020 17
Log Example
5/28/2020 18
Dashboard Example
5/28/2020 19
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
Learn More about Network Automation
5/28/2020 21
Learn More about Network Automation
5/28/2020 22
https://developer.cisco.com/netdevops/live/
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
There's a "works" in "networks", and that has
never been as important as today.
5/28/2020 24
Thanks
5/28/2020 25

Intro to Network Automation

  • 1.
    An Introduction toNetwork Programmability and Automation Prepared by : Albert Suwandhi
  • 2.
    Albert Suwandhi Certifications : •Cisco CCNA and CCNP - Enterprise • Mikrotik MTCRE and MTCTCE • AWS Certified Solution Architect – Associate • Azure Fundamentals GitHub : https://github.com/albertsuwandhi LinkedIn : https://id.linkedin.com/in/albertsuwandhi SlideShare : https://www.slideshare.net/albertsuwandhi Telegram : @albertsuwandhi
  • 3.
    5/28/2020 3 DISCLAIMER • IAM NOT AN EXPERT • I AM STILL LEARNING
  • 4.
  • 5.
  • 6.
    The Four Agesof Networking 5/28/2020 6
  • 7.
    The New InfrastructureStack 5/28/2020 7
  • 8.
  • 9.
    Network Programmability Network programmabilityis 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
  • 10.
    Why we needto automate? 5/28/2020 10
  • 11.
    Benefits of NetworkAutomation 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 justsee a simple use case applicable to our network 5/28/2020 13 We won’t discuss all of them 
  • 14.
  • 15.
    Some task wehave 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 usea 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
  • 17.
    How about Logging?Use centralized logging 5/28/2020 17
  • 18.
  • 19.
  • 20.
    Simple Steps toGetting 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
  • 21.
    Learn More aboutNetwork Automation 5/28/2020 21
  • 22.
    Learn More aboutNetwork Automation 5/28/2020 22 https://developer.cisco.com/netdevops/live/
  • 23.
    What’s Next? • Builda 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
  • 25.