SlideShare a Scribd company logo
1 of 42
Download to read offline
Copyright © 2023 - Jeremy Schulman
Design Driven
Network Assurance
Jeremy Schulman
Senior Director, Major League Baseball
Copyright © 2023 - Jeremy Schulman
Agenda
● Motivation
● Demos from Deployments
● Some Theory
● Practitioners Details
● Q & A
2
My hope for your takeaway:
Consider different approach
towards network automation
and Infrastructure as Code
Spark ideas how you
approach your next project
For even more ….
Copyright © 2023 - Jeremy Schulman
Background
and
Motivation
● Multi-site enterprise network
● Multiple network vendors
● Multiple networking domains
● Complex network edge
requirements
● Quickly adapt to "in field"
project changes
● Challenging timelines due to
external factors
- Any network design
- Any vendors
- Greenfield projects
- Brownfield projects
- "Snowflakes"
- Agile
3
Copyright © 2023 - Jeremy Schulman
Network Quality Assurance
Ensure the network is operating as expected and
report any anomalies with as much context as
possible maximizing situational awareness.
For any given network we define a design from
which we automatically derive checks. We use
these design checks to validate the current state
of the network.
4
Design
Design
Checks
Validate
Network
Network
change
The checks are automatically recomputed when
we make changes to the design!
Copyright © 2023 - Jeremy Schulman
Design "Compiler"
● Builds the design and
identifies design errors
● Generates the checks for
each device, executed later
by a validation engine
● Generates design reports
● Optionally generates device
configurations
5
Design
Design
Compiler
Checks
Configs
Design
Errors
Reports
netcad
Copyright © 2023 - Jeremy Schulman
Network Validation
Quick Demo
6
Executing the design checks against the live
network and reporting network assurance
results
netcam
Copyright © 2023 - Jeremy Schulman
Four Critical Questions …
7
1. How do we know we are
building the right network?
2. How do ensure the network is
configured correctly?
3. How do we ensure the network
is operationally correct?
netcam
netcad
netcad
netcam
process
netcad
Copyright © 2023 - Jeremy Schulman
The Fourth Critical Question
4. How do we advance the
transformation of culture,
process, and automation? leadership
resources
"care"
process products
8
Copyright © 2023 - Jeremy Schulman
Demo Time!
Copyright © 2023 - Jeremy Schulman
NetCad + NetBox Integration
Use netcad to design a site network
Use netcad-netbox plugin to push the site design into
NetBox
● Sites
● Devices
● Interfaces
● IP Addresses
● Link-Aggregation Groups
● Cabling
10
Copyright © 2023 - Jeremy Schulman
Copyright © 2023 - Jeremy Schulman
Check Network Pre-Hardware Swap
Use netcad to build network checks
Use netcam to perform network checks
Observe work that needs to be completed
● Swap network hardware
● Transceiver to be swapped
● Interfaces to be cabled
12
Copyright © 2023 - Jeremy Schulman
Copyright © 2023 - Jeremy Schulman
Check Config Deployment
Use netcad to build device configurations
Use netcam to config-check for differences on the live
network device
● See exactly what changes will be made before they are made
● Fully automated with rollback
● Captures diff-files
14
Copyright © 2023 - Jeremy Schulman
Copyright © 2023 - Jeremy Schulman
Check Network Status after Deploy
On-site technician has swapped hardware
Need to validate operational state
Need to identify any anomalies to resolve
● Found missing cabling
● Power systems not online yet
16
Copyright © 2023 - Jeremy Schulman
Copyright © 2023 - Jeremy Schulman
What is Design Driven
Network Assurance?
Copyright © 2023 - Jeremy Schulman
What is a Design?
19
The set of devices
networked together
The composition of
design services that each
device uses to validate
the state of the network
Copyright © 2023 - Jeremy Schulman
Network Quality Assurance Matrix
20
Topology VLANs PTP BGP-Peer Multicast
dev1
dev2
dev3
dev4
dev5
dev6
dev7
Copyright © 2023 - Jeremy Schulman
Network Check Results … Pass/Fail
21
Topology VLANs PTP BGP-Peer Multicast
dev1
dev2
dev3
dev4
dev5
dev6
dev7
Copyright © 2023 - Jeremy Schulman
dev3 is Operating as Expected
22
Topology VLANs PTP BGP-Peer Multicast
dev1
dev2
dev3
dev4
dev5
dev6
dev7
Copyright © 2023 - Jeremy Schulman
Multicast is Operating as Expected
23
Topology VLANs PTP BGP-Peer Multicast
dev1
dev2
dev3
dev4
dev5
dev6
dev7
Copyright © 2023 - Jeremy Schulman
The Network is
Operating as Expected
24
Topology VLANs PTP BGP-Peer Multicast
dev1
dev2
dev3
dev4
dev5
dev6
dev7
Copyright © 2023 - Jeremy Schulman
Case Study:
Precision Time Protocol
Copyright © 2023 - Jeremy Schulman
Case Study: PTP w/primary+backup GM
26
(G) - Grand Master - Clock origin
(M) - Master - transmits clock
(S) - Slave - receives clock
Copyright © 2023 - Jeremy Schulman
PTP - Design Report
27
The design describes the expected PTP state(s) for each device and interface
What is the actual state of PTP in this network ?
netcad
Copyright © 2023 - Jeremy Schulman
PTP Network Check Report
28
Site where PTP service is NOT working as expected.
Report shows informational and potential corrective actions.
netcam
Copyright © 2023 - Jeremy Schulman
PTP Network Check Report
29
Site where PTP service is working as expected
netcam
Copyright © 2023 - Jeremy Schulman
Design Driven Network
Assurance - Python "SDK"
Copyright © 2023 - Jeremy Schulman
Python First Approach
● Each design consists of Python
files that use the netcad-cam
SDK toolkit
● Plugins to utilize specific NOS
and design-services
● Multiple python packages /
repositories
● Approach designed for plugin /
extensibility
Copyright © 2023 - Jeremy Schulman
Benefits of Python Approach
● Leverage Python ecosystem
○ packages, IDEs, debuggers, and best practices
● Async I/O for concurrency and fast execution !!!
● "NoYAML"
● Benefits Junior network automation engineers
○ environment to learn and develop skills
● Flexible - Handle network design business logic / "snowflakes"
32
Copyright © 2023 - Jeremy Schulman
Software Engineering Best Practices
○ Requirement gathering
○ Focus on documentation
○ Code versioning
○ Peer reviews
○ Learn collaborative development
○ Using a debugger
○ Writing test cases
○ Other systems integration
○ Large project composition
○ Not constrained by DSL
33
Copyright © 2023 - Jeremy Schulman
Challenges of Python Approach
● Python learning curve
● Software tooling learning curve
● Having dedicated "off project" time to practice
a new skill
● Expectation setting with stakeholders
○ developing solutions vs. going Cowboy on the
CLI
● Working collaborative vs. Cowboy | Hero
● Focusing on non-coding aspects that take time
○ documentation, testing, and software
maintenance 34
Any change is hard
Affects people,
process, and culture
Be patient
Copyright © 2023 - Jeremy Schulman
Summary ● Design is code - version
controlled, reviewed, lifecycle
● Design checks are quality
assurance tests that provide
operational coverage
● Encourages practice to keep
Designs "up to date" by the
nature of running the
network by Design
● Builds skill sets to manage
IaC based systems
Design Driven Network
Assurance
35
Copyright © 2023 - Jeremy Schulman
Thank you!
Jeremy Schulman
Senior Director, Major League Baseball
Copyright © 2023 - Jeremy Schulman
Q&A
Meet Up
Copyright © 2023 - Jeremy Schulman
Backup Slides
Copyright © 2023 - Jeremy Schulman
Design Services - Reusable Building Blocks
● Network Vendor/System agnostic
● Defines design validation rules so that we
cannot build "invalid" designs
● Provides service specific build automations
● Defines collections of checks that will be
generated for each device using the design
service
● Can be general purpose such as "topology"
and "vlans"
● Can be bespoke to enterprise specific needs
39
Validation
rules
Build
automations
Check
collections
Design-Service XYZ
Copyright © 2023 - Jeremy Schulman
Design Automation - VLAN Port Assignments
40
Acc Switch 1 Acc Switch 3
Agg Switch
Vlans A, B, C Vlans A, D, E, F
ALL ALL
Acc Switch 2
Vlans A, B, D, E
ALL
PEER
PEER PEER
ALL
Indicates this port
should be configured
will all VLANs defined
in the design for this
device
PEER
Indicates this port
should be configured
with the same VLANs
used by the connected
interface (peer)
Router
ALL
PEER
Copyright © 2023 - Jeremy Schulman
Design Service Validation Abstraction Example
41
Vlans
Design Service
Switchports Vlans
EOS
vlans-ds
IOS-XE
vlans-ds
NX-OS
vlans-ds
<OS …>
vlans-ds
Each OS driver will implement the vlans design-service "switchports" and
"vlans" checks, specific to their capabilities and access (API vs. SSH, etc)
Thank You!

