SlideShare a Scribd company logo
1 of 29
Copyright © 2015 World Wide Technology, Inc. All rights reserved.
Programmability and Automation
in Data Center Networks
A talk on Hot Air Balloons, Camels and Excel Spreadsheets
October 2015
Joel W. King Engineering and Innovations
Enterprise Networking Solutions
Hot Air Balloons, Camels and Excel
• First passengers: A rooster,
a duck, and a sheep
• Altitude record 68,900 feet.
• To carry paying passengers for hire
a pilot must have a commercial
pilot certificate.
• The passengers are active participants
in both take-off and landing
Agenda
WWT University: ACI Professional Services Deployment Engineers
NX-OS Programmability for MP-BGP EVPN VXLAN Fabric Design
Cisco ACI Barrier to Success
ACI Programmability
• WWT University: ACI Professional Services Deployment Engineers
• Specific Learning Outcomes
• Configure an ACI fabric using Ansible playbooks (roles)
• Understand components of RESTful web APIs
• Working knowledge of Markup Languages
• Learn to create Jinja templates of XML configuration files
• Basic understanding of Git for version control and Ansible role sharing
• Goal
• Work as a Team to create a library of configuration best practices
Key take-aways
• Most of the concepts are applicable to NX-OS | NX-API
• Learning to program was not a requirement.
• Thinking like a programmer proved beneficial.
• Effective Automation is about generalizing and
abstracting workflow
• Success of selling ACI depends on the PS engineers.
Learning to Think like a Programmer
• Learning programming is like learning spelling and grammar.
• Programming is a tedious and exacting discipline.
• Have you developed an aptitude and interest in programming by age 25?
• Thinking like a programmer…. the art of Computer Science
• Teaches critical thinking skills
• How to process and represent information
What are Markup Languages?
• Markup Languages are implementations of
Data Serialization formats | standards | languages
• Cisco IOS configuration files are a proprietary form of
Markup Language
• Examples
• CSV Comma Separated Values
• XML Extensible Markup Language
• JSON JavaScript Object Notation
• YAML YAML ain’t Markup Language
Why Learn Markup Languages?
• Represent structured data to define a network configuration.
• Less emphasis on Command Line Interface (CLI) and IOS config files
Cisco ACI controller (APIC)
will generate and accept both
JSON and XML to save and upload
configurations
NETCONF protocol uses an XML
for configuration data and output messages.
Cisco IOS XR software has an XML
application programming interface (API).
Why Learn Ansible?
• Simple, yet powerful automation tool for all things Data Center
• Low barrier to entry – Open Source, runs in a VM on your laptop
• Agentless
• Automation without programming
• Exposes you to Markup Languages
• Forces you to think like a programmer
Network automation going mainstream
#netdevops
Network Programmability
User's Group
www.npug.net
Cultural Shift of #NetDevOps
• DevOps isn’t automation tool(s) , or a role within an organization.
• Networking is the next frontier for DevOps.
• Moving to think about applications, not infrastructure.
Holistic system thinking
No silos - sharing
Metrics - Rapid, useful feedback
Automation: Automate the drudgery away
Guiding Principles:
Hot Air Balloons and Network Engineers
Looking over the edge of the
basket gives you a immediate
sense of anxiety and uneasiness.
NX-OS Programmability for MP-BGP EVPN
VXLAN Fabric Design
Cisco Data Center Switching
• If you are looking to Cisco for a Data Center switch, it will be a Nexus 9000.
• Nexus 9000 runs in either of two modes:
• NX-OS
• Application Centric Infrastructure – ACI
• Networks need Automation & Programmability.
• NX-API enables a northbound REST interface on individual NX-OS switches
• Nexus 3000 NX-API supported NX-OS 6.0(2)U4(1).
• NX-OS release 7.x enables NX-API on Cisco Nexus 5000 and 6000
• APIC is the Software Defined Networking controller for ACI
Ansible and Cisco Data Center Networking
SSH – TCP/22
Users, API
NTP – UDP / 123
HTTP(s) TCP/80:443:22
HTTP(s) TCP/80:443
SSH – TCP/22
GitHub
HTTPS TCP/443
LDAP – TCP / 389
ESX
Server
Windows
Systems
Linux
DockerAmazon
Web Services
Agentless
Ansible / Tower
REST API
connection: local
feature nx-api
Nexus 3000 | 9000
Nexus 9000
ACI
github.com/joelwking/
PARAMIKO
APIC-EM
Cisco IOS
NX-OS Programmabilty
• ******* [ customer name removed ] *******************
• MP-BGP EVPN VXLAN Fabric Design
• Nexus 9500 spines (4)
• Nexus 9300 leafs (40)
• NX-OS configuration is complex
775 lines of config per leaf
WWT Integration Technology Center (ITC)
Cisco Virtual Topology System (VTS)
Cisco Prime Data Center Network Manager
(DCNM)
Process Flow
Group Variables
(All Leafs)
Host Variables
(Individual Switch)
Jinja Template
L2 Port Configuration
CSV
L3 Port Configuration
CSV
Switch
Configuration
Configuring your network from Excel
kingjoe@rocket:~/ansible/roles/excel_nxos/templates$ cat leaf_uplinks.j2
#
# Template for leaf uplinks
#
{% for row in spreadsheet %}
interface {{row.SourcePort}}
description {{row.Description}}
mtu 9216
load-interval counter 1 5
ip address {{row.SourceIP}}
no ipv6 redirects
ip ospf authentication message-digest
ip ospf message-digest-key 1 md5 {{OSPF.message_digest_key}}
ip ospf network point-to-point
ip router ospf {{OSPF.processID}} area 0.0.0.0
ip pim sparse-mode
no shutdown
!
{% endfor %}
end
#
# group_vars/leaf
#
OSPF:
message_digest_key: DEADBEEF
processID: 64800
group_vars/leaf
#
# group_vars/leaf
#
OSPF:
message_digest_key: DEADBEEF
processID: 64800
BGP:
as: 64800
neighbor:
- {ip_address: 10.181.63.1, password: DEADBEEF}
- {ip_address: 10.181.63.2, password: DEADBEEF}
- {ip_address: 10.181.63.3, password: DEADBEEF}
- {ip_address: 10.181.63.4, password: DEADBEEF}
vrf:
- PROD
- ACPT
- BACKUP
- MNGMT
host_vars/13leafzn01-rp01y
#
# host_vars/13leafzn01-rp01y
#
Vlan100:
ip_address: 10.181.0.250/31
loopback0:
ip_address: 10.181.63.11
mask: "/32"
s_ip_address: 10.181.63.100
s_mask: "/32"
#
# vPC peer information
#
peer_keepalive:
destination: 10.192.64.12
source: 10.192.64.11
channel_group_number: 10
channel_group:
- interface: "Ethernet2/11"
description: "13leafzn01-rp01z_E2/11"
- interface: "Ethernet2/12"
description: "13leafzn01-rp01z_E2/12"
13leafzn02-rp01.csv
13leafzn02-rp01_uplinks.csv
Ethernet 1/1 - 48
(layer2 port configuration)
Ethernet 2/1 – 4
(layer3 port configuration)
Render the Configuration
#
# Template for leaf uplinks
#
interface Ethernet2/1
description 13spine-rp01_E1/1
mtu 9216
load-interval counter 1 5
ip address 10.181.0.1/31
no ipv6 redirects
ip ospf authentication message-digest
ip ospf message-digest-key 1 md5 DEADBEEF
ip ospf network point-to-point
ip router ospf 64800 area 0.0.0.0
ip pim sparse-mode
no shutdown
!
! [ interfaces E2/2 E2/3 and E2/4 removed for brevity ]
!
end
Each column headers are variable names,
cell contents are assigned to these variables.
Variables are then used to render configuration.
Network engineer controls column header names
https://github.com/joelwking/ansible-nxapi/blob/master/csv_to_facts.py
Cisco ACI Barrier to Success
The History of the Cisco CLI
• Wellfleet Communications
• Early 1990’s
• Extensive marketing around menu system for routers
• Menu systems - hard to see a concise view of the configuration
• Post Cisco IOS 9.21, sales of Wellfleet / Bay Networks started to slow.
• Cisco’s growth continued on its upward trend.
• Cisco CLI, extensive multi-protocol support and TAC instrumental to success.
www.netcraftsmen.com/the-history-of-the-cisco-cli/
Wellfleet Communications Logo" by Source (WP:NFCC#4). Licensed under Fair use via Wikipedia
Cisco ACI Barrier to Success
• We need consumable documentation.
• Cut-n-paste of XML at the end of
text documentation and screen shots
has minimal practical value.
• CVDs of over 300 pages of screen
shots isn’t consumable.
Jinja Template of the XML and Playbook
$ cat Create_VLAN_Pools.j2
<?xml version="1.0" encoding="UTF-8"?>
<!--
Remarks: {{item._url}}
-->
<fvnsVlanInstP name="{{VLAN_pool.name}}" descr="{{VLAN_pool.descr}}" allocMode="static">
<fvnsEncapBlk name="{{VLAN_pool.name}}" descr="{{VLAN_pool.descr}}" allocMode="static" to="{{VLAN_pool.to}}"
from="{{VLAN_pool.from}}"/>
</fvnsVlanInstP>
VLAN_pool:
name: JINJA
descr: PS ACI Deployment Engineer Class
from: vlan-2700
to: vlan-2709
steps:
- create_VLAN_Pools:
_xml: Create_VLAN_Pools
_url: "/api/mo/uni/infra/vlanns-[{{ VLAN_pool.name }}]-static.xml"
tasks:
- name: Create XML file(s)
template:
src: "{{local_path}}/{{item._xml}}.j2"
dest: "{{local_path}}/xml/__{{item._xml}}.xml"
with_items: "{{steps}}"
Resulting XML
$ cat __Create_VLAN_Pools.xml
<?xml version="1.0" encoding="UTF-8"?>
<!--
Remarks: /api/mo/uni/infra/vlanns-[JINJA]-static.xml
-->
<fvnsVlanInstP name="JINJA" descr="PS ACI Deployment Engineer Class" allocMode="static">
<fvnsEncapBlk name="JINJA" descr="PS ACI Deployment Engineer Class" allocMode="static" to="vlan-2709" from="vlan-2700"/>
</fvnsVlanInstP>
By providing a Jinja template of the XML file with several relevant variables specified
in the YAML playbook, we can more easily consume the ACI documentation
In this format, the XML documentation is consumable by the end customer.
Configuring your ACI network from Excel
http://erjosito.tumblr.com/post/129878491127/configuring-your-network-from-excel
Landing
• Automation concepts are applicable to
ACI, NX-OS, ….. F5, …. etc.
• Configurations becoming so complex we
need documentation which abstracts to
the common components.
• Every balloon landing is a controlled crash
• Champagne after flights originated
to appease farmers.
Programmability and Automation in Data Center Networks: A talk on Hot Air Balloons, Camels and Excel Spreadsheets

