SlideShare a Scribd company logo
Why Network
Automation
Matters
...And what you can do about it.
Rick Sherman
Puppet
A Quick Introduction
● Professional Services
○ Identity and Policy Management
○ Workflow systems
● Security Business Unit
○ Cloud Architect
● Junos Manageability
○ PyEZ (Python micro-framework)
○ Ansible Modules
○ Onbox scripting
○ NetDev Evangelism
● Sr. Engineer - Ecosystem
○ Network Automation Czar
■ SME
○ Release Engineering
■ Puppet Agent
2
What makes networks difficult?
● Network devices have historically been closed systems with vendor specific CLIs
● Configurations are hundreds if not thousands of lines (per system)
● Configuration != Desired state
● Vendors slow to introduce features, sometimes 18-24 months - upgrade cycle is just as long
● Network Engineers typically do not have a Sys Admin or programming background
● Networks serve multiple applications
3
Series of Tubes!
Content Credit: Cumulus Networks and bgpmon.net
...or networks are a compound cluster something
4
Hand crafted,
artisanal configs
5
A tale of two configs - CLI
IOS
6
Junos
interface GigabitEthernet2
description core
ip address 192.168.2.3 255.255.255.0
shutdown
!
interfaces {
ge-0/0/2 {
description core;
disable;
unit 0 {
family inet {
address 192.168.2.3/24;
}
}
}
}
A tale of two configs - CLI
IOS
7
Junos
interface GigabitEthernet2
description core
ip address 192.168.2.3 255.255.255.0
shutdown
!
interfaces {
ge-0/0/2 {
description core;
disable;
unit 0 {
family inet {
address 192.168.2.3/24;
}
}
}
}
Ad-hoc
management
It Sucks
8
The Puppet world today
9
● Platforms are supported via Puppet Agent
○ Cisco
■ NXOS
■ IOS-XR
○ Arista
■ EOS
○ Huawei
■ CloudEngine 12800
○ Cumulus
■ CumulusLinux 2/3x x86
● Variety of Puppet Modules
○ Vendor specific types
○ Puppet “NetDev” types
● Multiple methods of interacting with the
device
○ Screen Scraping
○ API Bindings
○ NETCONF
What you can do right now
The Puppet world today
10
Cisco
cisco_interface { 'GigabitEthernet2' :
shutdown => true,
description => 'core',
ipv4_address => '192.168.2.3',
ipv4_netmask_length => 24,
}
Cumulus
cumulus_interface { 'swp2':
ipv4 => ['192.168.2.3/24']
speed => 1000
}
Arista
eos_ipinterface { 'Ethernet2':
address => '192.168.2.3/24',
mtu => 1514,
}
Huawei
network_l3_interface{'10GE1/0/2':
ensure => present,
name => '10GE1/0/2',
description => 'core',
enable => 'false',
ipaddress => '192.168.2.3 255.255.255.0',
}
That’s great, but...
● Building Puppet Agents require serious investment
● Implementations are fragmented
● Yes, there is some screen scraping in there
● Puppet netdev_stdlib not industry recognized
11
Screen-scraping
I seriously hate it - let’s not.
12
Enter the NETCONF
● XML based encoding
○ Vendor specific data models
● Configuration RPCs
○ get-config, edit-config, copy-config,
delete-config, lock, unlock
● Operational state RPCs
○ Generally map to CLI “show” commands
● Transport: SSH, HTTPS, TLS, BEEP
13
IETF network management standard
A tale of two configs - NETCONF
IOS
14
Junos
<interface>
<GigabitEthernet>
<name>2</name>
<description>core</description>
<ip>
<address>
<primary>
<address>192.168.2.3</address>
<mask>255.255.255.0</mask>
</primary>
</address>
</ip>
<shutdown/>
</interface>
<interface>
<name>ge-0/0/2</name>
<description>core</description>
<disable/>
<unit>
<name>0</name>
<family>
<inet>
<address>
<name>192.168.2.3/24</name>
</address>
</inet>
</family>
</unit>
</interface>
That’s great, but...
● Implementation is up to the vendor
○ Same problem - different format
● How in the hell do I know what data to send the device?
● Remember, NetEng’s often not programmers
○ How will I interpret this data?
○ How will I create and modify it?
15
16
YANG
● Human-readable representation of model
● Hierarchical data node representation
○ Can combine multiple models
● Built-in data types
○ String, Boolean, Custom
● Constraints
○ What is mandatory?
● Backwards compatibility rules
● Extensible
● Deviations
* Data is still vendor (or group) specific
17
IETF Data Modeling Language for NETCONF
container interfaces {
list interface {
key "name";
description
"The list of configured interfaces...";
leaf name {
type string;
description
"The name of the interface...";
}
leaf enabled {
type boolean;
default "true";
Industry Standards
18
Vendor Agnostic
YANG
Transformation
It’s what’s for dinner!
19
Dot Format
module: ietf-interfaces
+--rw interfaces
| +--rw interface* [name]
| +--rw name string
| +--rw description? string
| +--rw type identityref
| +--rw enabled? boolean
| +--rw link-up-down-trap-enable? enumeration {if-mib}?
| +--rw ip:ipv4!
| | +--rw ip:enabled? boolean
| | +--rw ip:forwarding? boolean
| | +--rw ip:mtu? uint16
| | +--rw ip:address* [ip]
| | | +--rw ip:ip inet:ipv4-address-no-zone
20
github.com/mbj4668/pyang
XML
<interfaces xmlns="urn:ietf:params:xml:ns:yang:ietf-interfaces">
<interface><name/><description/><type/><link-up-down-trap-enable/>
<ipv4 xmlns="urn:ietf:params:xml:ns:yang:ietf-ip">
<mtu/>
<address>
<ip/>
<prefix-length/>
<netmask/>
</address>
</ipv4>
</interface>
</interfaces>
21
github.com/mbj4668/pyang
GUI Tools
22
github.com/CiscoDevNet/yang-explorer
So I have to
build XML?
That sounds terrible
23
Puppetize with YANG
Gotcha Back
24
Project Goals
● Provide “Agentless” network device management
○ Also be able to use same code with an Agent
● Use standard protocols
○ NETCONF
○ gRPC*
● Provide established Puppet experience
○ Puppet DSL
○ Idempotency / noop
○ Puppet Graph
● Auto-generate as much as possible
○ Puppet Types
○ Puppet Providers
○ Tests
25
Leverage existing tools
pyang
Python tool for validating and converting
YANG data models
Built plugin for generating Puppet code from
YANG models
26
Do not re-invent the wheel - contribute to the community
net-netconf (kkirsche fork)
Ruby library for NETCONF
Added client side support for NETCONF 1.1
(does not validate chunk sizes)
Fixed various issues in framework
In discussions with community maintainer for
long term maintenance direction.
Created Proof of Concept Module
vanilla_ice
Set of experimental Puppet Types and Providers (varying levels of completion)
● Artifacts created by code generation + human interaction
● Predominantly NETCONF based
○ Early gRPC investigation
● IOS-XE
○ ietf-interfaces
○ ietf-ospf
○ ietf-nvo
○ cisco-interfaces (ned)
● IOS-XR
○ cisco-ifmgr
27
Puppet
Type & Provider
28
Auto-generated!
Custom Type & Provider
Type Provider
Describes the “What”
Lists all of the attributes for a resource
Implements the “How”
self.instances (Getter)
What is currently set on the device
flush (Setter)
Enforce the configuration on the device
29
Puppet::Type.newtype(:xe_ietf_interfaces) do
ensurable
apply_to_device
newparam(:name) do
desc 'The name of the interface'
isnamevar
end
newproperty(:description) do
desc 'A description of the interface'
end
newproperty(:ipv4_address_ip) do
desc 'The IPv4 address on the interface.'
end
end
Code Generation
30
Demo Goals
● Create / modify / delete loopback interfaces
via ietf-interfaces model
● Modify OSPF via ietf-ospf model
● noop + idempotency
● Show code generation
○ Type
○ self.instances (resources)
○ Flush (writing to device)
What we’re going to show
31
Demo Environment
Using `puppet resource` and `puppet apply`
(Getter) (Setter)
32
Local Machine
Puppet 4.7.0
CSR1000v
IOS-XE 16.03.01
NETCONF
33
Demo
34
Q&A
TL;DR Recap
Problem: Vendor CLI’s, Ad-Hoc Management
Symptoms: Spending all our time as CLI jockeys
Solution: Puppet resources from industry models
Benefit: Puppet DSL, graph, idempotent, noop
Differentiation: Code Generated, Agentless
35
PuppetConf 2016: Why Network Automation Matters, and What You Can Do About It – Rick Sherman, Puppet

More Related Content

What's hot

Network Automation Journey, A systems engineer NetOps perspective
Network Automation Journey, A systems engineer NetOps perspectiveNetwork Automation Journey, A systems engineer NetOps perspective
Network Automation Journey, A systems engineer NetOps perspective
Walid Shaari
 
Mumbai MuleSoft Meetup #15
Mumbai MuleSoft Meetup #15Mumbai MuleSoft Meetup #15
Mumbai MuleSoft Meetup #15
Akshata Sawant
 
BigBlueButton Platform Components
BigBlueButton Platform ComponentsBigBlueButton Platform Components
BigBlueButton Platform Components
RIADVICE
 
Riyadh Meetup4- Sonarqube for Mule 4 Code review
Riyadh Meetup4- Sonarqube for Mule 4 Code reviewRiyadh Meetup4- Sonarqube for Mule 4 Code review
Riyadh Meetup4- Sonarqube for Mule 4 Code review
satyasekhar123
 
Microservices with Node and Docker
Microservices with Node and DockerMicroservices with Node and Docker
Microservices with Node and Docker
Tony Pujals
 
Mumbai MuleSoft Meetup #17 - GraphQL
Mumbai MuleSoft Meetup #17 - GraphQLMumbai MuleSoft Meetup #17 - GraphQL
Mumbai MuleSoft Meetup #17 - GraphQL
Akshata Sawant
 
Detailed Introduction To Docker
Detailed Introduction To DockerDetailed Introduction To Docker
Detailed Introduction To Docker
nklmish
 
Mike Weber - Nagios and Group Deployment of Service Checks
Mike Weber - Nagios and Group Deployment of Service ChecksMike Weber - Nagios and Group Deployment of Service Checks
Mike Weber - Nagios and Group Deployment of Service Checks
Nagios
 
Hot to build continuously processing for 24/7 real-time data streaming platform?
Hot to build continuously processing for 24/7 real-time data streaming platform?Hot to build continuously processing for 24/7 real-time data streaming platform?
Hot to build continuously processing for 24/7 real-time data streaming platform?
GetInData
 
5º MeetUP ARQconf 2016 - IoT: What is it really and how does it work?
5º MeetUP ARQconf 2016 - IoT: What is it really and how does it work?5º MeetUP ARQconf 2016 - IoT: What is it really and how does it work?
5º MeetUP ARQconf 2016 - IoT: What is it really and how does it work?
GlobalLogic Latinoamérica
 
The Art and Zen of Managing Nagios With Puppet
The Art and Zen of Managing Nagios With PuppetThe Art and Zen of Managing Nagios With Puppet
The Art and Zen of Managing Nagios With Puppet
Mike Merideth
 
MuleSoft Deployment Strategies (RTF vs Hybrid vs CloudHub)
MuleSoft Deployment Strategies (RTF vs Hybrid vs CloudHub)MuleSoft Deployment Strategies (RTF vs Hybrid vs CloudHub)
MuleSoft Deployment Strategies (RTF vs Hybrid vs CloudHub)
Prashanth Kurimella
 
One tool, two fabrics: Ansible and Nexus 9000
One tool, two fabrics: Ansible and Nexus 9000One tool, two fabrics: Ansible and Nexus 9000
One tool, two fabrics: Ansible and Nexus 9000
Joel W. King
 
Clash of Titans in SDN: OpenDaylight vs ONOS - Elisa Rojas
Clash of Titans in SDN: OpenDaylight vs ONOS - Elisa RojasClash of Titans in SDN: OpenDaylight vs ONOS - Elisa Rojas
Clash of Titans in SDN: OpenDaylight vs ONOS - Elisa Rojas
OpenNebula Project
 
Moscow MuleSoft meetup May 2021
Moscow MuleSoft meetup May 2021Moscow MuleSoft meetup May 2021
Moscow MuleSoft meetup May 2021
Leadex Systems
 
Net Devops Overview
Net Devops OverviewNet Devops Overview
Net Devops Overview
Joel W. King
 
#1 MuleSoft Meetup in Geneva
#1 MuleSoft Meetup in Geneva #1 MuleSoft Meetup in Geneva
#1 MuleSoft Meetup in Geneva
Maksym Dovgopolyi, PMP
 
OSMC 2021 | Use OpenSource monitoring for an Enterprise Grade Platform
OSMC 2021 | Use OpenSource monitoring for an Enterprise Grade PlatformOSMC 2021 | Use OpenSource monitoring for an Enterprise Grade Platform
OSMC 2021 | Use OpenSource monitoring for an Enterprise Grade Platform
NETWAYS
 
Cross Community CI project
Cross Community CI projectCross Community CI project
Cross Community CI project
Victor Morales
 

What's hot (19)

Network Automation Journey, A systems engineer NetOps perspective
Network Automation Journey, A systems engineer NetOps perspectiveNetwork Automation Journey, A systems engineer NetOps perspective
Network Automation Journey, A systems engineer NetOps perspective
 
Mumbai MuleSoft Meetup #15
Mumbai MuleSoft Meetup #15Mumbai MuleSoft Meetup #15
Mumbai MuleSoft Meetup #15
 
BigBlueButton Platform Components
BigBlueButton Platform ComponentsBigBlueButton Platform Components
BigBlueButton Platform Components
 
Riyadh Meetup4- Sonarqube for Mule 4 Code review
Riyadh Meetup4- Sonarqube for Mule 4 Code reviewRiyadh Meetup4- Sonarqube for Mule 4 Code review
Riyadh Meetup4- Sonarqube for Mule 4 Code review
 
Microservices with Node and Docker
Microservices with Node and DockerMicroservices with Node and Docker
Microservices with Node and Docker
 
Mumbai MuleSoft Meetup #17 - GraphQL
Mumbai MuleSoft Meetup #17 - GraphQLMumbai MuleSoft Meetup #17 - GraphQL
Mumbai MuleSoft Meetup #17 - GraphQL
 
Detailed Introduction To Docker
Detailed Introduction To DockerDetailed Introduction To Docker
Detailed Introduction To Docker
 
Mike Weber - Nagios and Group Deployment of Service Checks
Mike Weber - Nagios and Group Deployment of Service ChecksMike Weber - Nagios and Group Deployment of Service Checks
Mike Weber - Nagios and Group Deployment of Service Checks
 
Hot to build continuously processing for 24/7 real-time data streaming platform?
Hot to build continuously processing for 24/7 real-time data streaming platform?Hot to build continuously processing for 24/7 real-time data streaming platform?
Hot to build continuously processing for 24/7 real-time data streaming platform?
 
5º MeetUP ARQconf 2016 - IoT: What is it really and how does it work?
5º MeetUP ARQconf 2016 - IoT: What is it really and how does it work?5º MeetUP ARQconf 2016 - IoT: What is it really and how does it work?
5º MeetUP ARQconf 2016 - IoT: What is it really and how does it work?
 
The Art and Zen of Managing Nagios With Puppet
The Art and Zen of Managing Nagios With PuppetThe Art and Zen of Managing Nagios With Puppet
The Art and Zen of Managing Nagios With Puppet
 
MuleSoft Deployment Strategies (RTF vs Hybrid vs CloudHub)
MuleSoft Deployment Strategies (RTF vs Hybrid vs CloudHub)MuleSoft Deployment Strategies (RTF vs Hybrid vs CloudHub)
MuleSoft Deployment Strategies (RTF vs Hybrid vs CloudHub)
 
One tool, two fabrics: Ansible and Nexus 9000
One tool, two fabrics: Ansible and Nexus 9000One tool, two fabrics: Ansible and Nexus 9000
One tool, two fabrics: Ansible and Nexus 9000
 
Clash of Titans in SDN: OpenDaylight vs ONOS - Elisa Rojas
Clash of Titans in SDN: OpenDaylight vs ONOS - Elisa RojasClash of Titans in SDN: OpenDaylight vs ONOS - Elisa Rojas
Clash of Titans in SDN: OpenDaylight vs ONOS - Elisa Rojas
 
Moscow MuleSoft meetup May 2021
Moscow MuleSoft meetup May 2021Moscow MuleSoft meetup May 2021
Moscow MuleSoft meetup May 2021
 
Net Devops Overview
Net Devops OverviewNet Devops Overview
Net Devops Overview
 
#1 MuleSoft Meetup in Geneva
#1 MuleSoft Meetup in Geneva #1 MuleSoft Meetup in Geneva
#1 MuleSoft Meetup in Geneva
 
OSMC 2021 | Use OpenSource monitoring for an Enterprise Grade Platform
OSMC 2021 | Use OpenSource monitoring for an Enterprise Grade PlatformOSMC 2021 | Use OpenSource monitoring for an Enterprise Grade Platform
OSMC 2021 | Use OpenSource monitoring for an Enterprise Grade Platform
 
Cross Community CI project
Cross Community CI projectCross Community CI project
Cross Community CI project
 

Viewers also liked

PuppetConf 2016: How You Actually Get Hacked – Ben Hughes, Etsy
PuppetConf 2016: How You Actually Get Hacked – Ben Hughes, EtsyPuppetConf 2016: How You Actually Get Hacked – Ben Hughes, Etsy
PuppetConf 2016: How You Actually Get Hacked – Ben Hughes, Etsy
Puppet
 
Cisco Automation with Puppet and onePK - PuppetConf 2013
Cisco Automation with Puppet and onePK - PuppetConf 2013Cisco Automation with Puppet and onePK - PuppetConf 2013
Cisco Automation with Puppet and onePK - PuppetConf 2013
Puppet
 
PuppetConf 2016: A Year in Open Source: Automated Compliance With Puppet – Tr...
PuppetConf 2016: A Year in Open Source: Automated Compliance With Puppet – Tr...PuppetConf 2016: A Year in Open Source: Automated Compliance With Puppet – Tr...
PuppetConf 2016: A Year in Open Source: Automated Compliance With Puppet – Tr...
Puppet
 
PuppetConf 2016: Application Centric Automation with Puppet & Cisco – Farid J...
PuppetConf 2016: Application Centric Automation with Puppet & Cisco – Farid J...PuppetConf 2016: Application Centric Automation with Puppet & Cisco – Farid J...
PuppetConf 2016: Application Centric Automation with Puppet & Cisco – Farid J...
Puppet
 
Two Sides of Google Infrastructure for Everyone Else
Two Sides of Google Infrastructure for Everyone ElseTwo Sides of Google Infrastructure for Everyone Else
Two Sides of Google Infrastructure for Everyone Else
Gareth Rushgrove
 
Introduction to Puppet Enterprise
Introduction to Puppet EnterpriseIntroduction to Puppet Enterprise
Introduction to Puppet Enterprise
Puppet
 

Viewers also liked (6)

PuppetConf 2016: How You Actually Get Hacked – Ben Hughes, Etsy
PuppetConf 2016: How You Actually Get Hacked – Ben Hughes, EtsyPuppetConf 2016: How You Actually Get Hacked – Ben Hughes, Etsy
PuppetConf 2016: How You Actually Get Hacked – Ben Hughes, Etsy
 
Cisco Automation with Puppet and onePK - PuppetConf 2013
Cisco Automation with Puppet and onePK - PuppetConf 2013Cisco Automation with Puppet and onePK - PuppetConf 2013
Cisco Automation with Puppet and onePK - PuppetConf 2013
 
PuppetConf 2016: A Year in Open Source: Automated Compliance With Puppet – Tr...
PuppetConf 2016: A Year in Open Source: Automated Compliance With Puppet – Tr...PuppetConf 2016: A Year in Open Source: Automated Compliance With Puppet – Tr...
PuppetConf 2016: A Year in Open Source: Automated Compliance With Puppet – Tr...
 
PuppetConf 2016: Application Centric Automation with Puppet & Cisco – Farid J...
PuppetConf 2016: Application Centric Automation with Puppet & Cisco – Farid J...PuppetConf 2016: Application Centric Automation with Puppet & Cisco – Farid J...
PuppetConf 2016: Application Centric Automation with Puppet & Cisco – Farid J...
 
Two Sides of Google Infrastructure for Everyone Else
Two Sides of Google Infrastructure for Everyone ElseTwo Sides of Google Infrastructure for Everyone Else
Two Sides of Google Infrastructure for Everyone Else
 
Introduction to Puppet Enterprise
Introduction to Puppet EnterpriseIntroduction to Puppet Enterprise
Introduction to Puppet Enterprise
 

Similar to PuppetConf 2016: Why Network Automation Matters, and What You Can Do About It – Rick Sherman, Puppet

Building a Small Datacenter
Building a Small DatacenterBuilding a Small Datacenter
Building a Small Datacenter
ssuser4b98f0
 
Building a Small DC
Building a Small DCBuilding a Small DC
Building a Small DC
APNIC
 
4. CNCF kubernetes Comparison of-existing-cni-plugins-for-kubernetes
4. CNCF kubernetes Comparison of-existing-cni-plugins-for-kubernetes4. CNCF kubernetes Comparison of-existing-cni-plugins-for-kubernetes
4. CNCF kubernetes Comparison of-existing-cni-plugins-for-kubernetes
Juraj Hantak
 
Comparison of existing cni plugins for kubernetes
Comparison of existing cni plugins for kubernetesComparison of existing cni plugins for kubernetes
Comparison of existing cni plugins for kubernetes
Adam Hamsik
 
USENIX LISA15: How TubeMogul Handles over One Trillion HTTP Requests a Month
USENIX LISA15: How TubeMogul Handles over One Trillion HTTP Requests a MonthUSENIX LISA15: How TubeMogul Handles over One Trillion HTTP Requests a Month
USENIX LISA15: How TubeMogul Handles over One Trillion HTTP Requests a Month
Nicolas Brousse
 
A Kernel of Truth: Intrusion Detection and Attestation with eBPF
A Kernel of Truth: Intrusion Detection and Attestation with eBPFA Kernel of Truth: Intrusion Detection and Attestation with eBPF
A Kernel of Truth: Intrusion Detection and Attestation with eBPF
oholiab
 
DevSecCon London 2019: A Kernel of Truth: Intrusion Detection and Attestation...
DevSecCon London 2019: A Kernel of Truth: Intrusion Detection and Attestation...DevSecCon London 2019: A Kernel of Truth: Intrusion Detection and Attestation...
DevSecCon London 2019: A Kernel of Truth: Intrusion Detection and Attestation...
DevSecCon
 
Whitebox Switches Deployment Experience
Whitebox Switches Deployment ExperienceWhitebox Switches Deployment Experience
Whitebox Switches Deployment Experience
APNIC
 
Kubernetes 101
Kubernetes 101Kubernetes 101
Kubernetes 101
Stanislav Pogrebnyak
 
Container orchestration and microservices world
Container orchestration and microservices worldContainer orchestration and microservices world
Container orchestration and microservices world
Karol Chrapek
 
Montreal Kubernetes Meetup: Developer-first workflows (for microservices) on ...
Montreal Kubernetes Meetup: Developer-first workflows (for microservices) on ...Montreal Kubernetes Meetup: Developer-first workflows (for microservices) on ...
Montreal Kubernetes Meetup: Developer-first workflows (for microservices) on ...
Ambassador Labs
 
TIAD 2016 : Network automation with Ansible and OpenConfig/YANG
TIAD 2016 : Network automation with Ansible and OpenConfig/YANGTIAD 2016 : Network automation with Ansible and OpenConfig/YANG
TIAD 2016 : Network automation with Ansible and OpenConfig/YANG
The Incredible Automation Day
 
Adding IEEE 802.15.4 and 6LoWPAN to an Embedded Linux Device
Adding IEEE 802.15.4 and 6LoWPAN to an Embedded Linux DeviceAdding IEEE 802.15.4 and 6LoWPAN to an Embedded Linux Device
Adding IEEE 802.15.4 and 6LoWPAN to an Embedded Linux Device
Samsung Open Source Group
 
BPF & Cilium - Turning Linux into a Microservices-aware Operating System
BPF  & Cilium - Turning Linux into a Microservices-aware Operating SystemBPF  & Cilium - Turning Linux into a Microservices-aware Operating System
BPF & Cilium - Turning Linux into a Microservices-aware Operating System
Thomas Graf
 
LCU14 310- Cisco ODP v2
LCU14 310- Cisco ODP v2LCU14 310- Cisco ODP v2
LCU14 310- Cisco ODP v2
Linaro
 
Practical Guide to Run an IEEE 802.15.4 Network with 6LoWPAN Under Linux
Practical Guide to Run an IEEE 802.15.4 Network with 6LoWPAN Under LinuxPractical Guide to Run an IEEE 802.15.4 Network with 6LoWPAN Under Linux
Practical Guide to Run an IEEE 802.15.4 Network with 6LoWPAN Under Linux
Samsung Open Source Group
 
How OpenShift SDN helps to automate
How OpenShift SDN helps to automateHow OpenShift SDN helps to automate
How OpenShift SDN helps to automate
Ilkka Tengvall
 
Integrating Puppet and Gitolite for sysadmins cooperations
Integrating Puppet and Gitolite for sysadmins cooperationsIntegrating Puppet and Gitolite for sysadmins cooperations
Integrating Puppet and Gitolite for sysadmins cooperations
Luca Mazzaferro
 
DevOps Days Boston 2017: Real-world Kubernetes for DevOps
DevOps Days Boston 2017: Real-world Kubernetes for DevOpsDevOps Days Boston 2017: Real-world Kubernetes for DevOps
DevOps Days Boston 2017: Real-world Kubernetes for DevOps
Ambassador Labs
 
Known basic of NFV Features
Known basic of NFV FeaturesKnown basic of NFV Features
Known basic of NFV Features
Raul Leite
 

Similar to PuppetConf 2016: Why Network Automation Matters, and What You Can Do About It – Rick Sherman, Puppet (20)

Building a Small Datacenter
Building a Small DatacenterBuilding a Small Datacenter
Building a Small Datacenter
 
Building a Small DC
Building a Small DCBuilding a Small DC
Building a Small DC
 
4. CNCF kubernetes Comparison of-existing-cni-plugins-for-kubernetes
4. CNCF kubernetes Comparison of-existing-cni-plugins-for-kubernetes4. CNCF kubernetes Comparison of-existing-cni-plugins-for-kubernetes
4. CNCF kubernetes Comparison of-existing-cni-plugins-for-kubernetes
 
Comparison of existing cni plugins for kubernetes
Comparison of existing cni plugins for kubernetesComparison of existing cni plugins for kubernetes
Comparison of existing cni plugins for kubernetes
 
USENIX LISA15: How TubeMogul Handles over One Trillion HTTP Requests a Month
USENIX LISA15: How TubeMogul Handles over One Trillion HTTP Requests a MonthUSENIX LISA15: How TubeMogul Handles over One Trillion HTTP Requests a Month
USENIX LISA15: How TubeMogul Handles over One Trillion HTTP Requests a Month
 
A Kernel of Truth: Intrusion Detection and Attestation with eBPF
A Kernel of Truth: Intrusion Detection and Attestation with eBPFA Kernel of Truth: Intrusion Detection and Attestation with eBPF
A Kernel of Truth: Intrusion Detection and Attestation with eBPF
 
DevSecCon London 2019: A Kernel of Truth: Intrusion Detection and Attestation...
DevSecCon London 2019: A Kernel of Truth: Intrusion Detection and Attestation...DevSecCon London 2019: A Kernel of Truth: Intrusion Detection and Attestation...
DevSecCon London 2019: A Kernel of Truth: Intrusion Detection and Attestation...
 
Whitebox Switches Deployment Experience
Whitebox Switches Deployment ExperienceWhitebox Switches Deployment Experience
Whitebox Switches Deployment Experience
 
Kubernetes 101
Kubernetes 101Kubernetes 101
Kubernetes 101
 
Container orchestration and microservices world
Container orchestration and microservices worldContainer orchestration and microservices world
Container orchestration and microservices world
 
Montreal Kubernetes Meetup: Developer-first workflows (for microservices) on ...
Montreal Kubernetes Meetup: Developer-first workflows (for microservices) on ...Montreal Kubernetes Meetup: Developer-first workflows (for microservices) on ...
Montreal Kubernetes Meetup: Developer-first workflows (for microservices) on ...
 
TIAD 2016 : Network automation with Ansible and OpenConfig/YANG
TIAD 2016 : Network automation with Ansible and OpenConfig/YANGTIAD 2016 : Network automation with Ansible and OpenConfig/YANG
TIAD 2016 : Network automation with Ansible and OpenConfig/YANG
 
Adding IEEE 802.15.4 and 6LoWPAN to an Embedded Linux Device
Adding IEEE 802.15.4 and 6LoWPAN to an Embedded Linux DeviceAdding IEEE 802.15.4 and 6LoWPAN to an Embedded Linux Device
Adding IEEE 802.15.4 and 6LoWPAN to an Embedded Linux Device
 
BPF & Cilium - Turning Linux into a Microservices-aware Operating System
BPF  & Cilium - Turning Linux into a Microservices-aware Operating SystemBPF  & Cilium - Turning Linux into a Microservices-aware Operating System
BPF & Cilium - Turning Linux into a Microservices-aware Operating System
 
LCU14 310- Cisco ODP v2
LCU14 310- Cisco ODP v2LCU14 310- Cisco ODP v2
LCU14 310- Cisco ODP v2
 
Practical Guide to Run an IEEE 802.15.4 Network with 6LoWPAN Under Linux
Practical Guide to Run an IEEE 802.15.4 Network with 6LoWPAN Under LinuxPractical Guide to Run an IEEE 802.15.4 Network with 6LoWPAN Under Linux
Practical Guide to Run an IEEE 802.15.4 Network with 6LoWPAN Under Linux
 
How OpenShift SDN helps to automate
How OpenShift SDN helps to automateHow OpenShift SDN helps to automate
How OpenShift SDN helps to automate
 
Integrating Puppet and Gitolite for sysadmins cooperations
Integrating Puppet and Gitolite for sysadmins cooperationsIntegrating Puppet and Gitolite for sysadmins cooperations
Integrating Puppet and Gitolite for sysadmins cooperations
 
DevOps Days Boston 2017: Real-world Kubernetes for DevOps
DevOps Days Boston 2017: Real-world Kubernetes for DevOpsDevOps Days Boston 2017: Real-world Kubernetes for DevOps
DevOps Days Boston 2017: Real-world Kubernetes for DevOps
 
Known basic of NFV Features
Known basic of NFV FeaturesKnown basic of NFV Features
Known basic of NFV Features
 

More from Puppet

Puppet camp2021 testing modules and controlrepo
Puppet camp2021 testing modules and controlrepoPuppet camp2021 testing modules and controlrepo
Puppet camp2021 testing modules and controlrepo
Puppet
 
Puppetcamp r10kyaml
Puppetcamp r10kyamlPuppetcamp r10kyaml
Puppetcamp r10kyaml
Puppet
 
2021 04-15 operational verification (with notes)
2021 04-15 operational verification (with notes)2021 04-15 operational verification (with notes)
2021 04-15 operational verification (with notes)
Puppet
 
Puppet camp vscode
Puppet camp vscodePuppet camp vscode
Puppet camp vscode
Puppet
 
Modules of the twenties
Modules of the twentiesModules of the twenties
Modules of the twenties
Puppet
 
Applying Roles and Profiles method to compliance code
Applying Roles and Profiles method to compliance codeApplying Roles and Profiles method to compliance code
Applying Roles and Profiles method to compliance code
Puppet
 
KGI compliance as-code approach
KGI compliance as-code approachKGI compliance as-code approach
KGI compliance as-code approach
Puppet
 
Enforce compliance policy with model-driven automation
Enforce compliance policy with model-driven automationEnforce compliance policy with model-driven automation
Enforce compliance policy with model-driven automation
Puppet
 
Keynote: Puppet camp compliance
Keynote: Puppet camp complianceKeynote: Puppet camp compliance
Keynote: Puppet camp compliance
Puppet
 
Automating it management with Puppet + ServiceNow
Automating it management with Puppet + ServiceNowAutomating it management with Puppet + ServiceNow
Automating it management with Puppet + ServiceNow
Puppet
 
Puppet: The best way to harden Windows
Puppet: The best way to harden WindowsPuppet: The best way to harden Windows
Puppet: The best way to harden Windows
Puppet
 
Simplified Patch Management with Puppet - Oct. 2020
Simplified Patch Management with Puppet - Oct. 2020Simplified Patch Management with Puppet - Oct. 2020
Simplified Patch Management with Puppet - Oct. 2020
Puppet
 
Accelerating azure adoption with puppet
Accelerating azure adoption with puppetAccelerating azure adoption with puppet
Accelerating azure adoption with puppet
Puppet
 
Puppet catalog Diff; Raphael Pinson
Puppet catalog Diff; Raphael PinsonPuppet catalog Diff; Raphael Pinson
Puppet catalog Diff; Raphael Pinson
Puppet
 
ServiceNow and Puppet- better together, Kevin Reeuwijk
ServiceNow and Puppet- better together, Kevin ReeuwijkServiceNow and Puppet- better together, Kevin Reeuwijk
ServiceNow and Puppet- better together, Kevin Reeuwijk
Puppet
 
Take control of your dev ops dumping ground
Take control of your  dev ops dumping groundTake control of your  dev ops dumping ground
Take control of your dev ops dumping ground
Puppet
 
100% Puppet Cloud Deployment of Legacy Software
100% Puppet Cloud Deployment of Legacy Software100% Puppet Cloud Deployment of Legacy Software
100% Puppet Cloud Deployment of Legacy Software
Puppet
 
Puppet User Group
Puppet User GroupPuppet User Group
Puppet User Group
Puppet
 
Continuous Compliance and DevSecOps
Continuous Compliance and DevSecOpsContinuous Compliance and DevSecOps
Continuous Compliance and DevSecOps
Puppet
 
The Dynamic Duo of Puppet and Vault tame SSL Certificates, Nick Maludy
The Dynamic Duo of Puppet and Vault tame SSL Certificates, Nick MaludyThe Dynamic Duo of Puppet and Vault tame SSL Certificates, Nick Maludy
The Dynamic Duo of Puppet and Vault tame SSL Certificates, Nick Maludy
Puppet
 

More from Puppet (20)

Puppet camp2021 testing modules and controlrepo
Puppet camp2021 testing modules and controlrepoPuppet camp2021 testing modules and controlrepo
Puppet camp2021 testing modules and controlrepo
 
Puppetcamp r10kyaml
Puppetcamp r10kyamlPuppetcamp r10kyaml
Puppetcamp r10kyaml
 
2021 04-15 operational verification (with notes)
2021 04-15 operational verification (with notes)2021 04-15 operational verification (with notes)
2021 04-15 operational verification (with notes)
 
Puppet camp vscode
Puppet camp vscodePuppet camp vscode
Puppet camp vscode
 
Modules of the twenties
Modules of the twentiesModules of the twenties
Modules of the twenties
 
Applying Roles and Profiles method to compliance code
Applying Roles and Profiles method to compliance codeApplying Roles and Profiles method to compliance code
Applying Roles and Profiles method to compliance code
 
KGI compliance as-code approach
KGI compliance as-code approachKGI compliance as-code approach
KGI compliance as-code approach
 
Enforce compliance policy with model-driven automation
Enforce compliance policy with model-driven automationEnforce compliance policy with model-driven automation
Enforce compliance policy with model-driven automation
 
Keynote: Puppet camp compliance
Keynote: Puppet camp complianceKeynote: Puppet camp compliance
Keynote: Puppet camp compliance
 
Automating it management with Puppet + ServiceNow
Automating it management with Puppet + ServiceNowAutomating it management with Puppet + ServiceNow
Automating it management with Puppet + ServiceNow
 
Puppet: The best way to harden Windows
Puppet: The best way to harden WindowsPuppet: The best way to harden Windows
Puppet: The best way to harden Windows
 
Simplified Patch Management with Puppet - Oct. 2020
Simplified Patch Management with Puppet - Oct. 2020Simplified Patch Management with Puppet - Oct. 2020
Simplified Patch Management with Puppet - Oct. 2020
 
Accelerating azure adoption with puppet
Accelerating azure adoption with puppetAccelerating azure adoption with puppet
Accelerating azure adoption with puppet
 
Puppet catalog Diff; Raphael Pinson
Puppet catalog Diff; Raphael PinsonPuppet catalog Diff; Raphael Pinson
Puppet catalog Diff; Raphael Pinson
 
ServiceNow and Puppet- better together, Kevin Reeuwijk
ServiceNow and Puppet- better together, Kevin ReeuwijkServiceNow and Puppet- better together, Kevin Reeuwijk
ServiceNow and Puppet- better together, Kevin Reeuwijk
 
Take control of your dev ops dumping ground
Take control of your  dev ops dumping groundTake control of your  dev ops dumping ground
Take control of your dev ops dumping ground
 
100% Puppet Cloud Deployment of Legacy Software
100% Puppet Cloud Deployment of Legacy Software100% Puppet Cloud Deployment of Legacy Software
100% Puppet Cloud Deployment of Legacy Software
 
Puppet User Group
Puppet User GroupPuppet User Group
Puppet User Group
 
Continuous Compliance and DevSecOps
Continuous Compliance and DevSecOpsContinuous Compliance and DevSecOps
Continuous Compliance and DevSecOps
 
The Dynamic Duo of Puppet and Vault tame SSL Certificates, Nick Maludy
The Dynamic Duo of Puppet and Vault tame SSL Certificates, Nick MaludyThe Dynamic Duo of Puppet and Vault tame SSL Certificates, Nick Maludy
The Dynamic Duo of Puppet and Vault tame SSL Certificates, Nick Maludy
 

Recently uploaded

AppSec PNW: Android and iOS Application Security with MobSF
AppSec PNW: Android and iOS Application Security with MobSFAppSec PNW: Android and iOS Application Security with MobSF
AppSec PNW: Android and iOS Application Security with MobSF
Ajin Abraham
 
Y-Combinator seed pitch deck template PP
Y-Combinator seed pitch deck template PPY-Combinator seed pitch deck template PP
Y-Combinator seed pitch deck template PP
c5vrf27qcz
 
Mutation Testing for Task-Oriented Chatbots
Mutation Testing for Task-Oriented ChatbotsMutation Testing for Task-Oriented Chatbots
Mutation Testing for Task-Oriented Chatbots
Pablo Gómez Abajo
 
High performance Serverless Java on AWS- GoTo Amsterdam 2024
High performance Serverless Java on AWS- GoTo Amsterdam 2024High performance Serverless Java on AWS- GoTo Amsterdam 2024
High performance Serverless Java on AWS- GoTo Amsterdam 2024
Vadym Kazulkin
 
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-EfficiencyFreshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
ScyllaDB
 
Christine's Supplier Sourcing Presentaion.pptx
Christine's Supplier Sourcing Presentaion.pptxChristine's Supplier Sourcing Presentaion.pptx
Christine's Supplier Sourcing Presentaion.pptx
christinelarrosa
 
Astute Business Solutions | Oracle Cloud Partner |
Astute Business Solutions | Oracle Cloud Partner |Astute Business Solutions | Oracle Cloud Partner |
Astute Business Solutions | Oracle Cloud Partner |
AstuteBusiness
 
Choosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptxChoosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptx
Brandon Minnick, MBA
 
Dandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity serverDandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity server
Antonios Katsarakis
 
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdfMonitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Tosin Akinosho
 
Christine's Product Research Presentation.pptx
Christine's Product Research Presentation.pptxChristine's Product Research Presentation.pptx
Christine's Product Research Presentation.pptx
christinelarrosa
 
What is an RPA CoE? Session 1 – CoE Vision
What is an RPA CoE?  Session 1 – CoE VisionWhat is an RPA CoE?  Session 1 – CoE Vision
What is an RPA CoE? Session 1 – CoE Vision
DianaGray10
 
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdfHow to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
Chart Kalyan
 
GNSS spoofing via SDR (Criptored Talks 2024)
GNSS spoofing via SDR (Criptored Talks 2024)GNSS spoofing via SDR (Criptored Talks 2024)
GNSS spoofing via SDR (Criptored Talks 2024)
Javier Junquera
 
GraphRAG for LifeSciences Hands-On with the Clinical Knowledge Graph
GraphRAG for LifeSciences Hands-On with the Clinical Knowledge GraphGraphRAG for LifeSciences Hands-On with the Clinical Knowledge Graph
GraphRAG for LifeSciences Hands-On with the Clinical Knowledge Graph
Neo4j
 
inQuba Webinar Mastering Customer Journey Management with Dr Graham Hill
inQuba Webinar Mastering Customer Journey Management with Dr Graham HillinQuba Webinar Mastering Customer Journey Management with Dr Graham Hill
inQuba Webinar Mastering Customer Journey Management with Dr Graham Hill
LizaNolte
 
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
Alex Pruden
 
LF Energy Webinar: Carbon Data Specifications: Mechanisms to Improve Data Acc...
LF Energy Webinar: Carbon Data Specifications: Mechanisms to Improve Data Acc...LF Energy Webinar: Carbon Data Specifications: Mechanisms to Improve Data Acc...
LF Energy Webinar: Carbon Data Specifications: Mechanisms to Improve Data Acc...
DanBrown980551
 
Fueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte WebinarFueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte Webinar
Zilliz
 
The Microsoft 365 Migration Tutorial For Beginner.pptx
The Microsoft 365 Migration Tutorial For Beginner.pptxThe Microsoft 365 Migration Tutorial For Beginner.pptx
The Microsoft 365 Migration Tutorial For Beginner.pptx
operationspcvita
 

Recently uploaded (20)

AppSec PNW: Android and iOS Application Security with MobSF
AppSec PNW: Android and iOS Application Security with MobSFAppSec PNW: Android and iOS Application Security with MobSF
AppSec PNW: Android and iOS Application Security with MobSF
 
Y-Combinator seed pitch deck template PP
Y-Combinator seed pitch deck template PPY-Combinator seed pitch deck template PP
Y-Combinator seed pitch deck template PP
 
Mutation Testing for Task-Oriented Chatbots
Mutation Testing for Task-Oriented ChatbotsMutation Testing for Task-Oriented Chatbots
Mutation Testing for Task-Oriented Chatbots
 
High performance Serverless Java on AWS- GoTo Amsterdam 2024
High performance Serverless Java on AWS- GoTo Amsterdam 2024High performance Serverless Java on AWS- GoTo Amsterdam 2024
High performance Serverless Java on AWS- GoTo Amsterdam 2024
 
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-EfficiencyFreshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
 
Christine's Supplier Sourcing Presentaion.pptx
Christine's Supplier Sourcing Presentaion.pptxChristine's Supplier Sourcing Presentaion.pptx
Christine's Supplier Sourcing Presentaion.pptx
 
Astute Business Solutions | Oracle Cloud Partner |
Astute Business Solutions | Oracle Cloud Partner |Astute Business Solutions | Oracle Cloud Partner |
Astute Business Solutions | Oracle Cloud Partner |
 
Choosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptxChoosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptx
 
Dandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity serverDandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity server
 
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdfMonitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdf
 
Christine's Product Research Presentation.pptx
Christine's Product Research Presentation.pptxChristine's Product Research Presentation.pptx
Christine's Product Research Presentation.pptx
 
What is an RPA CoE? Session 1 – CoE Vision
What is an RPA CoE?  Session 1 – CoE VisionWhat is an RPA CoE?  Session 1 – CoE Vision
What is an RPA CoE? Session 1 – CoE Vision
 
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdfHow to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
 
GNSS spoofing via SDR (Criptored Talks 2024)
GNSS spoofing via SDR (Criptored Talks 2024)GNSS spoofing via SDR (Criptored Talks 2024)
GNSS spoofing via SDR (Criptored Talks 2024)
 
GraphRAG for LifeSciences Hands-On with the Clinical Knowledge Graph
GraphRAG for LifeSciences Hands-On with the Clinical Knowledge GraphGraphRAG for LifeSciences Hands-On with the Clinical Knowledge Graph
GraphRAG for LifeSciences Hands-On with the Clinical Knowledge Graph
 
inQuba Webinar Mastering Customer Journey Management with Dr Graham Hill
inQuba Webinar Mastering Customer Journey Management with Dr Graham HillinQuba Webinar Mastering Customer Journey Management with Dr Graham Hill
inQuba Webinar Mastering Customer Journey Management with Dr Graham Hill
 
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
 
LF Energy Webinar: Carbon Data Specifications: Mechanisms to Improve Data Acc...
LF Energy Webinar: Carbon Data Specifications: Mechanisms to Improve Data Acc...LF Energy Webinar: Carbon Data Specifications: Mechanisms to Improve Data Acc...
LF Energy Webinar: Carbon Data Specifications: Mechanisms to Improve Data Acc...
 
Fueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte WebinarFueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte Webinar
 
The Microsoft 365 Migration Tutorial For Beginner.pptx
The Microsoft 365 Migration Tutorial For Beginner.pptxThe Microsoft 365 Migration Tutorial For Beginner.pptx
The Microsoft 365 Migration Tutorial For Beginner.pptx
 

PuppetConf 2016: Why Network Automation Matters, and What You Can Do About It – Rick Sherman, Puppet

  • 1. Why Network Automation Matters ...And what you can do about it. Rick Sherman Puppet
  • 2. A Quick Introduction ● Professional Services ○ Identity and Policy Management ○ Workflow systems ● Security Business Unit ○ Cloud Architect ● Junos Manageability ○ PyEZ (Python micro-framework) ○ Ansible Modules ○ Onbox scripting ○ NetDev Evangelism ● Sr. Engineer - Ecosystem ○ Network Automation Czar ■ SME ○ Release Engineering ■ Puppet Agent 2
  • 3. What makes networks difficult? ● Network devices have historically been closed systems with vendor specific CLIs ● Configurations are hundreds if not thousands of lines (per system) ● Configuration != Desired state ● Vendors slow to introduce features, sometimes 18-24 months - upgrade cycle is just as long ● Network Engineers typically do not have a Sys Admin or programming background ● Networks serve multiple applications 3
  • 4. Series of Tubes! Content Credit: Cumulus Networks and bgpmon.net ...or networks are a compound cluster something 4
  • 6. A tale of two configs - CLI IOS 6 Junos interface GigabitEthernet2 description core ip address 192.168.2.3 255.255.255.0 shutdown ! interfaces { ge-0/0/2 { description core; disable; unit 0 { family inet { address 192.168.2.3/24; } } } }
  • 7. A tale of two configs - CLI IOS 7 Junos interface GigabitEthernet2 description core ip address 192.168.2.3 255.255.255.0 shutdown ! interfaces { ge-0/0/2 { description core; disable; unit 0 { family inet { address 192.168.2.3/24; } } } }
  • 9. The Puppet world today 9 ● Platforms are supported via Puppet Agent ○ Cisco ■ NXOS ■ IOS-XR ○ Arista ■ EOS ○ Huawei ■ CloudEngine 12800 ○ Cumulus ■ CumulusLinux 2/3x x86 ● Variety of Puppet Modules ○ Vendor specific types ○ Puppet “NetDev” types ● Multiple methods of interacting with the device ○ Screen Scraping ○ API Bindings ○ NETCONF What you can do right now
  • 10. The Puppet world today 10 Cisco cisco_interface { 'GigabitEthernet2' : shutdown => true, description => 'core', ipv4_address => '192.168.2.3', ipv4_netmask_length => 24, } Cumulus cumulus_interface { 'swp2': ipv4 => ['192.168.2.3/24'] speed => 1000 } Arista eos_ipinterface { 'Ethernet2': address => '192.168.2.3/24', mtu => 1514, } Huawei network_l3_interface{'10GE1/0/2': ensure => present, name => '10GE1/0/2', description => 'core', enable => 'false', ipaddress => '192.168.2.3 255.255.255.0', }
  • 11. That’s great, but... ● Building Puppet Agents require serious investment ● Implementations are fragmented ● Yes, there is some screen scraping in there ● Puppet netdev_stdlib not industry recognized 11
  • 12. Screen-scraping I seriously hate it - let’s not. 12
  • 13. Enter the NETCONF ● XML based encoding ○ Vendor specific data models ● Configuration RPCs ○ get-config, edit-config, copy-config, delete-config, lock, unlock ● Operational state RPCs ○ Generally map to CLI “show” commands ● Transport: SSH, HTTPS, TLS, BEEP 13 IETF network management standard
  • 14. A tale of two configs - NETCONF IOS 14 Junos <interface> <GigabitEthernet> <name>2</name> <description>core</description> <ip> <address> <primary> <address>192.168.2.3</address> <mask>255.255.255.0</mask> </primary> </address> </ip> <shutdown/> </interface> <interface> <name>ge-0/0/2</name> <description>core</description> <disable/> <unit> <name>0</name> <family> <inet> <address> <name>192.168.2.3/24</name> </address> </inet> </family> </unit> </interface>
  • 15. That’s great, but... ● Implementation is up to the vendor ○ Same problem - different format ● How in the hell do I know what data to send the device? ● Remember, NetEng’s often not programmers ○ How will I interpret this data? ○ How will I create and modify it? 15
  • 16. 16
  • 17. YANG ● Human-readable representation of model ● Hierarchical data node representation ○ Can combine multiple models ● Built-in data types ○ String, Boolean, Custom ● Constraints ○ What is mandatory? ● Backwards compatibility rules ● Extensible ● Deviations * Data is still vendor (or group) specific 17 IETF Data Modeling Language for NETCONF container interfaces { list interface { key "name"; description "The list of configured interfaces..."; leaf name { type string; description "The name of the interface..."; } leaf enabled { type boolean; default "true";
  • 20. Dot Format module: ietf-interfaces +--rw interfaces | +--rw interface* [name] | +--rw name string | +--rw description? string | +--rw type identityref | +--rw enabled? boolean | +--rw link-up-down-trap-enable? enumeration {if-mib}? | +--rw ip:ipv4! | | +--rw ip:enabled? boolean | | +--rw ip:forwarding? boolean | | +--rw ip:mtu? uint16 | | +--rw ip:address* [ip] | | | +--rw ip:ip inet:ipv4-address-no-zone 20 github.com/mbj4668/pyang
  • 23. So I have to build XML? That sounds terrible 23
  • 25. Project Goals ● Provide “Agentless” network device management ○ Also be able to use same code with an Agent ● Use standard protocols ○ NETCONF ○ gRPC* ● Provide established Puppet experience ○ Puppet DSL ○ Idempotency / noop ○ Puppet Graph ● Auto-generate as much as possible ○ Puppet Types ○ Puppet Providers ○ Tests 25
  • 26. Leverage existing tools pyang Python tool for validating and converting YANG data models Built plugin for generating Puppet code from YANG models 26 Do not re-invent the wheel - contribute to the community net-netconf (kkirsche fork) Ruby library for NETCONF Added client side support for NETCONF 1.1 (does not validate chunk sizes) Fixed various issues in framework In discussions with community maintainer for long term maintenance direction.
  • 27. Created Proof of Concept Module vanilla_ice Set of experimental Puppet Types and Providers (varying levels of completion) ● Artifacts created by code generation + human interaction ● Predominantly NETCONF based ○ Early gRPC investigation ● IOS-XE ○ ietf-interfaces ○ ietf-ospf ○ ietf-nvo ○ cisco-interfaces (ned) ● IOS-XR ○ cisco-ifmgr 27
  • 29. Custom Type & Provider Type Provider Describes the “What” Lists all of the attributes for a resource Implements the “How” self.instances (Getter) What is currently set on the device flush (Setter) Enforce the configuration on the device 29 Puppet::Type.newtype(:xe_ietf_interfaces) do ensurable apply_to_device newparam(:name) do desc 'The name of the interface' isnamevar end newproperty(:description) do desc 'A description of the interface' end newproperty(:ipv4_address_ip) do desc 'The IPv4 address on the interface.' end end
  • 31. Demo Goals ● Create / modify / delete loopback interfaces via ietf-interfaces model ● Modify OSPF via ietf-ospf model ● noop + idempotency ● Show code generation ○ Type ○ self.instances (resources) ○ Flush (writing to device) What we’re going to show 31
  • 32. Demo Environment Using `puppet resource` and `puppet apply` (Getter) (Setter) 32 Local Machine Puppet 4.7.0 CSR1000v IOS-XE 16.03.01 NETCONF
  • 35. TL;DR Recap Problem: Vendor CLI’s, Ad-Hoc Management Symptoms: Spending all our time as CLI jockeys Solution: Puppet resources from industry models Benefit: Puppet DSL, graph, idempotent, noop Differentiation: Code Generated, Agentless 35