More Related Content

Similar to Design Driven Network Assurance with Python SDK

Discover the Power of ThousandEyes on Your Meraki MX
Discover the Power of ThousandEyes on Your Meraki MXDiscover the Power of ThousandEyes on Your Meraki MX
Discover the Power of ThousandEyes on Your Meraki MXThousandEyes
 
Device Programmability with Cisco Plug-n-Play Solution
Device Programmability with Cisco Plug-n-Play SolutionDevice Programmability with Cisco Plug-n-Play Solution
Device Programmability with Cisco Plug-n-Play SolutionCisco DevNet
 
BRKSEC-3771 - WSA with wccp.pdf
BRKSEC-3771 - WSA with wccp.pdfBRKSEC-3771 - WSA with wccp.pdf
BRKSEC-3771 - WSA with wccp.pdfMenakaDevi14
 
Automating "Network Ready for Use" with pytest
Automating "Network Ready for Use" with pytestAutomating "Network Ready for Use" with pytest
Automating "Network Ready for Use" with pytestJeremy Schulman
 
Assessing Network Readiness
Assessing Network ReadinessAssessing Network Readiness
Assessing Network ReadinessrAVe [PUBS]
 
Ports-and-Adapters Architecture for Embedded HMI
Ports-and-Adapters Architecture for Embedded HMIPorts-and-Adapters Architecture for Embedded HMI
Ports-and-Adapters Architecture for Embedded HMIBurkhard Stubert
 