More Related Content

What's hot

Goodbye CLI, hello API: Leveraging network programmability in security incid...
Goodbye CLI, hello API:  Leveraging network programmability in security incid...Goodbye CLI, hello API:  Leveraging network programmability in security incid...
Goodbye CLI, hello API: Leveraging network programmability in security incid...Joel W. King
 
Configuration Management Tools on NX-OS
Configuration Management Tools on NX-OSConfiguration Management Tools on NX-OS
Configuration Management Tools on NX-OSCisco DevNet
 
What is NetDevOps? How? Leslie Carr PuppetConf 2015
What is NetDevOps? How? Leslie Carr PuppetConf 2015What is NetDevOps? How? Leslie Carr PuppetConf 2015
What is NetDevOps? How? Leslie Carr PuppetConf 2015Leslie Carr
 
Integrating Ansible Tower with security orchestration and cloud management
Integrating Ansible Tower with security orchestration and cloud managementIntegrating Ansible Tower with security orchestration and cloud management
Integrating Ansible Tower with security orchestration and cloud managementJoel W. King
 
AnsibleFest London 2016 - managing your cisco datacenter network with ansible
AnsibleFest London 2016 - managing your cisco datacenter network with ansibleAnsibleFest London 2016 - managing your cisco datacenter network with ansible
AnsibleFest London 2016 - managing your cisco datacenter network with ansiblefmaccioni
 