Bluemix Local – Relay Options and Challenges
Bluemix Local – Relay Options and Challenges Bluemix Local – Relay Options and Challenges
Bluemix Local – Relay Options and Challenges Eduardo Patrocinio
 
“Parallelizing Machine Learning Applications in the Cloud with Kubernetes: A ...
“Parallelizing Machine Learning Applications in the Cloud with Kubernetes: A ...“Parallelizing Machine Learning Applications in the Cloud with Kubernetes: A ...
“Parallelizing Machine Learning Applications in the Cloud with Kubernetes: A ...Edge AI and Vision Alliance
 
Protecting data with CSI Volume Snapshots on Kubernetes
Protecting data with CSI Volume Snapshots on KubernetesProtecting data with CSI Volume Snapshots on Kubernetes
Protecting data with CSI Volume Snapshots on KubernetesDoKC
 
6th SDN Interest Group Seminar - Session6 (131210)
6th SDN Interest Group Seminar - Session6 (131210)6th SDN Interest Group Seminar - Session6 (131210)
6th SDN Interest Group Seminar - Session6 (131210)NAIM Networks, Inc.
 
Getting Started with ThousandEyes Proof of Concepts
Getting Started with ThousandEyes Proof of ConceptsGetting Started with ThousandEyes Proof of Concepts
Getting Started with ThousandEyes Proof of ConceptsThousandEyes
 
Powersoft19 Overview - 2013
Powersoft19 Overview - 2013Powersoft19 Overview - 2013
Powersoft19 Overview - 2013Huzaifa Saadat
 
idsecconf2023 - Neil Armstrong - Leveraging IaC for Stealthy Infrastructure A...
idsecconf2023 - Neil Armstrong - Leveraging IaC for Stealthy Infrastructure A...idsecconf2023 - Neil Armstrong - Leveraging IaC for Stealthy Infrastructure A...
idsecconf2023 - Neil Armstrong - Leveraging IaC for Stealthy Infrastructure A...idsecconf
 
DevOpsDays Taipei 2017 從打鐵到雲端
DevOpsDays Taipei 2017 從打鐵到雲端DevOpsDays Taipei 2017 從打鐵到雲端
DevOpsDays Taipei 2017 從打鐵到雲端Hung-Yen Chen
 
It nv51 instructor_ppt_ch11
It nv51 instructor_ppt_ch11It nv51 instructor_ppt_ch11
It nv51 instructor_ppt_ch11newbie2019
 
NetCom learning webinar start your network foundations with ccna(handouts)
NetCom learning webinar start your network foundations with ccna(handouts)NetCom learning webinar start your network foundations with ccna(handouts)
NetCom learning webinar start your network foundations with ccna(handouts)Tuan Yang
 
ITN_Module_17.pptx
ITN_Module_17.pptxITN_Module_17.pptx
ITN_Module_17.pptxssuserf7cd2b
 
Mris network architecture proposal r1
Mris network architecture proposal r1Mris network architecture proposal r1
Mris network architecture proposal r1Craig Burma
 

Similar to Design Driven Network Assurance with Python SDK (20)

Discover the Power of ThousandEyes on Your Meraki MX
Discover the Power of ThousandEyes on Your Meraki MXDiscover the Power of ThousandEyes on Your Meraki MX
Discover the Power of ThousandEyes on Your Meraki MX
 
Device Programmability with Cisco Plug-n-Play Solution
Device Programmability with Cisco Plug-n-Play SolutionDevice Programmability with Cisco Plug-n-Play Solution
Device Programmability with Cisco Plug-n-Play Solution
 
BRKSEC-3771 - WSA with wccp.pdf
BRKSEC-3771 - WSA with wccp.pdfBRKSEC-3771 - WSA with wccp.pdf
BRKSEC-3771 - WSA with wccp.pdf
 
Automating "Network Ready for Use" with pytest
Automating "Network Ready for Use" with pytestAutomating "Network Ready for Use" with pytest
Automating "Network Ready for Use" with pytest
 
Assessing Network Readiness
Assessing Network ReadinessAssessing Network Readiness
Assessing Network Readiness
 
Project
ProjectProject
Project
 
Ports-and-Adapters Architecture for Embedded HMI
Ports-and-Adapters Architecture for Embedded HMIPorts-and-Adapters Architecture for Embedded HMI
Ports-and-Adapters Architecture for Embedded HMI
 
Bluemix Local – Relay Options and Challenges
Bluemix Local – Relay Options and Challenges Bluemix Local – Relay Options and Challenges
Bluemix Local – Relay Options and Challenges
 
“Parallelizing Machine Learning Applications in the Cloud with Kubernetes: A ...
“Parallelizing Machine Learning Applications in the Cloud with Kubernetes: A ...“Parallelizing Machine Learning Applications in the Cloud with Kubernetes: A ...
“Parallelizing Machine Learning Applications in the Cloud with Kubernetes: A ...
 
Protecting data with CSI Volume Snapshots on Kubernetes
Protecting data with CSI Volume Snapshots on KubernetesProtecting data with CSI Volume Snapshots on Kubernetes
Protecting data with CSI Volume Snapshots on Kubernetes
 
6th SDN Interest Group Seminar - Session6 (131210)
6th SDN Interest Group Seminar - Session6 (131210)6th SDN Interest Group Seminar - Session6 (131210)
6th SDN Interest Group Seminar - Session6 (131210)
 
Getting Started with ThousandEyes Proof of Concepts
Getting Started with ThousandEyes Proof of ConceptsGetting Started with ThousandEyes Proof of Concepts
Getting Started with ThousandEyes Proof of Concepts
 
Powersoft19 Overview - 2013
Powersoft19 Overview - 2013Powersoft19 Overview - 2013
Powersoft19 Overview - 2013
 
idsecconf2023 - Neil Armstrong - Leveraging IaC for Stealthy Infrastructure A...
idsecconf2023 - Neil Armstrong - Leveraging IaC for Stealthy Infrastructure A...idsecconf2023 - Neil Armstrong - Leveraging IaC for Stealthy Infrastructure A...
idsecconf2023 - Neil Armstrong - Leveraging IaC for Stealthy Infrastructure A...
 