Kubernetes vs dockers swarm supporting onap oom on multi-cloud multi-stack en...
Kubernetes vs dockers swarm supporting onap oom on multi-cloud multi-stack en...Kubernetes vs dockers swarm supporting onap oom on multi-cloud multi-stack en...
Kubernetes vs dockers swarm supporting onap oom on multi-cloud multi-stack en...Arthur Berezin
 
ONAP SDC - Model driven design
ONAP SDC - Model driven designONAP SDC - Model driven design
ONAP SDC - Model driven designEden Rozin
 
DockerCon SF 2015: Cultural Change using Docker
DockerCon SF 2015: Cultural Change using Docker DockerCon SF 2015: Cultural Change using Docker
DockerCon SF 2015: Cultural Change using Docker Docker, Inc.
 
Zero Code Multi-Cloud Automation with Ansible and Terraform
Zero Code Multi-Cloud Automation with Ansible and TerraformZero Code Multi-Cloud Automation with Ansible and Terraform
Zero Code Multi-Cloud Automation with Ansible and TerraformAvi Networks
 
Kubecon 2017 Zero Touch Kubernetes
Kubecon 2017 Zero Touch KubernetesKubecon 2017 Zero Touch Kubernetes
Kubecon 2017 Zero Touch Kubernetesrhirschfeld
 
[2015-11월 정기 세미나] Cloud Native Platform - Pivotal
[2015-11월 정기 세미나] Cloud Native Platform - Pivotal[2015-11월 정기 세미나] Cloud Native Platform - Pivotal
[2015-11월 정기 세미나] Cloud Native Platform - PivotalOpenStack Korea Community
 
Infrastructure as Code for Network
Infrastructure as Code for NetworkInfrastructure as Code for Network
Infrastructure as Code for NetworkDamien Garros
 
Infrastructure as code
Infrastructure as codeInfrastructure as code
Infrastructure as codeAxel Quack
 
Network Automation (NetDevOps) with Ansible
Network Automation (NetDevOps) with AnsibleNetwork Automation (NetDevOps) with Ansible
Network Automation (NetDevOps) with AnsibleAPNIC
 
#SREcon Immutable Infrastructure: rethinking configuration mgmt
#SREcon Immutable Infrastructure: rethinking configuration mgmt#SREcon Immutable Infrastructure: rethinking configuration mgmt
#SREcon Immutable Infrastructure: rethinking configuration mgmtrhirschfeld
 
Significance of RedHat Ansible
Significance of RedHat AnsibleSignificance of RedHat Ansible
Significance of RedHat AnsibleVijayaNirmalaGopal
 
Network Infrastructure as Code with Chef and Cisco
Network Infrastructure as Code with Chef and CiscoNetwork Infrastructure as Code with Chef and Cisco
Network Infrastructure as Code with Chef and CiscoMatt Ray
 
Zero downtime deployment of micro-services with Kubernetes
Zero downtime deployment of micro-services with KubernetesZero downtime deployment of micro-services with Kubernetes
Zero downtime deployment of micro-services with KubernetesWojciech Barczyński
 

What's hot (20)

Goodbye CLI, hello API: Leveraging network programmability in security incid...
Goodbye CLI, hello API:  Leveraging network programmability in security incid...Goodbye CLI, hello API:  Leveraging network programmability in security incid...
Goodbye CLI, hello API: Leveraging network programmability in security incid...
 
Configuration Management Tools on NX-OS
Configuration Management Tools on NX-OSConfiguration Management Tools on NX-OS
Configuration Management Tools on NX-OS
 
What is NetDevOps? How? Leslie Carr PuppetConf 2015
What is NetDevOps? How? Leslie Carr PuppetConf 2015What is NetDevOps? How? Leslie Carr PuppetConf 2015
What is NetDevOps? How? Leslie Carr PuppetConf 2015
 
Integrating Ansible Tower with security orchestration and cloud management
Integrating Ansible Tower with security orchestration and cloud managementIntegrating Ansible Tower with security orchestration and cloud management
Integrating Ansible Tower with security orchestration and cloud management
 
AnsibleFest London 2016 - managing your cisco datacenter network with ansible
AnsibleFest London 2016 - managing your cisco datacenter network with ansibleAnsibleFest London 2016 - managing your cisco datacenter network with ansible
AnsibleFest London 2016 - managing your cisco datacenter network with ansible
 
Accelerating with Ansible
Accelerating with AnsibleAccelerating with Ansible
Accelerating with Ansible
 
Kubernetes vs dockers swarm supporting onap oom on multi-cloud multi-stack en...
Kubernetes vs dockers swarm supporting onap oom on multi-cloud multi-stack en...Kubernetes vs dockers swarm supporting onap oom on multi-cloud multi-stack en...
Kubernetes vs dockers swarm supporting onap oom on multi-cloud multi-stack en...
 
ONAP SDC - Model driven design
ONAP SDC - Model driven designONAP SDC - Model driven design
ONAP SDC - Model driven design
 
DockerCon SF 2015: Cultural Change using Docker
DockerCon SF 2015: Cultural Change using Docker DockerCon SF 2015: Cultural Change using Docker
DockerCon SF 2015: Cultural Change using Docker
 
Zero Code Multi-Cloud Automation with Ansible and Terraform
Zero Code Multi-Cloud Automation with Ansible and TerraformZero Code Multi-Cloud Automation with Ansible and Terraform
Zero Code Multi-Cloud Automation with Ansible and Terraform
 
Kubecon 2017 Zero Touch Kubernetes
Kubecon 2017 Zero Touch KubernetesKubecon 2017 Zero Touch Kubernetes
Kubecon 2017 Zero Touch Kubernetes
 
[2015-11월 정기 세미나] Cloud Native Platform - Pivotal
[2015-11월 정기 세미나] Cloud Native Platform - Pivotal[2015-11월 정기 세미나] Cloud Native Platform - Pivotal
[2015-11월 정기 세미나] Cloud Native Platform - Pivotal
 
Infrastructure as Code for Network
Infrastructure as Code for NetworkInfrastructure as Code for Network
Infrastructure as Code for Network
 
Infrastructure as code
Infrastructure as codeInfrastructure as code
Infrastructure as code
 