DevOpsDays Taipei 2017 從打鐵到雲端
DevOpsDays Taipei 2017 從打鐵到雲端DevOpsDays Taipei 2017 從打鐵到雲端
DevOpsDays Taipei 2017 從打鐵到雲端
 
It nv51 instructor_ppt_ch11
It nv51 instructor_ppt_ch11It nv51 instructor_ppt_ch11
It nv51 instructor_ppt_ch11
 
NetCom learning webinar start your network foundations with ccna(handouts)
NetCom learning webinar start your network foundations with ccna(handouts)NetCom learning webinar start your network foundations with ccna(handouts)
NetCom learning webinar start your network foundations with ccna(handouts)
 
ITN_Module_17.pptx
ITN_Module_17.pptxITN_Module_17.pptx
ITN_Module_17.pptx
 
Network design assignment
Network design assignmentNetwork design assignment
Network design assignment
 
Mris network architecture proposal r1
Mris network architecture proposal r1Mris network architecture proposal r1
Mris network architecture proposal r1
 

More from Network Automation Forum

Automating a World-Class Technology Conference; Behind the Scenes of CiscoLive
Automating a World-Class Technology Conference; Behind the Scenes of CiscoLiveAutomating a World-Class Technology Conference; Behind the Scenes of CiscoLive
Automating a World-Class Technology Conference; Behind the Scenes of CiscoLiveNetwork Automation Forum
 
Network Source of Truth and Infrastructure as Code revisited
Network Source of Truth and Infrastructure as Code revisitedNetwork Source of Truth and Infrastructure as Code revisited
Network Source of Truth and Infrastructure as Code revisitedNetwork Automation Forum
 
Mini-Track: AI and ML in Network Operations Applications
Mini-Track: AI and ML in Network Operations ApplicationsMini-Track: AI and ML in Network Operations Applications
Mini-Track: AI and ML in Network Operations ApplicationsNetwork Automation Forum
 
AutoCon 0 Day Two Keynote: Kireeti Kompella
AutoCon 0 Day Two Keynote: Kireeti KompellaAutoCon 0 Day Two Keynote: Kireeti Kompella
AutoCon 0 Day Two Keynote: Kireeti KompellaNetwork Automation Forum
 
Simplified Troubleshooting through API Scripting
Simplified Troubleshooting through API Scripting Simplified Troubleshooting through API Scripting
Simplified Troubleshooting through API Scripting Network Automation Forum
 
Applying Platform Engineering Principles to On-Premises Network Infrastructure
Applying Platform Engineering Principles to On-Premises Network InfrastructureApplying Platform Engineering Principles to On-Premises Network Infrastructure
Applying Platform Engineering Principles to On-Premises Network InfrastructureNetwork Automation Forum
 
Evolving the Network Automation Journey from Python to Platforms
Evolving the Network Automation Journey from Python to PlatformsEvolving the Network Automation Journey from Python to Platforms
Evolving the Network Automation Journey from Python to PlatformsNetwork Automation Forum
 
A Real-World Approach to Intent-based Networking and Service Orchestration
A Real-World Approach to Intent-based Networking and Service OrchestrationA Real-World Approach to Intent-based Networking and Service Orchestration
A Real-World Approach to Intent-based Networking and Service OrchestrationNetwork Automation Forum
 
Mini-Track: The State of Network Automation
Mini-Track: The State of Network Automation Mini-Track: The State of Network Automation
Mini-Track: The State of Network Automation Network Automation Forum
 
Mini-Track: Challenges to Network Automation Adoption
Mini-Track: Challenges to Network Automation AdoptionMini-Track: Challenges to Network Automation Adoption
Mini-Track: Challenges to Network Automation AdoptionNetwork Automation Forum
 

More from Network Automation Forum (14)

Automating a World-Class Technology Conference; Behind the Scenes of CiscoLive
Automating a World-Class Technology Conference; Behind the Scenes of CiscoLiveAutomating a World-Class Technology Conference; Behind the Scenes of CiscoLive
Automating a World-Class Technology Conference; Behind the Scenes of CiscoLive
 
Mini-Track: Observability
Mini-Track: ObservabilityMini-Track: Observability
Mini-Track: Observability
 
Network Source of Truth and Infrastructure as Code revisited
Network Source of Truth and Infrastructure as Code revisitedNetwork Source of Truth and Infrastructure as Code revisited
Network Source of Truth and Infrastructure as Code revisited
 
Mini-Track: AI and ML in Network Operations Applications
Mini-Track: AI and ML in Network Operations ApplicationsMini-Track: AI and ML in Network Operations Applications
Mini-Track: AI and ML in Network Operations Applications
 
Zero to Automated in Under a Year
Zero to Automated in Under a YearZero to Automated in Under a Year
Zero to Automated in Under a Year
 
Mini-Track: Lessons from Public Cloud
Mini-Track: Lessons from Public CloudMini-Track: Lessons from Public Cloud
Mini-Track: Lessons from Public Cloud
 
AutoCon 0 Day Two Keynote: Kireeti Kompella
AutoCon 0 Day Two Keynote: Kireeti KompellaAutoCon 0 Day Two Keynote: Kireeti Kompella
AutoCon 0 Day Two Keynote: Kireeti Kompella
 
Simplified Troubleshooting through API Scripting
Simplified Troubleshooting through API Scripting Simplified Troubleshooting through API Scripting
Simplified Troubleshooting through API Scripting
 
Applying Platform Engineering Principles to On-Premises Network Infrastructure
Applying Platform Engineering Principles to On-Premises Network InfrastructureApplying Platform Engineering Principles to On-Premises Network Infrastructure
Applying Platform Engineering Principles to On-Premises Network Infrastructure
 
Evolving the Network Automation Journey from Python to Platforms
Evolving the Network Automation Journey from Python to PlatformsEvolving the Network Automation Journey from Python to Platforms
Evolving the Network Automation Journey from Python to Platforms
 
A Real-World Approach to Intent-based Networking and Service Orchestration
A Real-World Approach to Intent-based Networking and Service OrchestrationA Real-World Approach to Intent-based Networking and Service Orchestration
A Real-World Approach to Intent-based Networking and Service Orchestration
 
Mini-Track: The State of Network Automation
Mini-Track: The State of Network Automation Mini-Track: The State of Network Automation
Mini-Track: The State of Network Automation
 
Mini-Track: Challenges to Network Automation Adoption
Mini-Track: Challenges to Network Automation AdoptionMini-Track: Challenges to Network Automation Adoption
Mini-Track: Challenges to Network Automation Adoption
 
AutoCon 0 Day One Keynote: John Willis
AutoCon 0 Day One Keynote: John WillisAutoCon 0 Day One Keynote: John Willis
AutoCon 0 Day One Keynote: John Willis
 

Recently uploaded

Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsAndrey Dotsenko
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
costume and set research powerpoint presentation
costume and set research powerpoint presentationcostume and set research powerpoint presentation
costume and set research powerpoint presentationphoebematthew05
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraDeakin University
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDGMarianaLemus7
 
Science&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdfScience&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdfjimielynbastida
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxnull - The Open Security Community
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
Unlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power SystemsUnlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power SystemsPrecisely
 

Recently uploaded (20)

Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
The transition to renewables in India.pdf
The transition to renewables in India.pdfThe transition to renewables in India.pdf
The transition to renewables in India.pdf
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
costume and set research powerpoint presentation
costume and set research powerpoint presentationcostume and set research powerpoint presentation
costume and set research powerpoint presentation
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning era
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDG
 
Science&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdfScience&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdf
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptxVulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
Unlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power SystemsUnlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power Systems
 