Network Automation (NetDevOps) with Ansible
Network Automation (NetDevOps) with AnsibleNetwork Automation (NetDevOps) with Ansible
Network Automation (NetDevOps) with Ansible
 
#SREcon Immutable Infrastructure: rethinking configuration mgmt
#SREcon Immutable Infrastructure: rethinking configuration mgmt#SREcon Immutable Infrastructure: rethinking configuration mgmt
#SREcon Immutable Infrastructure: rethinking configuration mgmt
 
Significance of RedHat Ansible
Significance of RedHat AnsibleSignificance of RedHat Ansible
Significance of RedHat Ansible
 
Network Infrastructure as Code with Chef and Cisco
Network Infrastructure as Code with Chef and CiscoNetwork Infrastructure as Code with Chef and Cisco
Network Infrastructure as Code with Chef and Cisco
 
DevOps: Infrastructure as Code
DevOps: Infrastructure as CodeDevOps: Infrastructure as Code
DevOps: Infrastructure as Code
 
Zero downtime deployment of micro-services with Kubernetes
Zero downtime deployment of micro-services with KubernetesZero downtime deployment of micro-services with Kubernetes
Zero downtime deployment of micro-services with Kubernetes
 

Similar to Programmability and Automation in Data Center Networks: A talk on Hot Air Balloons, Camels and Excel Spreadsheets

PLNOG16: Automatyzacja kreaowania usług operatorskich w separacji od rodzaju ...
PLNOG16: Automatyzacja kreaowania usług operatorskich w separacji od rodzaju ...PLNOG16: Automatyzacja kreaowania usług operatorskich w separacji od rodzaju ...
PLNOG16: Automatyzacja kreaowania usług operatorskich w separacji od rodzaju ...PROIDEA
 
Simulating Networks Using Cisco Modeling Labs (TechWiseTV Workshop)
Simulating Networks Using Cisco Modeling Labs (TechWiseTV Workshop)Simulating Networks Using Cisco Modeling Labs (TechWiseTV Workshop)
Simulating Networks Using Cisco Modeling Labs (TechWiseTV Workshop)Robb Boyd
 
Architecture of Cisco Container Platform: A new Enterprise Multi-Cloud Kubern...
Architecture of Cisco Container Platform: A new Enterprise Multi-Cloud Kubern...Architecture of Cisco Container Platform: A new Enterprise Multi-Cloud Kubern...
Architecture of Cisco Container Platform: A new Enterprise Multi-Cloud Kubern...Sanjeev Rampal
 
ASICSoft Briefing 2015 v3
ASICSoft Briefing 2015 v3ASICSoft Briefing 2015 v3
ASICSoft Briefing 2015 v3Sweta Sanyal
 
NetDevOps for the Network Dude: How to get started with API's, Ansible and Py...
NetDevOps for the Network Dude: How to get started with API's, Ansible and Py...NetDevOps for the Network Dude: How to get started with API's, Ansible and Py...
NetDevOps for the Network Dude: How to get started with API's, Ansible and Py...Cisco DevNet
 
BRKSPG-2069-64bit-package.pdf
BRKSPG-2069-64bit-package.pdfBRKSPG-2069-64bit-package.pdf
BRKSPG-2069-64bit-package.pdfHeng30
 
Nx o sv and virl
Nx o sv and virlNx o sv and virl
Nx o sv and virlKunKun Ng
 
PLNOG14: Service orchestration in provider network, Tail-f - Przemysław Borek
PLNOG14: Service orchestration in provider network, Tail-f - Przemysław BorekPLNOG14: Service orchestration in provider network, Tail-f - Przemysław Borek
PLNOG14: Service orchestration in provider network, Tail-f - Przemysław BorekPROIDEA
 
Data models-and-automation-jp
Data models-and-automation-jpData models-and-automation-jp
Data models-and-automation-jpMiya Kohno
 
SUGCON EU 2023 - Secure Composable SaaS.pptx
SUGCON EU 2023 - Secure Composable SaaS.pptxSUGCON EU 2023 - Secure Composable SaaS.pptx
SUGCON EU 2023 - Secure Composable SaaS.pptxVasiliy Fomichev
 
Support of containerized workloads in ONAP
Support of containerized workloads in ONAPSupport of containerized workloads in ONAP
Support of containerized workloads in ONAPVictor Morales
 
Puppet devops wdec
Puppet devops wdecPuppet devops wdec
Puppet devops wdecWojciech Dec
 
Automation in Network Lifecycle Management - Bay Area Juniper Meetup
Automation in Network Lifecycle Management - Bay Area Juniper MeetupAutomation in Network Lifecycle Management - Bay Area Juniper Meetup
Automation in Network Lifecycle Management - Bay Area Juniper MeetupJorge Bonilla
 
Top 5 favourite features of Cisco ACI in Pulsant Cloud Data Centres
Top 5 favourite features of Cisco ACI in Pulsant Cloud Data Centres Top 5 favourite features of Cisco ACI in Pulsant Cloud Data Centres
Top 5 favourite features of Cisco ACI in Pulsant Cloud Data Centres Martin Lipka
 
G rpc talk with intel (3)
G rpc talk with intel (3)G rpc talk with intel (3)
G rpc talk with intel (3)Intel
 
World Wide Technology | Red Hat Ansible for Networking Workshop
World Wide Technology | Red Hat Ansible for Networking WorkshopWorld Wide Technology | Red Hat Ansible for Networking Workshop
World Wide Technology | Red Hat Ansible for Networking WorkshopJoel W. King
 
Show and Tell: Building Applications on Cisco Open SDN Controller
Show and Tell: Building Applications on Cisco Open SDN Controller Show and Tell: Building Applications on Cisco Open SDN Controller
Show and Tell: Building Applications on Cisco Open SDN Controller Cisco DevNet
 
Cloud compiler - Minor Project by students of CBPGEC
Cloud compiler - Minor Project by students of CBPGEC  Cloud compiler - Minor Project by students of CBPGEC
Cloud compiler - Minor Project by students of CBPGEC vipin kumar
 

Similar to Programmability and Automation in Data Center Networks: A talk on Hot Air Balloons, Camels and Excel Spreadsheets (20)