Design Driven Network Assurance with Python SDK

  • 1. Copyright © 2023 - Jeremy Schulman Design Driven Network Assurance Jeremy Schulman Senior Director, Major League Baseball
  • 2. Copyright © 2023 - Jeremy Schulman Agenda ● Motivation ● Demos from Deployments ● Some Theory ● Practitioners Details ● Q & A 2 My hope for your takeaway: Consider different approach towards network automation and Infrastructure as Code Spark ideas how you approach your next project For even more ….
  • 3. Copyright © 2023 - Jeremy Schulman Background and Motivation ● Multi-site enterprise network ● Multiple network vendors ● Multiple networking domains ● Complex network edge requirements ● Quickly adapt to "in field" project changes ● Challenging timelines due to external factors - Any network design - Any vendors - Greenfield projects - Brownfield projects - "Snowflakes" - Agile 3
  • 4. Copyright © 2023 - Jeremy Schulman Network Quality Assurance Ensure the network is operating as expected and report any anomalies with as much context as possible maximizing situational awareness. For any given network we define a design from which we automatically derive checks. We use these design checks to validate the current state of the network. 4 Design Design Checks Validate Network Network change The checks are automatically recomputed when we make changes to the design!
  • 5. Copyright © 2023 - Jeremy Schulman Design "Compiler" ● Builds the design and identifies design errors ● Generates the checks for each device, executed later by a validation engine ● Generates design reports ● Optionally generates device configurations 5 Design Design Compiler Checks Configs Design Errors Reports netcad
  • 6. Copyright © 2023 - Jeremy Schulman Network Validation Quick Demo 6 Executing the design checks against the live network and reporting network assurance results netcam
  • 7. Copyright © 2023 - Jeremy Schulman Four Critical Questions … 7 1. How do we know we are building the right network? 2. How do ensure the network is configured correctly? 3. How do we ensure the network is operationally correct? netcam netcad netcad netcam process netcad
  • 8. Copyright © 2023 - Jeremy Schulman The Fourth Critical Question 4. How do we advance the transformation of culture, process, and automation? leadership resources "care" process products 8
  • 9. Copyright © 2023 - Jeremy Schulman Demo Time!
  • 10. Copyright © 2023 - Jeremy Schulman NetCad + NetBox Integration Use netcad to design a site network Use netcad-netbox plugin to push the site design into NetBox ● Sites ● Devices ● Interfaces ● IP Addresses ● Link-Aggregation Groups ● Cabling 10
  • 11. Copyright © 2023 - Jeremy Schulman
  • 12. Copyright © 2023 - Jeremy Schulman Check Network Pre-Hardware Swap Use netcad to build network checks Use netcam to perform network checks Observe work that needs to be completed ● Swap network hardware ● Transceiver to be swapped ● Interfaces to be cabled 12
  • 13. Copyright © 2023 - Jeremy Schulman
  • 14. Copyright © 2023 - Jeremy Schulman Check Config Deployment Use netcad to build device configurations Use netcam to config-check for differences on the live network device ● See exactly what changes will be made before they are made ● Fully automated with rollback ● Captures diff-files 14
  • 15. Copyright © 2023 - Jeremy Schulman
  • 16. Copyright © 2023 - Jeremy Schulman Check Network Status after Deploy On-site technician has swapped hardware Need to validate operational state Need to identify any anomalies to resolve ● Found missing cabling ● Power systems not online yet 16
  • 17. Copyright © 2023 - Jeremy Schulman
  • 18. Copyright © 2023 - Jeremy Schulman What is Design Driven Network Assurance?
  • 19. Copyright © 2023 - Jeremy Schulman What is a Design? 19 The set of devices networked together The composition of design services that each device uses to validate the state of the network
  • 20. Copyright © 2023 - Jeremy Schulman Network Quality Assurance Matrix 20 Topology VLANs PTP BGP-Peer Multicast dev1 dev2 dev3 dev4 dev5 dev6 dev7
  • 21. Copyright © 2023 - Jeremy Schulman Network Check Results … Pass/Fail 21 Topology VLANs PTP BGP-Peer Multicast dev1 dev2 dev3 dev4 dev5 dev6 dev7
  • 22. Copyright © 2023 - Jeremy Schulman dev3 is Operating as Expected 22 Topology VLANs PTP BGP-Peer Multicast dev1 dev2 dev3 dev4 dev5 dev6 dev7
  • 23. Copyright © 2023 - Jeremy Schulman Multicast is Operating as Expected 23 Topology VLANs PTP BGP-Peer Multicast dev1 dev2 dev3 dev4 dev5 dev6 dev7
  • 24. Copyright © 2023 - Jeremy Schulman The Network is Operating as Expected 24 Topology VLANs PTP BGP-Peer Multicast dev1 dev2 dev3 dev4 dev5 dev6 dev7
  • 25. Copyright © 2023 - Jeremy Schulman Case Study: Precision Time Protocol
  • 26. Copyright © 2023 - Jeremy Schulman Case Study: PTP w/primary+backup GM 26 (G) - Grand Master - Clock origin (M) - Master - transmits clock (S) - Slave - receives clock
  • 27. Copyright © 2023 - Jeremy Schulman PTP - Design Report 27 The design describes the expected PTP state(s) for each device and interface What is the actual state of PTP in this network ? netcad
  • 28. Copyright © 2023 - Jeremy Schulman PTP Network Check Report 28 Site where PTP service is NOT working as expected. Report shows informational and potential corrective actions. netcam
  • 29. Copyright © 2023 - Jeremy Schulman PTP Network Check Report 29 Site where PTP service is working as expected netcam
  • 30. Copyright © 2023 - Jeremy Schulman Design Driven Network Assurance - Python "SDK"
  • 31. Copyright © 2023 - Jeremy Schulman Python First Approach ● Each design consists of Python files that use the netcad-cam SDK toolkit ● Plugins to utilize specific NOS and design-services ● Multiple python packages / repositories ● Approach designed for plugin / extensibility
  • 32. Copyright © 2023 - Jeremy Schulman Benefits of Python Approach ● Leverage Python ecosystem ○ packages, IDEs, debuggers, and best practices ● Async I/O for concurrency and fast execution !!! ● "NoYAML" ● Benefits Junior network automation engineers ○ environment to learn and develop skills ● Flexible - Handle network design business logic / "snowflakes" 32
  • 33. Copyright © 2023 - Jeremy Schulman Software Engineering Best Practices ○ Requirement gathering ○ Focus on documentation ○ Code versioning ○ Peer reviews ○ Learn collaborative development ○ Using a debugger ○ Writing test cases ○ Other systems integration ○ Large project composition ○ Not constrained by DSL 33
  • 34. Copyright © 2023 - Jeremy Schulman Challenges of Python Approach ● Python learning curve ● Software tooling learning curve ● Having dedicated "off project" time to practice a new skill ● Expectation setting with stakeholders ○ developing solutions vs. going Cowboy on the CLI ● Working collaborative vs. Cowboy | Hero ● Focusing on non-coding aspects that take time ○ documentation, testing, and software maintenance 34 Any change is hard Affects people, process, and culture Be patient
  • 35. Copyright © 2023 - Jeremy Schulman Summary ● Design is code - version controlled, reviewed, lifecycle ● Design checks are quality assurance tests that provide operational coverage ● Encourages practice to keep Designs "up to date" by the nature of running the network by Design ● Builds skill sets to manage IaC based systems Design Driven Network Assurance 35
  • 36. Copyright © 2023 - Jeremy Schulman Thank you! Jeremy Schulman Senior Director, Major League Baseball
  • 37. Copyright © 2023 - Jeremy Schulman Q&A Meet Up
  • 38. Copyright © 2023 - Jeremy Schulman Backup Slides
  • 39. Copyright © 2023 - Jeremy Schulman Design Services - Reusable Building Blocks ● Network Vendor/System agnostic ● Defines design validation rules so that we cannot build "invalid" designs ● Provides service specific build automations ● Defines collections of checks that will be generated for each device using the design service ● Can be general purpose such as "topology" and "vlans" ● Can be bespoke to enterprise specific needs 39 Validation rules Build automations Check collections Design-Service XYZ
  • 40. Copyright © 2023 - Jeremy Schulman Design Automation - VLAN Port Assignments 40 Acc Switch 1 Acc Switch 3 Agg Switch Vlans A, B, C Vlans A, D, E, F ALL ALL Acc Switch 2 Vlans A, B, D, E ALL PEER PEER PEER ALL Indicates this port should be configured will all VLANs defined in the design for this device PEER Indicates this port should be configured with the same VLANs used by the connected interface (peer) Router ALL PEER
  • 41. Copyright © 2023 - Jeremy Schulman Design Service Validation Abstraction Example 41 Vlans Design Service Switchports Vlans EOS vlans-ds IOS-XE vlans-ds NX-OS vlans-ds <OS …> vlans-ds Each OS driver will implement the vlans design-service "switchports" and "vlans" checks, specific to their capabilities and access (API vs. SSH, etc)