PLNOG16: Automatyzacja kreaowania usług operatorskich w separacji od rodzaju ...
PLNOG16: Automatyzacja kreaowania usług operatorskich w separacji od rodzaju ...PLNOG16: Automatyzacja kreaowania usług operatorskich w separacji od rodzaju ...
PLNOG16: Automatyzacja kreaowania usług operatorskich w separacji od rodzaju ...
 
Simulating Networks Using Cisco Modeling Labs (TechWiseTV Workshop)
Simulating Networks Using Cisco Modeling Labs (TechWiseTV Workshop)Simulating Networks Using Cisco Modeling Labs (TechWiseTV Workshop)
Simulating Networks Using Cisco Modeling Labs (TechWiseTV Workshop)
 
Architecture of Cisco Container Platform: A new Enterprise Multi-Cloud Kubern...
Architecture of Cisco Container Platform: A new Enterprise Multi-Cloud Kubern...Architecture of Cisco Container Platform: A new Enterprise Multi-Cloud Kubern...
Architecture of Cisco Container Platform: A new Enterprise Multi-Cloud Kubern...
 
ASICSoft Briefing 2015 v3
ASICSoft Briefing 2015 v3ASICSoft Briefing 2015 v3
ASICSoft Briefing 2015 v3
 
NetDevOps for the Network Dude: How to get started with API's, Ansible and Py...
NetDevOps for the Network Dude: How to get started with API's, Ansible and Py...NetDevOps for the Network Dude: How to get started with API's, Ansible and Py...
NetDevOps for the Network Dude: How to get started with API's, Ansible and Py...
 
BRKSPG-2069-64bit-package.pdf
BRKSPG-2069-64bit-package.pdfBRKSPG-2069-64bit-package.pdf
BRKSPG-2069-64bit-package.pdf
 
Nx o sv and virl
Nx o sv and virlNx o sv and virl
Nx o sv and virl
 
PLNOG14: Service orchestration in provider network, Tail-f - Przemysław Borek
PLNOG14: Service orchestration in provider network, Tail-f - Przemysław BorekPLNOG14: Service orchestration in provider network, Tail-f - Przemysław Borek
PLNOG14: Service orchestration in provider network, Tail-f - Przemysław Borek
 
Data models-and-automation-jp
Data models-and-automation-jpData models-and-automation-jp
Data models-and-automation-jp
 
Linkedin - Cisco
Linkedin - CiscoLinkedin - Cisco
Linkedin - Cisco
 
SUGCON EU 2023 - Secure Composable SaaS.pptx
SUGCON EU 2023 - Secure Composable SaaS.pptxSUGCON EU 2023 - Secure Composable SaaS.pptx
SUGCON EU 2023 - Secure Composable SaaS.pptx
 
Support of containerized workloads in ONAP
Support of containerized workloads in ONAPSupport of containerized workloads in ONAP
Support of containerized workloads in ONAP
 
Puppet devops wdec
Puppet devops wdecPuppet devops wdec
Puppet devops wdec
 
Automation Evolution with Junos
Automation Evolution with JunosAutomation Evolution with Junos
Automation Evolution with Junos
 
Automation in Network Lifecycle Management - Bay Area Juniper Meetup
Automation in Network Lifecycle Management - Bay Area Juniper MeetupAutomation in Network Lifecycle Management - Bay Area Juniper Meetup
Automation in Network Lifecycle Management - Bay Area Juniper Meetup
 
Top 5 favourite features of Cisco ACI in Pulsant Cloud Data Centres
Top 5 favourite features of Cisco ACI in Pulsant Cloud Data Centres Top 5 favourite features of Cisco ACI in Pulsant Cloud Data Centres
Top 5 favourite features of Cisco ACI in Pulsant Cloud Data Centres
 
G rpc talk with intel (3)
G rpc talk with intel (3)G rpc talk with intel (3)
G rpc talk with intel (3)
 
World Wide Technology | Red Hat Ansible for Networking Workshop
World Wide Technology | Red Hat Ansible for Networking WorkshopWorld Wide Technology | Red Hat Ansible for Networking Workshop
World Wide Technology | Red Hat Ansible for Networking Workshop
 
Show and Tell: Building Applications on Cisco Open SDN Controller
Show and Tell: Building Applications on Cisco Open SDN Controller Show and Tell: Building Applications on Cisco Open SDN Controller
Show and Tell: Building Applications on Cisco Open SDN Controller
 
Cloud compiler - Minor Project by students of CBPGEC
Cloud compiler - Minor Project by students of CBPGEC  Cloud compiler - Minor Project by students of CBPGEC
Cloud compiler - Minor Project by students of CBPGEC
 

More from Joel W. King

DevNetCreate_2021_joelwking.pptx
DevNetCreate_2021_joelwking.pptxDevNetCreate_2021_joelwking.pptx
DevNetCreate_2021_joelwking.pptxJoel W. King
 
BRKEVT-2311_joeking_pbr.pptx
BRKEVT-2311_joeking_pbr.pptxBRKEVT-2311_joeking_pbr.pptx
BRKEVT-2311_joeking_pbr.pptxJoel W. King
 
Introduction to GraphQL using Nautobot and Arista cEOS
Introduction to GraphQL using Nautobot and Arista cEOSIntroduction to GraphQL using Nautobot and Arista cEOS
Introduction to GraphQL using Nautobot and Arista cEOSJoel W. King
 
NetDevOps Development Environments
NetDevOps Development EnvironmentsNetDevOps Development Environments
NetDevOps Development EnvironmentsJoel W. King
 
DevNet Associate : Python introduction
DevNet Associate : Python introductionDevNet Associate : Python introduction
DevNet Associate : Python introductionJoel W. King
 
Using Batfish for Network Analysis
Using Batfish for Network AnalysisUsing Batfish for Network Analysis
Using Batfish for Network AnalysisJoel W. King
 
Using Terraform to manage the configuration of a Cisco ACI fabric.
Using Terraform to manage the configuration of a Cisco ACI fabric.Using Terraform to manage the configuration of a Cisco ACI fabric.
Using Terraform to manage the configuration of a Cisco ACI fabric.Joel W. King
 
Cisco IP Video Surveillance Design Guide
Cisco IP Video Surveillance Design GuideCisco IP Video Surveillance Design Guide
Cisco IP Video Surveillance Design GuideJoel W. King
 
Meraki Virtual Hackathon: app for Splunk Phantom
Meraki Virtual Hackathon: app for Splunk PhantomMeraki Virtual Hackathon: app for Splunk Phantom
Meraki Virtual Hackathon: app for Splunk PhantomJoel W. King
 
Business Ready Teleworker Design Guide
Business Ready Teleworker Design GuideBusiness Ready Teleworker Design Guide
Business Ready Teleworker Design GuideJoel W. King
 
Data manipulation for configuration management using Ansible
Data manipulation for configuration management using AnsibleData manipulation for configuration management using Ansible
Data manipulation for configuration management using AnsibleJoel W. King
 
DevNet Study Group: Using a SDK
DevNet Study Group: Using a SDKDevNet Study Group: Using a SDK
DevNet Study Group: Using a SDKJoel W. King
 
Foray into Ansible Content Collections
Foray into Ansible Content CollectionsForay into Ansible Content Collections
Foray into Ansible Content CollectionsJoel W. King
 
Analytics for Application Security and Policy Enforcement in Cloud Managed Ne...
Analytics for Application Security and Policy Enforcement in Cloud Managed Ne...Analytics for Application Security and Policy Enforcement in Cloud Managed Ne...
Analytics for Application Security and Policy Enforcement in Cloud Managed Ne...Joel W. King
 
Enabling policy migration in the Data Center with Ansible
Enabling policy migration in the Data Center with AnsibleEnabling policy migration in the Data Center with Ansible
Enabling policy migration in the Data Center with AnsibleJoel W. King
 
Using Tetration for application security and policy enforcement in multi-vend...
Using Tetration for application security and policy enforcement in multi-vend...Using Tetration for application security and policy enforcement in multi-vend...
Using Tetration for application security and policy enforcement in multi-vend...Joel W. King
 
Using Ansible Tower to implement security policies and telemetry streaming fo...
Using Ansible Tower to implement security policies and telemetry streaming fo...Using Ansible Tower to implement security policies and telemetry streaming fo...
Using Ansible Tower to implement security policies and telemetry streaming fo...Joel W. King
 
Super-NetOps Source of Truth
Super-NetOps Source of TruthSuper-NetOps Source of Truth
Super-NetOps Source of TruthJoel W. King
 
Super-NetOps Source of Truth
Super-NetOps Source of TruthSuper-NetOps Source of Truth
Super-NetOps Source of TruthJoel W. King
 
Introduction to Git for Network Engineers (Lab Guide)
Introduction to Git for Network Engineers (Lab Guide)Introduction to Git for Network Engineers (Lab Guide)
Introduction to Git for Network Engineers (Lab Guide)Joel W. King
 

More from Joel W. King (20)

DevNetCreate_2021_joelwking.pptx
DevNetCreate_2021_joelwking.pptxDevNetCreate_2021_joelwking.pptx
DevNetCreate_2021_joelwking.pptx
 
BRKEVT-2311_joeking_pbr.pptx
BRKEVT-2311_joeking_pbr.pptxBRKEVT-2311_joeking_pbr.pptx
BRKEVT-2311_joeking_pbr.pptx
 
Introduction to GraphQL using Nautobot and Arista cEOS
Introduction to GraphQL using Nautobot and Arista cEOSIntroduction to GraphQL using Nautobot and Arista cEOS
Introduction to GraphQL using Nautobot and Arista cEOS
 
NetDevOps Development Environments
NetDevOps Development EnvironmentsNetDevOps Development Environments
NetDevOps Development Environments
 
DevNet Associate : Python introduction
DevNet Associate : Python introductionDevNet Associate : Python introduction
DevNet Associate : Python introduction
 
Using Batfish for Network Analysis
Using Batfish for Network AnalysisUsing Batfish for Network Analysis
Using Batfish for Network Analysis
 
Using Terraform to manage the configuration of a Cisco ACI fabric.
Using Terraform to manage the configuration of a Cisco ACI fabric.Using Terraform to manage the configuration of a Cisco ACI fabric.
Using Terraform to manage the configuration of a Cisco ACI fabric.
 
Cisco IP Video Surveillance Design Guide
Cisco IP Video Surveillance Design GuideCisco IP Video Surveillance Design Guide
Cisco IP Video Surveillance Design Guide
 
Meraki Virtual Hackathon: app for Splunk Phantom
Meraki Virtual Hackathon: app for Splunk PhantomMeraki Virtual Hackathon: app for Splunk Phantom
Meraki Virtual Hackathon: app for Splunk Phantom
 
Business Ready Teleworker Design Guide
Business Ready Teleworker Design GuideBusiness Ready Teleworker Design Guide
Business Ready Teleworker Design Guide
 
Data manipulation for configuration management using Ansible
Data manipulation for configuration management using AnsibleData manipulation for configuration management using Ansible
Data manipulation for configuration management using Ansible
 
DevNet Study Group: Using a SDK
DevNet Study Group: Using a SDKDevNet Study Group: Using a SDK
DevNet Study Group: Using a SDK
 
Foray into Ansible Content Collections
Foray into Ansible Content CollectionsForay into Ansible Content Collections
Foray into Ansible Content Collections
 
Analytics for Application Security and Policy Enforcement in Cloud Managed Ne...
Analytics for Application Security and Policy Enforcement in Cloud Managed Ne...Analytics for Application Security and Policy Enforcement in Cloud Managed Ne...
Analytics for Application Security and Policy Enforcement in Cloud Managed Ne...
 
Enabling policy migration in the Data Center with Ansible
Enabling policy migration in the Data Center with AnsibleEnabling policy migration in the Data Center with Ansible
Enabling policy migration in the Data Center with Ansible
 
Using Tetration for application security and policy enforcement in multi-vend...
Using Tetration for application security and policy enforcement in multi-vend...Using Tetration for application security and policy enforcement in multi-vend...
Using Tetration for application security and policy enforcement in multi-vend...
 
Using Ansible Tower to implement security policies and telemetry streaming fo...
Using Ansible Tower to implement security policies and telemetry streaming fo...Using Ansible Tower to implement security policies and telemetry streaming fo...
Using Ansible Tower to implement security policies and telemetry streaming fo...
 
Super-NetOps Source of Truth
Super-NetOps Source of TruthSuper-NetOps Source of Truth
Super-NetOps Source of Truth
 
Super-NetOps Source of Truth
Super-NetOps Source of TruthSuper-NetOps Source of Truth
Super-NetOps Source of Truth
 
Introduction to Git for Network Engineers (Lab Guide)
Introduction to Git for Network Engineers (Lab Guide)Introduction to Git for Network Engineers (Lab Guide)
Introduction to Git for Network Engineers (Lab Guide)
 

Recently uploaded

Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 

Recently uploaded (20)

Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 

Programmability and Automation in Data Center Networks: A talk on Hot Air Balloons, Camels and Excel Spreadsheets

  • 1. Copyright © 2015 World Wide Technology, Inc. All rights reserved. Programmability and Automation in Data Center Networks A talk on Hot Air Balloons, Camels and Excel Spreadsheets October 2015 Joel W. King Engineering and Innovations Enterprise Networking Solutions
  • 2. Hot Air Balloons, Camels and Excel • First passengers: A rooster, a duck, and a sheep • Altitude record 68,900 feet. • To carry paying passengers for hire a pilot must have a commercial pilot certificate. • The passengers are active participants in both take-off and landing
  • 3. Agenda WWT University: ACI Professional Services Deployment Engineers NX-OS Programmability for MP-BGP EVPN VXLAN Fabric Design Cisco ACI Barrier to Success
  • 4. ACI Programmability • WWT University: ACI Professional Services Deployment Engineers • Specific Learning Outcomes • Configure an ACI fabric using Ansible playbooks (roles) • Understand components of RESTful web APIs • Working knowledge of Markup Languages • Learn to create Jinja templates of XML configuration files • Basic understanding of Git for version control and Ansible role sharing • Goal • Work as a Team to create a library of configuration best practices
  • 5. Key take-aways • Most of the concepts are applicable to NX-OS | NX-API • Learning to program was not a requirement. • Thinking like a programmer proved beneficial. • Effective Automation is about generalizing and abstracting workflow • Success of selling ACI depends on the PS engineers.
  • 6. Learning to Think like a Programmer • Learning programming is like learning spelling and grammar. • Programming is a tedious and exacting discipline. • Have you developed an aptitude and interest in programming by age 25? • Thinking like a programmer…. the art of Computer Science • Teaches critical thinking skills • How to process and represent information
  • 7. What are Markup Languages? • Markup Languages are implementations of Data Serialization formats | standards | languages • Cisco IOS configuration files are a proprietary form of Markup Language • Examples • CSV Comma Separated Values • XML Extensible Markup Language • JSON JavaScript Object Notation • YAML YAML ain’t Markup Language
  • 8. Why Learn Markup Languages? • Represent structured data to define a network configuration. • Less emphasis on Command Line Interface (CLI) and IOS config files Cisco ACI controller (APIC) will generate and accept both JSON and XML to save and upload configurations NETCONF protocol uses an XML for configuration data and output messages. Cisco IOS XR software has an XML application programming interface (API).
  • 9. Why Learn Ansible? • Simple, yet powerful automation tool for all things Data Center • Low barrier to entry – Open Source, runs in a VM on your laptop • Agentless • Automation without programming • Exposes you to Markup Languages • Forces you to think like a programmer
  • 10. Network automation going mainstream #netdevops Network Programmability User's Group www.npug.net
  • 11. Cultural Shift of #NetDevOps • DevOps isn’t automation tool(s) , or a role within an organization. • Networking is the next frontier for DevOps. • Moving to think about applications, not infrastructure. Holistic system thinking No silos - sharing Metrics - Rapid, useful feedback Automation: Automate the drudgery away Guiding Principles:
  • 12. Hot Air Balloons and Network Engineers Looking over the edge of the basket gives you a immediate sense of anxiety and uneasiness.
  • 13. NX-OS Programmability for MP-BGP EVPN VXLAN Fabric Design
  • 14. Cisco Data Center Switching • If you are looking to Cisco for a Data Center switch, it will be a Nexus 9000. • Nexus 9000 runs in either of two modes: • NX-OS • Application Centric Infrastructure – ACI • Networks need Automation & Programmability. • NX-API enables a northbound REST interface on individual NX-OS switches • Nexus 3000 NX-API supported NX-OS 6.0(2)U4(1). • NX-OS release 7.x enables NX-API on Cisco Nexus 5000 and 6000 • APIC is the Software Defined Networking controller for ACI
  • 15. Ansible and Cisco Data Center Networking SSH – TCP/22 Users, API NTP – UDP / 123 HTTP(s) TCP/80:443:22 HTTP(s) TCP/80:443 SSH – TCP/22 GitHub HTTPS TCP/443 LDAP – TCP / 389 ESX Server Windows Systems Linux DockerAmazon Web Services Agentless Ansible / Tower REST API connection: local feature nx-api Nexus 3000 | 9000 Nexus 9000 ACI github.com/joelwking/ PARAMIKO APIC-EM Cisco IOS
  • 16. NX-OS Programmabilty • ******* [ customer name removed ] ******************* • MP-BGP EVPN VXLAN Fabric Design • Nexus 9500 spines (4) • Nexus 9300 leafs (40) • NX-OS configuration is complex 775 lines of config per leaf WWT Integration Technology Center (ITC) Cisco Virtual Topology System (VTS) Cisco Prime Data Center Network Manager (DCNM)
  • 17. Process Flow Group Variables (All Leafs) Host Variables (Individual Switch) Jinja Template L2 Port Configuration CSV L3 Port Configuration CSV Switch Configuration
  • 18. Configuring your network from Excel kingjoe@rocket:~/ansible/roles/excel_nxos/templates$ cat leaf_uplinks.j2 # # Template for leaf uplinks # {% for row in spreadsheet %} interface {{row.SourcePort}} description {{row.Description}} mtu 9216 load-interval counter 1 5 ip address {{row.SourceIP}} no ipv6 redirects ip ospf authentication message-digest ip ospf message-digest-key 1 md5 {{OSPF.message_digest_key}} ip ospf network point-to-point ip router ospf {{OSPF.processID}} area 0.0.0.0 ip pim sparse-mode no shutdown ! {% endfor %} end # # group_vars/leaf # OSPF: message_digest_key: DEADBEEF processID: 64800
  • 19. group_vars/leaf # # group_vars/leaf # OSPF: message_digest_key: DEADBEEF processID: 64800 BGP: as: 64800 neighbor: - {ip_address: 10.181.63.1, password: DEADBEEF} - {ip_address: 10.181.63.2, password: DEADBEEF} - {ip_address: 10.181.63.3, password: DEADBEEF} - {ip_address: 10.181.63.4, password: DEADBEEF} vrf: - PROD - ACPT - BACKUP - MNGMT
  • 20. host_vars/13leafzn01-rp01y # # host_vars/13leafzn01-rp01y # Vlan100: ip_address: 10.181.0.250/31 loopback0: ip_address: 10.181.63.11 mask: "/32" s_ip_address: 10.181.63.100 s_mask: "/32" # # vPC peer information # peer_keepalive: destination: 10.192.64.12 source: 10.192.64.11 channel_group_number: 10 channel_group: - interface: "Ethernet2/11" description: "13leafzn01-rp01z_E2/11" - interface: "Ethernet2/12" description: "13leafzn01-rp01z_E2/12" 13leafzn02-rp01.csv 13leafzn02-rp01_uplinks.csv Ethernet 1/1 - 48 (layer2 port configuration) Ethernet 2/1 – 4 (layer3 port configuration)
  • 21. Render the Configuration # # Template for leaf uplinks # interface Ethernet2/1 description 13spine-rp01_E1/1 mtu 9216 load-interval counter 1 5 ip address 10.181.0.1/31 no ipv6 redirects ip ospf authentication message-digest ip ospf message-digest-key 1 md5 DEADBEEF ip ospf network point-to-point ip router ospf 64800 area 0.0.0.0 ip pim sparse-mode no shutdown ! ! [ interfaces E2/2 E2/3 and E2/4 removed for brevity ] ! end Each column headers are variable names, cell contents are assigned to these variables. Variables are then used to render configuration. Network engineer controls column header names https://github.com/joelwking/ansible-nxapi/blob/master/csv_to_facts.py
  • 22. Cisco ACI Barrier to Success
  • 23. The History of the Cisco CLI • Wellfleet Communications • Early 1990’s • Extensive marketing around menu system for routers • Menu systems - hard to see a concise view of the configuration • Post Cisco IOS 9.21, sales of Wellfleet / Bay Networks started to slow. • Cisco’s growth continued on its upward trend. • Cisco CLI, extensive multi-protocol support and TAC instrumental to success. www.netcraftsmen.com/the-history-of-the-cisco-cli/ Wellfleet Communications Logo" by Source (WP:NFCC#4). Licensed under Fair use via Wikipedia
  • 24. Cisco ACI Barrier to Success • We need consumable documentation. • Cut-n-paste of XML at the end of text documentation and screen shots has minimal practical value. • CVDs of over 300 pages of screen shots isn’t consumable.
  • 25. Jinja Template of the XML and Playbook $ cat Create_VLAN_Pools.j2 <?xml version="1.0" encoding="UTF-8"?> <!-- Remarks: {{item._url}} --> <fvnsVlanInstP name="{{VLAN_pool.name}}" descr="{{VLAN_pool.descr}}" allocMode="static"> <fvnsEncapBlk name="{{VLAN_pool.name}}" descr="{{VLAN_pool.descr}}" allocMode="static" to="{{VLAN_pool.to}}" from="{{VLAN_pool.from}}"/> </fvnsVlanInstP> VLAN_pool: name: JINJA descr: PS ACI Deployment Engineer Class from: vlan-2700 to: vlan-2709 steps: - create_VLAN_Pools: _xml: Create_VLAN_Pools _url: "/api/mo/uni/infra/vlanns-[{{ VLAN_pool.name }}]-static.xml" tasks: - name: Create XML file(s) template: src: "{{local_path}}/{{item._xml}}.j2" dest: "{{local_path}}/xml/__{{item._xml}}.xml" with_items: "{{steps}}"
  • 26. Resulting XML $ cat __Create_VLAN_Pools.xml <?xml version="1.0" encoding="UTF-8"?> <!-- Remarks: /api/mo/uni/infra/vlanns-[JINJA]-static.xml --> <fvnsVlanInstP name="JINJA" descr="PS ACI Deployment Engineer Class" allocMode="static"> <fvnsEncapBlk name="JINJA" descr="PS ACI Deployment Engineer Class" allocMode="static" to="vlan-2709" from="vlan-2700"/> </fvnsVlanInstP> By providing a Jinja template of the XML file with several relevant variables specified in the YAML playbook, we can more easily consume the ACI documentation In this format, the XML documentation is consumable by the end customer.
  • 27. Configuring your ACI network from Excel http://erjosito.tumblr.com/post/129878491127/configuring-your-network-from-excel
  • 28. Landing • Automation concepts are applicable to ACI, NX-OS, ….. F5, …. etc. • Configurations becoming so complex we need documentation which abstracts to the common components. • Every balloon landing is a controlled crash • Champagne after flights originated to appease farmers.

Editor's Notes

  1. http://mentalfloss.com/article/52180/10-strange-facts-about-hot-air-balloons
  2. http://lifehacker.com/dont-just-learn-to-code-learn-how-to-think-from-comput-1598683903
  3. https://commons.wikimedia.org/wiki/File:07._Camel_Profile,_near_Silverton,_NSW,_07.07.2007.jpg
  4. http://radify.io/blog/four-principles-of-devops/
  5. WWT Integration Technology Center (ITC) is the hub of our global deployments and supply chain programs.
  6. http://www.netcraftsmen.com/the-history-of-the-cisco-cli/ Wellfleet Communications Logo" by Source (WP:NFCC#4). Licensed under Fair use via Wikipedia - https://en.wikipedia.org/wiki/File:Wellfleet_Communications_Logo.jpg#/media/File:Wellfleet_Communications_Logo.jpg
  7. https://www.cisco.com/c/dam/en/us/td/docs/unified_computing/ucs/UCS_CVDs/flexpod_esxi55u1_n9k_aci.pdf