Professional Documents
Culture Documents
and Automation
TECNMS-3601
Joe Clarke
Bruno Klauser
Jason Pfeifer
Nathan Sowatskey
Do you think SDN is just OpenFlow and Datacenter?
Let us explore the wealth of Cisco IOS Network Programming and Automation capabilities
to automate operational tasks, unlock the true power of your network and create sustainable
innovation.
This session provides a combination of theory, real life examples and hands-on lab of
technologies including Cisco One Platform Kit (onePK) APIs, Embedded Event Manager
(EEM), Scripting and other relevant features.
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public 4
Agenda
Introduction and Overview
• Planning & Design
• Deployment & Activation
• Monitoring & Operations
• Troubleshooting & Optimization
Summary
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public 5
Agenda
Introduction and Overview
• Software and Application
Life-Cycle Methodologies
(Waterfall – Iterative
– Agile – Continuous)
Summary
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public 6
Agenda
Introduction and Overview
• Plan
• Prepare
• Design
• Implement
• Operate
Summary
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public 7
Agenda Schedule
9:00- Introduction
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public 8
Break Times Schedule
9:00- Introduction
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public 9
Schedule
9:00- Introduction
Theory Part I
Lab Part I
Theory Part II
Lab Part II
Embracing The
Theory Part III
Software-Defined Era Lab Part III
-18:30 Close
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public 10
Once Upon a Time …
Applications were
• Monolythic
• Directly attached Storage
• Directly connected Terminal
• Local – Mainframe Room
• Static
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
… More Recently
Myriads of Things and Applications connected by the Network
Applications are
• Distributed, 2-tier, 3-tier, n-tier
Growing from Trillions to Tens of Trillions
• Remote Users
Smart Agriculture Smart Car Smart Health • Remote Storage
• Remote Peers, Sensors, Actors,
Sentinels, Satellites, Agents, ...
• Agile, Elastic
Growing from Billions to Trillions
Source: Machina Research
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
Change is the only Constant
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
Change is the only Constant – Next Generation of IT
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
Fast IT
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
Complexity
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
Complexity – Not All Complexity is Equal
Source: https://en.wikipedia.org/wiki/Cynefin
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
Complexity – Actionable Strategies
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
Complexity – Caveat: Over-Simplification
Einstein
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
Application Economy and Software-Defined
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
What‘s wrong? Why is it slow?
Resource Allocation
Element Management
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
Cisco Enterprise ACI
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
Cisco Enterprise ACI
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
Proliferation of 3 Main Concepts
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
Cisco Enterprise ACI – 3 Capabilities x 3 Layers (Subset)
Applications
Programmable Application Centric Virtualizable
Self-* and New Applications
SaaS and Software Driven Collaboration
Integration
Context Awareness Mobility, CMX
Operations, Business Intelligence SP/DC: Orchestration
Controller Layer
Controllers,
Analytics, Policy vAF Containers
Management and - UCS-E
- ISR 44xx
Orchestration - IOX / AirVision
apiconsole.cisco.com Prime vNAM,
- Nexus LXE
OpFlex - ASR (Bento) vWAAS, DNS,
DHCP, AAA
Application-Centric - ...
Controller Layer
Controllers,
Analytics, Policy
Services
Analytics
Management and Orchestration
Orchestration
Application-Centric
Infrastructure
Embedded Automation
Visibility and Control
Intelligence, Manageability
Network
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
Cisco Enterprise ACI – Evolving Interactions
Applications
Applications and Users
Self-* and New Applications
SaaS and Software Driven
1 4 2 5 3
Integration
Context Awareness
Controller Layer
Domain Controllers c
Controllers,
Analytics, Policy
manage
Management and d control e
Orchestration
Application-Centric
Virtual / Overlay Networks b
Infrastructure
Embedded Automation Network a
Visibility and Control
Intelligence, Manageability Data Plane – (ASIC and Software)
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
Schedule
9:00- Introduction
Theory Part I
Lab Part I
Theory Part II
Lab Part II
Infrastructure Layer
{Programmable, App-Centric, Virtual} Theory Part III
Lab Part III
-18:30 Close
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public 28
Programmable Network Layer
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
Programmable Network Layer
Programmable
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
Embedded Event Manager (EEM)
email SNMP set SNMP SNMP Reload or Application CLI IOS.sh TCL
Syslog
notification Counter get notification switch-over specific Applets Policies Policies
Actions
EEM Applets
multi-event-correlation Embedded Event
Manager
Event Detectors
Interface XML CDP
Syslog SNMP Timer none HW Watchdog CLI OIR ERM EOT RF GOLD NetFlow IPSLA Route 802.1x MAC
Counter RPC LLDP
ED EDs EDs ED EDs ED ED ED ED ED ED ED ED ED ED ED ED
ED ED ED
Remote:
• Fan
• Notification • Cron Process Interface
Syslog • Temp
Local: • Count Scheduler Descriptor
Event • Env
• Notification down Database Blocks
• ...
• Get/Set
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public 31
Real-World Example
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public 32
Packaging Network Automations
Problem: Cisco IOS Embedded Automation Systems often include multiple configuration items,
files, checks and procedures – how to ensure they are deployed consistently?
Solution: Cisco EASy provides a simple packaging mechanism and open-source EASy Installer. A
developer guide is available online to assist with the creation of EASy packages.
Package Description
Pre-Requisite Verification
EASy Installer = Menu Guided Installation
Pre-Installation Config +
Pre-Installation Exec MyPackage.tar
Environment Variables
Configuration Router# easy-installer tftp://10.1.1.1/mypackage.tar flash:/easy
-----------------------------------------------------------------
Files Configure and Install EASy Package ‘mypackage-1.03'
-----------------------------------------------------------------
Post-Requisite Verification
1. Display Package Description
Post-Installation Config 2. Configure Package Parameters
3. Deploy Package Policies
Post-Installation Exec
4. Exit
Uninstall
Enter option: 2
See: http://www.cisco.com/go/easy
EASy Package guide: http://tools.cisco.com/squish/cEAe3
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public 33
Embedded Automation Systems (EASy)
1. Browse and Download EASy Packages
www.cisco.com/go/easy
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public 34
Programmable Network Layer
Cisco Cloud Connector Toolkit . . . Cisco one IoT APIs
onePK BASE
NETCONF + Yang
...
Neutron
Puppet
OMI
PCEP
...
OpenFlow
I2RS
Programmable
Cisco onePK Agent Infrastructure .
Network Layer
Cisco IOS (Enterprise, Data Center, Service Provider)
(Physical + Virtual)
Data Plane – (ASIC and Software)
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public 35
Programmable Network Layer – onePK
Cisco Cloud Connector Toolkit . . .
c1921-oglaroon# show version Cisco one IoT APIs
Cisco IOS Software, C1900 Software
:
Cisco onePK API Presentation, Software Development Kit, Runtime
NETCONF + Yang
... transport socket
start
Neutron
Puppet
OMI
c1921-oglaroon#show onep ?
datapath ONEP datapath
history ONEP history
. . . trails
PCEP
OpenFlow
I2RS
session ONEP session
statistics ONEP statistics
status ONEP status
Programmable
Cisco onePK Agent Infrastructure .
Network Layer
Cisco IOS (Enterprise, Data Center, Service Provider)
(Physical + Virtual)
Data Plane – (ASIC and Software)
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public 36
Programmable Network Layer – onePK
Cisco Cloud Connector Toolkit . . . Cisco one IoT APIs
onePK BASE
NETCONF + Yang
SMP .Tue
. . Apr 16 16:02:56 EDT 2013 i686 i686 i386
GNU/Linux
Neutron
Puppet
OMI
[onepk@poghril ~]$ ls
onePK-sdk-c32-0.7.0.503g.tar
onePK-sdk-c64-0.7.0.503g.tar
onePK-sdk-java-0.7.0.503g.tar
PCEP
...
OpenFlow
I2RS
[onepk@poghril tutorials]$ java -classpath
.:libonep-core-rel.jar:libthrift-0.6.1.jar:slf4j-api-
1.6.1.jar com.cisco.onep.tutorials.HelloRouter
Programmable
Cisco onePK Agent Infrastructure .
Network Layer [onepk@poghril c]$ ls include
Ciscoonep_core_services.h … Service
IOS (Enterprise, Data Center, … … Provider)
(Physical + Virtual)
Data Plane – (ASIC and Software) [onepk@poghril c]$ ls lib
libonep32_core.so libonep32_datapath.so … … …
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public 37
Programmable Network Layer – onePK
Cisco Cloud Connector Toolkit . . . Cisco one IoT APIs
onePK BASE
NETCONF + Yang
...
Neutron
Puppet
OMI
PCEP
...
OpenFlow
I2RS
Programmable
Cisco onePK Agent Infrastructure .
Network Layer
Cisco IOS (Enterprise, Data Center, Service Provider)
(Physical + Virtual)
Data Plane – (ASIC and Software)
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public 38
Programmable Network Layer – onePK
Service Set Description
onePK BASE Data Path Provides packet delivery service to application: Copy, Punt, Inject
Provides filtering (ACL), classification (Class-maps, Policy-maps), actions
Policy (Marking, Policing, Queuing, Copy, Punt) and applying policies to interfaces on
network elements
Routing Read RIB routes, add/remove routes, receive RIB notifications
Get element properties, CPU/memory statistics, network interfaces,
Element
element and interface events
Discovery L2 topology and local service discovery
Syslog events notification, Path tracing capabilities
Utility
(ingress/egress and interface stats, next-hop info, etc.)
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public 39
Programmable Network Layer – onePK
“End-Node”
Choice of 3 “Blade”
Hosting Models “Process” On A Hardware Blade
• Dedicated memory/compute
On the Node • Low latency and delay
• Shared memory/compute • Requires modular hardware blade On An External Server
• Very low latency and delay • Plentiful memory/compute
• Available on select platforms • Higher latency and delay
• Supported by all platforms
Programmable
Cisco onePK Agent Infrastructure .
Network Layer
Cisco IOS (Enterprise, Data Center, Service Provider)
(Physical + Virtual)
Data Plane – (ASIC and Software)
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public 40
Programmable Network Layer – Evolution
next-gen
onePK
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public 41
Programmable Network Layer – Evolution
Extend and Customize ... Configure and Operate
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public 42
Programmable Network Layer
vNF
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
vNF – Embedded Services Router – ESR 5921
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public 44
vNF – Cloud Services Router – CSR 1000v
IOS-XE code base
• Comprehensive feature set
• 4 month release cycle – 3.9 (March ‘13), 3.10 (July ‘13), 3.11 (Jan’14) … CSR 1000V
Infrastructure Agnostic
• Cisco UCS, Dell, HP, etc. App App
RP
Intel and AMD processors supported
OS OS FP
• Runs on vSwitch, dVS, N1KV, etc.. – no dependency
• VMware ESXi 5.1, Citrix Xen Server 6.1, KVM – RHEL 6.3, RHEV 3.1 VPC/ vDC
supported
• Amazon AMI support in 3.11 Hypervisor
Footprint Virtual Switch
• 4 vCPU, 2 vCPU, 1vCPU supported.
Note: 2 physical cores * 2 = 4 vCPU with Hyperthreading
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public 45
Real-World Example
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public 46
vNF – Network Simulations
The Challenge
Developers have a compelling need to:
• Create new network applications and solutions
• Learn and test new features and facilities
• Innovate to solve business problems
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
vNF – Comparison of Network Simulations
Sandboxes in
vmcloud VIRL CML
dCloud / DevNet
Cisco
Primary Use Personal / Developers Developers / Demos Businesses
(Embedded in AiO VMs)
Nodes ~15 15 ~200 15+
Cost n/a $200 $0 / Subscription $13’200+
Support Community Community Community / Subscription TAC
Focus Early Adopters, EFT Early Adopters, EFT Stable Stable
Platform Openstack Icehouse Openstack Grizzly Openstack Grizzly
Latest Version VIRL vV204 VIRL vT337 CML 1.0.1
Device Images IOS all IOS, XR, CSR, ESR5921 IOS, XR, CSR
Extensible yes unsupported unsupported
Connectors 3 2 2
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
Programmable Network Layer
vMF
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
Cisco Prime Virtual NAM (vNAM)
Extends Application Intelligence to the Virtual Infrastructure
APPLICATION AWARENESS DEEPER NETWORK ANALYTICS DEPLOYMENT AGILITY
Data Center
Virtual NAM
• Deployed on any x86 platform
Virtual NAM • Supported in ESXi and KVM
ASR
environments
• Performance-Based License
INTERNET/ Application NAM-VX10: Up to 150 Mbps
WAN Servers
NAM-VX20 (ESXi only):
ISR
ISR Up to 1Gbps
Large
Remote Branch
Site
Branch ISR
• SPAN
• ERSPAN
• RSPAN
• VACL
• NetFlow
Virtual NAM • Promiscuous Mode
(ESXi)
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
Real-World
Example
Example: Application Visibility & Network Control
Apply Control/Configuration Changes to improve Application Performance and Availability
Problem: How to dynamically provide application Network Application
visibility per virtualized tenant?
Solution: Deploy vNAM into the virtual
REST/XML
workload POD
API
Example:
Service Assurance Actions (Examples) Cisco XNC
• Apply Service Policies (Police, Mark, PROGRAMMABILE
Shape, Queue) for reprioritization Traffic Steering
• Implement custom routing optimized for Path Setup
specific application topology Traffic Engineering
• Set ACLs to establish the access rules
Application Services
Hosted Workload
for Tenant
CSR
Application Services
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
Programmable Network Layer
vAF
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
Virtual Containers – Cisco 819
Core 0 Core 1
Guest Linux
YOUR Application running aboard
a Cisco 819 M2M Router
S Guest Application
LTE
D User-
space Guest Linux
R KVM + Qemu
Router A TCP/IP
Memory Footprint (incl Guest App): < 256 MB
Bare bone Kernel 3.0.6
IOS M
Cellular
modem
Supervisor Linux . driver
Guest Application
LTE
Modem Memory Footprint: < 64 MB
TCP/IP
M2M asset
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
Physical Containers – UCS E-Series Cisco UCS-E180D
Cisco UCS-E160D
Scalability
Cisco UCS-E140S
Cisco UCS-EN120S
• Service Module
• Service Module • Vmware, Hyper-V, Citrix
• Service Module • Vmware, Hyper-V, Citrix Certified
• Vmware, Hyper-V, Certified • Intel E5 8 Core Processor
• Service Module
Citrix Certified • Intel E5 6 Core • vWLC, vWAAS, Virtual
• VMware and
• Intel E3 4 Core Processor Desktops, Physical
Hyper-V Certified
• Network Compute Processor • vWLC, vWAAS, Virtual Security, Security
Desktops, Physical applications
Applications – • vWLC, vWAAS,
vWLC, vWAAS Physical Security Security
Feature Richness
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
Virtual Containers – ISR 4400 Series
Service Containers
Benefits
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
Virtual Containers – ISR 4400 Series
Third Party Service Containers
• Partners and other 3rd parties can now write apps
hosted on an ISR4K!
• Digital signing is REQUIRED so they must be
approved by Cisco (ISR Team).
• Development tools are still rough so we’re
partnering very closely with the first few.
• Also soliciting ideas for general-purpose common
tools in a container.
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
ISR 4400 Series Storage Options
NIM-SSD:
• 1 or 2 hot-swappable 200GB SSD drives
• 100GB and 400GB options in the future
NIM-HDD:
• 1 hot-swappable 500GB or 1TB drive
• Available as soon as a container supports it
SSD-MSATA-200G:
• Doesn’t consume a NIM slot!
• Embedded 200GB SSD storage
• Not available on 4431 & 4451
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
Controller Layer
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
Cisco Enterprise ACI
Network-aware Users and Applications – across Business Domains and Segments
Applications
Applications Applications Applications Applications
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
Schedule
9:00- Introduction
Theory Part I
Lab Part I
Theory Part II
Lab Part II
Hands-On
Theory Part III
onePK All-in-One VM Lab Part III
-18:30 Close
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public 61
Getting Started with the onePK AiO VM – 1/11
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
Getting Started with the onePK AiO VM – 2/11
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
Getting Started with the onePK AiO VM – 3/11
User: cisco
Password: cisco123
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
Getting Started with the onePK AiO VM – 4/11
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
Getting Started with the onePK AiO VM – 5/11
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
Getting Started with the onePK AiO VM – 6/11
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
Getting Started with the onePK AiO VM – 7/11
This is often optional
and the network will
often just work OOB.
Provide your Linux
Password
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
Getting Started with the onePK AiO VM – 8/11
Create
Certificate Authority
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
Getting Started with the onePK AiO VM – 9/11
Likewise.
onePK can use TLS to
connect to the Network
TLS uses Certificates
Certificates for use
with C and Python
are pre-generated at
/home/cisco/ca.pem
For Java …
Run Create Truststore
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
Getting Started with the onePK AiO VM – 10/11
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
Getting Started with the onePK AiO VM – 11/11
Confirm 3node
Router Reachability
(check for 10.10.10.0 route
using netstat -r)
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
Java @ onePK AiO VM
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
Java @ onePK AiO VM – Hello Element Basics 1/7
Launch Eclipse
Java Samples
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
Java @ onePK AiO VM – Hello Element Basics 2/7
1 -Open Project
java-apps
2 - Open src/main/java
3 – Open ...HelloElement
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
Java @ onePK AiO VM – Hello Element Basics 3/7
1 - Double click on tab to
maximise editor window
3 – Select Preferences…
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
Java @ onePK AiO VM – Hello Element Basics 4/7
3 - Press “OK”
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
Java @ onePK AiO VM – Hello Element Basics 5/7
In HelloElement.java
1 – Hardcode credentials
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
Java @ onePK AiO VM – Hello Element Basics 6/7
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
Java @ onePK AiO VM – Hello Element Basics 7/7
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
Java @ onePK AiO VM – Syslog Monitor 1/4
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
Java @ onePK AiO VM – Syslog Monitor 2/4
In SyslogMonitor.java
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
Java @ onePK AiO VM – Syslog Monitor 3/4
1 - Run the SyslogMonitor
application
2 – Go to router<n>
terminal window
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
Java @ onePK AiO VM – Syslog Monitor 4/4
1 – Open the
CDPTopologyProvider
class
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
Java @ onePK AiO VM – Tutorials 1/7
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
Java @ onePK AiO VM – Tutorials 2/7
In BaseTutorial.java
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
Java @ onePK AiO VM – Tutorials 3/7
Open the
TLSPinningHandler class
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
Java @ onePK AiO VM – Tutorials 4/7
In TLSPinningHandler.java
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
Java @ onePK AiO VM – Tutorials 5/7
For any given tutorial, comment out call to showAuthenticationDialog()
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
Java @ onePK AiO VM – Tutorials 6/7
Or, in BaseTutorial.java, add a return and comment out block of
showAuthenticationDialog(…)
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
Python @ onePK AiO VM
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
Python @ onePK AiO VM – 1/5
1 - Open
BaseTutorial.py
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
Python @ onePK AiO VM – 2/5
In BaseTutorial.py
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
Python @ onePK AiO VM – 3/5
In BaseTutorial.py and other tutorials as required
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
Python @ onePK AiO VM – 4/5
Navigate to
Python Tutorials – cd
~/onePK-sdk-
1.3.0.181/python/tutori
als
Run BaseTutorial.py
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
Python @ onePK AiO VM – 5/5
1 - Open, say,
SessionTutorial.py
2 – Change
handle_verify
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
Schedule
9:00- Introduction
Theory Part I
Lab Part I
Theory Part II
Lab Part II
Infrastructure Layer
{Programmable, App-Centric, Virtual} Theory Part III
Lab Part III
-18:30 Close
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public 98
Programmable Network Layer
vNF
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
Custom AiO Topology
Creating Your Own vmcloud Topology
• The vmcloud tool is a suite of python scripts that orchestrate IOSv
• Topologies can be created by defining them in XML-based .virl files
• A reference for the syntax can be found in the EmulatorUserGuide.pdf file on
the AiO desktop…
• …But it’s easier to use the existing ~/vmcloud-example-
networks/3node/3node.virl file as a guide
• Let’s create a four-node “chain” topology hanging off the AiO VM
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public 101
Our Target 4 Node Topology
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public 102
Our 4node VIRL File
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public 103
The type, subtype and
The Node Definition location can all remain
the same.
Each node has
a name.
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public 105
Connecting Things Together
Each connection element describes an endpoint of the topology.
Connections only need to be specified in one direction. Src and dst
values are specified using xpath notation (elements start at 1).
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public 107
Introducing VIRL
The Challenge
Developers have a compelling need to:
• Create new network applications and solutions
• Learn and test new features and facilities
• Innovate to solve business problems
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
So Who’s a ‘Developer’?
Customers
Software Houses
Integrators
Manufacturers
Partners
You…
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
Development Economics
Deploying a physical network test-bed
requires:
• Equipment ~$2000/node
• Setup ~1-2 hours per network
• Expertise level high @ ~$100/hour for CCNA
• Resources must be dedicated, scheduled
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
What is VIRL?
A network orchestration and virtualization
platform that enables:
• Point-and-click network design
• Painless configuration
• Integration of platform-sync’d code
• Rapid setup and tear-down
• Seamless connectivity with ‘real’ networks
• Portability and repeatability
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
Development Economics with VIRL
Deploying virtual target networks with VIRL:
• Equipment:
• ~$300 when PC-based (Hypervisor + VIRL)
[Tentative]
• More for UCS but multi-user, immense scale – 100s
or 1000s of nodes
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
Nested Virtualization
VMs
/ QEMU
HyperVisor
Host O/S
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
Built on OpenStack
Cinder
Horizon (Dashboard)
Swift
Nova (Block Neutron
(Object
APIs / CLI
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
VM Maestro
The graphical topology editing
Enables rapid definition of
network elements:
Routers
Links
Protocols
Facilities
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
Topology Representations
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<topology xmlns="http://www.cisco.com/VIRL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
AutoNetKit Auto-Configuration
Configurations
Network
Information DB
AutoNetKit
AutoNetKit:
Understands OS-specific configuration constructs
Presents graphical representations of topology attributes
Converts configurations between different OS-types and platforms
Topology Renderings
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
AutoNetKit Visualizations
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
Services Topology Director
Create Routers
•Identify Type / Flavor
•Associate Image (Glance)
•Identify / Assign Resources
•Associate Configuration
•Launch the VM (Nova)
XML Topology
Definition
The Services Topology Director orchestrates the creation of VIRL virtual routers and inter-router links
based on the XML-based topology definition and configurations based by VM Maestro
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
VIRL/Simulator Options
• AiO vmcloud - https://developer.cisco.com/site/onepk/downloads/all-in-one-vm/
– NOT really VIRL, based on Python scripts orchestrating IOSv virtual reference platform
– Optimised for low memory footprint of 4GB
• VIRL Personal Edition – virl.cisco.com
– Designed to run on internet connected personal machines
– Limited to 15 nodes of any type
– Community support only
• VIRL-based DevNet Sandboxes - https://developer.cisco.com/site/devnet/sandbox/
– Virtual sandboxes based on VIRL
• Cisco Modelling Labs (CML) - http://www.cisco.com/c/en/us/products/cloud-systems-
management/modeling-labs
– Can scale to unlimited nodes, RAM and CPU allowing
– TAC supported
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public 123
VIRL Demonstration
DevNet, the Sandboxes and DevHub
Introducing DevNet
Creating a Community of Software Developers who
Leverage Cisco Technology in Their Work
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
Developer.Cisco.Com
Where Developers go at Cisco
• Hosted sandboxes
• Paid for and community support
• Hackathons
• Dev Centres for Cisco technologies
• Community news and events
• Free t-shirts!
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
Collaboration Developer Sandbox
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
What Can You Do In the Sandbox?
• Try stuff out- Kick the tires with • Get Early Access to new releases of
Cisco technology and new products Cisco product versions
• Integrate your product with Cisco • Test to larger scales using our tools
technologies without investment in or proprietary Cisco tools
equipment, space, power or
• Complete IVT – Use your
technical talent to build, configure
engineering resources to execute our
and maintain
self-driven IVT on your time and at
• Collaborate across locations by reduced cost
sharing lab sessions across users
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public 129
Sandbox Features
• Self service and always on
• Several labs to choose from:
– Collaboration : UCM, MediaSense, Jabber Guest, UCCE,
– Networking: APIC EM (EFT2), Connected Grid Router, Mobility Services Engine, CMX
Cloud Services
– DataCenter: Security Orchestration, Intercloud Fabric, Customer Information Service
(CIS)
– Interoperability Verification (IVT) Labs for Cisco Compatibility Certification
• In lab options:
– Session sharing – collaboration across teams and locations in a single lab
– Tools: IXIA, Cisco IP phone Simulator and Call generator, Remote phone control
– Text at reservation start or duration test completion
– Virtual Machine for hosting user application
– Information in lab supporting use: Guides, sample applications, etc
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
Lab Models
Lab Models
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
Always On Versus Reservation
Shared Collaboration Environment Based Labs
Multiple users in same lab, No Lab Reserved for private use/Full admin control/ Lab can be
admin control shared amongst other company team members
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
Access DevNet Sandbox Labs
Login to DevNet/Go
Select/Reserve Lab Access Lab
to Sandbox
https://developer.cisco.com/site/devnet/sandbox/
https://sandboxapic.cisco.com/login
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
DevHub
The DevNet DevHub
• A Work in Progress, NOT generally available
– Apply here for early access
• Combines
– Source Code Management (SCM – Gerrit and Git)
– CI/CD pipeline (Jenkins, SonarQube, Artifactory)
– DevNet sandboxes (Physical and virtual labs on demand)
– Deployed on Cisco Cloud Services (CCS)
– Deploy to CCS
• Planned to include
– Open source and private projects
– Combine code in GitHub with build and test in DevHub
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
DevHub
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
Schedule
9:00- Introduction
Theory Part I
Lab Part I
Theory Part II
Lab Part II
Infrastructure Layer
{Programmable, App-Centric, Virtual} Theory Part III
Lab Part III
-18:30 Close
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public 138
Programmable Network Layer
vAF
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
Puppet
Network Device Orchestration Support:
Technologies
Customization Integrate network devices with
configuration management &
orchestration stacks
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
Puppet Overview CLOUD-BASED REPOSITORY
CENTRALIZED
OF PRE-BUILT SOLUTIONS
MANAGEMENT
Puppet Master
SERVER Puppet Forge
GUI Workflows
3RD PARTY
INTEGRATION
Reporting Admin & Monitoring
Security
DISTRIBUTED
AGENTS Agent Agent
Compute Cisco
Node Switch/Router
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
Puppet Open Source & Puppet Enterprise
Environment for Nurturing Innovation
• ~8,000 members
Upstream • Latest technologies
PUPPET MCOLLECTIVE FACTER • Rapid release cycles
Open Source
• ~1000s of changes / week
Projects +40 • Community support (IRC, forums)
SMALLER
PUPPETDB HIERA
FOSS PROJECTS IT Automation for Business-Critical Apps
• Commercial-only functionality
• Single integrated solution
• Graphical User Interface
• Installer & upgrader
• QA’d & security hardened
• Performance tuning
• API guarantees
• Support & maintenance
Commercial • Training & services
Product PUPPET ENTERPRISE
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
What Puppet Does
Source: http://puppetlabs.com/puppet/what-is-puppet
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
Puppet Pieces (Terminology)
• Puppet Master
– Central “controller” software which orchestrates configuration deployment for one or
more agents. Configuration expressed as a “manifest”.
• Puppet Agent
– Software which interacts with a single Puppet Master to obtain configuration (desired
state) in terms of Puppet Resources. Uses Puppet Resource Providers to carry out
tasks to achieve configuration (desired state).
• Puppet Resources
– Term used for grouping of managed objects/attributes and one or more corresponding
implementations of management tasks. The 2 layers of a resource:
• Resource Type: Definition of managed objects.
• Resource Provider: Implementation of management tasks on objects.
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
Puppet Pieces (Terminology) …continued
• Puppet Manifest
– Collection of configuration settings in terms of resource type instances. Often referred
to in puppet world as “code”. Manifests are commonly organized in sections that are
mostly generic for many nodes (sections apply to specific types of nodes) using
conditional logic.
• Catalogue
– Compiled form of manifest for a specific node—all variables have values and conditional
logic has been executed to result in concrete resource instance values.
• Facter
– Software which discovers runtime state on an agent node
• Facter Facts
– Runtime state for an agent node. Values can be strings, values, and arrays.
– Facts used as variables in most puppet contexts, ie. in puppet master manifests,
resource types, and resource providers.
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
Puppet per-Node (agent) Workflow
Source: http://puppetlabs.com/puppet/what-is-puppet
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
Puppet Language Example
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
Cisco NXOS Puppet Integration
Cisco Puppet Plug-In: Architecture
Data Center Network
Network OS
Cisco Network
Resources
Puppet Agent
LXC Container
Puppet Master
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
Sample Puppet Manifest Entry
node /n3k-puppet1.*/ {
include cisco_onep::device
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
Cisco NXOS Puppet Agent Integration
• Packaged as virtual-services LXC container OVA
• OVA registers CLI extensions
– Configuration commands
– Show commands
– Exec commands
– Clear commands
– Debug commands
• OVA syslogs are linked to NXOS syslog
– “show log”
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
Cisco NXOS Agent Config Prereqs
• ONEP VTY service set
– Device(config)# onep
Device(config-app)# service set vty
• NTP server
– Device(config)# ntp server 10.81.254.202 use-vrf management
• If time not in sync with puppet master’s time, SSL certificate usage may have
problems due to timeliness checks of encrypted messages.
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
Cisco Puppet Agent Config Example
• Puppet configuration mode
– bxb-oa-n3k-11(config)# puppet
– bxb-oa-n3k-11(config-puppet)# master pmaster.cisco.com port 8999
– bxb-oa-n3k-11(config-puppet)# vrf management
– bxb-oa-n3k-11(config-puppet)# run-interval 180
– bxb-oa-n3k-11(config-puppet)# node-name fact:fqdn
– bxb-oa-n3k-11(config-puppet)# domain-name cisco.com
– bxb-oa-n3k-11(config-puppet)# activate
– bxb-oa-n3k-11(config-puppet)# name-server 4.1.1.128
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
Puppet Run Modes
• Oneshot mode
– Single run of puppet agent to request configuration from puppet master and take action to put
resources in desired state.
• Exec command: exec puppet agent-oneshot
• No-op mode
– Single run of puppet agent to request configuration from puppet master BUT DO NOT take
action on resources.
• Used in scenarios where puppet master user wants to validate/inspect the catalogue being
compiled for a node and understand the delta with current state.
• Exec command: exec puppet agent-noop
• Daemon mode
– Recurring periodic runs of puppet agent requesting configuration from puppet master and take
action to put resources in desired state.
• Config command: (config-puppet)# activate
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
Puppet Run Report Example
Puppet Enterprise
Dashboard: Status
per resource
instance
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
Cisco
Puppet Resources
Use Cases
Image/Patch New Server/VM Deployment Config. Distribution
Server
Package Admin
Repository Puppet/
Puppet/ Puppet/C
Chef Network
Chef hef
Master Admin
Master Master
Cisco Device Access cisco_device Allows credentials for user access control &
accounting
Base L2/L3 interface cisco_interface General interface & L2/L3 base settings
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
Cisco Puppet Resource Type Coverage: 2
Feature Resource Description
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
Cisco
Puppet OVA Lifecyle
Puppet Deployment using POAP
DHCP Script Config
Puppet
OVA
4
2 3
Switch downloads script Download software images
DHCP phase: Execute script locally Download running-config
Get IP Address, Gateway
Download puppet_plugin.ova
Script server IP
Download plugin_activate.py
Script file name
script
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
References
• General Puppet
• What is Puppet? -- http://puppetlabs.com/puppet/what-is-puppet
• Basic Hands-on tutorial -- https://docs.puppetlabs.com/learning/index.html
• (VM based & Free)
• Puppet Core Resource Types:
https://docs.puppetlabs.com/puppet_core_types_cheatsheet.pdf
• Cisco Puppet
• User Guide: << (still in pre-release draft) >>
• Cisco Resources Pre-release documentation: EDCS-1381549
• Cisco Mail Lists:
• puppet-agent-dev: alias of Cisco developers working on puppet agents
• puppet-trolls: general Cisco community of puppet users & developers (tied with various
products/orgs)
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
Chef
Chef Overview
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
Chef Pieces (Terminology)
• Chef Server
– The Chef server acts as a hub for configuration data. It stores:
• Cookbooks
• Recipes (The policies that are applied to nodes)
• Metadata that describes each registered node that is being managed by the chef-client.
• Node
– Any physical, virtual, or cloud machine configured to be maintained by a chef-client.
• Chef Client
– Agent, runs locally on every node that is registered with the Chef server. When
– Brings nodes to expected state.
• Chef Resources
– Term used for a grouping of managed objects/attributes and one or more corresponding
implementations. The 2 layers of a resource:
– Resource Type: Definition of managed objects.
– Resource Provider: Implementation of management tasks on objects.
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
Chef Pieces (Terminology) …continued
• Cookbook
– Fundamental unit of configuration and policy distribution.
– Each cookbook defines a scenario, and all components that are required to support that
scenario.
• Recipe
• Is mostly a collection of resources, defined using patterns (resource names, attribute-
value pairs, and actions); helper code is added around this using Ruby, when needed
• Is authored using Ruby
• Must be stored in a cookbook
• May use the results of a search query and read the contents of a data bag
• May have a dependency on one (or more) recipes
• Must be added to a run-list before it can be used by the chef-client
• Is always executed in the same order as listed in a run-list
The chef-client will run a recipe only when asked
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
Chef Pieces (Terminology) …continued
• Ohai
– Tool used to detect attributes on a node, and then provide these attributes to the chef-client at
the start of
– Provides the attributes to the chef-client
• The types of attributes Ohai collects include (but are not limited to):
• Platform details, kernel data, hostnames, FQDN
• WorkStation
– A computer that is configured to run Knife, to synchronize with the chef-
repo, and interact with a single Chef server. The workstation is the
location from which most users will do most of their work, including:
• Developing cookbooks and recipes (and authoring them using Ruby)
• Keeping the chef-repo synchronized with version source control
• Using Knife to upload items from the chef-repo to the Chef server
• Configuring organizational policy, including defining roles and environments and ensuring that critical
data is stored in data bags
• Interacting with nodes, as (or when) required, such as performing a bootstrap operation
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
Chef per-Node (agent) Workflow
Source: http://docs.getchef.com/chef_quick_overview.html Emailing outside the container is not currently supported in a cisco device plugin env.
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
Chef Sample Interface Configuration
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
Cisco NXOS Chef Agent Integration
• Packaged as virtual-services LXC container OVA (32 bit)
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
Chef Ohai Example
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
References
• General Chef
• What is Chef? -- http://docs.getchef.com/chef_overview.html
• Basic Hands-on tutorial -- http://learn.getchef.com
• Chef Core Resource Types: http://docs.getchef.com/chef/resources.html
• Cisco Chef User Guide: << (still in pre-release draft) >>
• Cisco Chef Troubleshooting Guide: << (still in pre-release draft) >>
• Cisco Mail Lists:
• chef-agent-dev: alias of Cisco developers working on Chef agents
• Cookbook Git
– http://wwwin-gitweb.cisco.com/gitweb.cgi?p=one-agents/chef-
cookbooks/package.git;a=summary
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
Puppet / Chef Differences
• Puppet uses DSL as configuration language (Ruby option available 2.6.0 – 3.1),
Chef uses Ruby-like syntax in recipes.
• Puppet requests dependency declarations and satisfies them. Chef operates in
the order in which resources appear in cookbook
• Puppet Enterprise runs on your machines, as does Private Chef. Hosted chef
runs in Chef’s cloud.
• Chef does more processing on agent side, puppet on master.
• Chef targeted more for dev side of DevOps, Puppet for sysadmin side.
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
Zero Touch Deployment
Rolling Your Own With EEM
Device DHCP TFTP WEB
DHCP Discover
1
DHCP Offer 2
DHCP Request
3
DHCP Ack with option 67 and 150 4
Configuration file request
5
Configuration file send (includes EEM Applet)
6
7 Apply config and execute EEM applet
EEM applet requests EEM Tcl script
8
EEM Tcl script copied to local file system and register by the EEM applet
9
10 EEM Tcl script triggered, and collects some system information
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
Programmable Network Layer
vAF
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
Empowering Customers to Innovate Automated Management Scripts
Automated system visibility
Automated fault detections
Proprietary business functions
Cisco Delivers Cisco Customers Cisco Customer
Network Element Deploy & Manage NE needs a new
Feature rich, optimized, Deploy Business capability
secure software stack Functions
Cisco Customer
Cisco Extensible Network implements new capability
Element Technologies
Empower Cisco
Cisco Customer Cisco implements
customers to innovate Deploys new new capability
Decouples Cisco capability
customer’s rate of
innovation from Cisco s/w
release cycle
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
Cisco Extensible Network Technology Spectrum
Application Guest
Native Python Hosting Bash
Shell
(OVA)
Closed Open
System System
Cisco supports a spectrum of technologies for realizing
an Extensible Network Element
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
Source: Ben Golub; http://www.slideshare.net/dotCloud/golub-ben-arevmspasse
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
Source: Ben Golub; http://www.slideshare.net/dotCloud/golub-ben-arevmspasse
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
Source: Ben Golub; http://www.slideshare.net/dotCloud/golub-ben-arevmspasse
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
Linux Container (LXC) Basics
• Linux Containers (LXC) - a lightweight virtualization technology
Host LXC Container
• No hypervisor
• LXC shares the host kernel
• CPU
• Memory
• Storage Networking Model: Shared Host Stack
• Services appear as applications
running natively on the host
• Port addressable
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
LXC – Linux Containers
• LXC provides the guest environment its own process
and network space.
LXC Containers
• Utilizes underlying Linux Kernel features to contain
processes: Container
– Kernel Control Groups (cgroups)
Application 1
– Enhanced clone system calls
– Requires Linux kernel to be at least 2.6.24 Application 2
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public 203
Containers Versus Hypervisors
Containers Hypervisors
OS kernel level abstraction Hardware level abstraction
VM 1 VMN
Container 1 … Container N …
Guest OS Guest OS
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public 204
Nexus Container Network Model
Shared
Applications inside the container appear as applications
running natively on the host
Shared namespace:
Interfaces are directly mapped to container
Host platform
Network namespace: Host
eth0 eth1 eth2
Physical interfaces
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
The Guest Shell
Guest Shell
Guest Shell is an embedded Linux
Open Source
environment that allows customers Tools, utilities, applications Guest Shell is
(DevOps) to develop and run custom automatically enabled.
applications for automated control and Zero-touch.
Cisco
management of the Nexus family of 3rd Party Repository
datacenter switches. Apps DevNet 64bit application
environment
NXOS CLI interface
• Access the Guest Shell from
DevOps Guest Shell ships with
NXOS CLI python support enabled.
• Access NXOS CLI from within the NXOS CLI GUEST SHELL
Guest Shell
C and Java support can
onePK APIs onePK Apps Apps be added through YUM
• Access to a rich set of NXOS APIs Apps
for interface to management and
installs.
Python
datapath functions. System APIs Open Source Cisco
Python
enabled root Packages Libraries
Upgradeable rootfs
Python System APIs filesystem (Optional) (Optional) packages
• BCM shell ? bootflash
• What else?
Secure Linux Container (sLXC) Built on Secure LXC.
bootflash
• Read/write access to the NXOS Nexus
bootflash.
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
Guest Shell – What?
Guest Shell “What” Guest Shell Innards
Linux Container Environment RPM package manager (yum)
Symbiotic relationship with Network OS.
Python interpreter (pip support)
Activated at boot time.
Application and programmatic interface habitat. onePK libraries
Can be resized as needed by user (via CLI).
bootflash: access
Modular
Resource
Secure Isolation
Linux
Environmen
Allows users access to embedded Linux system t
Integrate Fault
d Service Isolation
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
Guest Shell – How?
Cisco ISV or Customer
Cisco bundles ova with native image build Cisco Artifact Customer loads bundle
Optional
Native Image +
Network Guest Package
Operating Shell OVA
OVA Image Load Manager
Third party
Package
System Bundle
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
Hands on the Guest Shell
Entering the Guest Shell Console
Guestshell
• Running with no arguments enters the Guest Shell
• Prompt changes to Linux Prompt
Exit
• Exits session, returns you to router prompt
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
Connectivity Outside of the Guest Shell (chvrf)
Usage:
By default communication is
performed using the default vrf
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
Dohost – Run Host OS CLI commands
Usage dohost
• Tool that runs underlying Host OS commands
• Returns output of commands
• Can be used for both show and config commands
• Multiple commands can be entered separated by space
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
Running Guest Shell commands from Host OS
Host OS (Nexus) CLI
Guestshell <command>
• Run guestshell commands from Host OS CLI
• Displays output of command on console
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
Scheduling Commands in Guest Shell
The nexus scheduling feature
can trigger Guest Shell
commands and scripts on a
periodic basis.
Cron within the Guest Shell can also be used. The cron package
needs to be installed through rpm.
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
Scheduling Commands in Guest Shell
The nexus scheduling feature
can trigger Guest Shell
commands and scripts on a
periodic basis.
Cron within the Guest Shell can also be used. The cron package
needs to be installed through rpm.
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
EEM and Guest Shell
The Embedded Event manager can
trigger Guest Shell commands
Enables enhanced EEM event detectors and scripts as an action.
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
Package Management – RPM - Part 1/3
Setup: RPM
• Red Hat Package Manager
Create a file to point to RPM repository: • Used to manage installed packages on the device
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
Package Management – RPM - Part 2/3
Install packages
• Run yum install <package name>
• chvrf used to select vrf
• Run yum as sudo to resolve permissions issues
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
Package Management – RPM - Part 3/3
Helpful yum options
• Yum list available
• See available packages
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
Package Management – PIP - Part 1/2
PIP
• Python package manager
• Pre-installed in Guest Shell environment
• Pip freeze
• Show installed packages
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
Package Management – PIP - Part 2/2
PIP
Setup:
• Uses web gets (wget) for information transfer
• Set web proxies if needed through environment variables
Set web proxies if needed:
• http_proxy
• https_proxy
Install package
• Pip install
• Chvrf management for management vrf
• Sudo –E
• -E will send environment variables to the sudo
shell
• Used to pass the http*_proxy variables
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
Running Python in Guest Shell – Part 1/4
Python
Interactively:
• Version 2.7.3 is packaged
From Script
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
Running Python in Guest Shell – Part 2/4
onePK
Python with onePK:
• onePK python libraries are packaged with Guest Shell
From Script
Import onepk libraries
onePK
• Version 1.3.0 packaged with Ashfield 3.1 Guest Shell
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
Running Python in Guest Shell – Part 3/4
Python
Using Guest Shell as a Python Development Environment:
• Interpreted language
• Simple • Does not need to be compiled to machine specific
• Fast bytecode
• Easy on-box modifications
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
Running Python in Guest Shell – Part 4/4
Python sockets
• Traditional socket calls available
Create
Connect
Send
Close
Create
Bind
Listen
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
Use Case:
Save configuration changes to git repository
Problem Definition
• Device configuration changes aren’t easily tracked
• Once a configuration change is committed it’s difficult to recover the previous
configuration state
• Configuration management systems are often proprietary and costly.
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
Solution
• The solution requires a git client installed in guest shell or linux container
• EEM used to track when a “copy run start” is issued
• EEM calls python script in guest shell/container to submit the config change to
the git repository
• Git client capable of forking existing repo (device configuration) and pulling
config to device
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
Implementation
• Split into two parts:
– EEM trigger on write memory and call guestshell python script
– Python script: git add / commit / push to repository
• Part 1: EEM
– event manager applet writer
– event cli match "copy running-config startup-config”
– action 1 cli copy running bootflash:/autoconfig/sturgis/running.latest
– action 2 cli guestshell sudo su - temp -c '/home/temp/tester.py'
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
Implementation
• Part 2: Python script
f = os.popen('mv -f /bootflash/autoconfig/sturgis/running.latest
/bootflash/autoconfig/sturgis/running')
who = f.read()
f.close
print "Result:", who
…
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
Result
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
Take Away
• Cisco shows its agility and flexibility with container environments
• Containers separate the ties to Cisco release cycle
• Containers provide an environment that can be replicated across
multiple machines
• Guest Shell opens up functionality such as the ability to edit files on machine.
Functionality that has not been possible in the past
• Facilitates interoperability with third party DevOps toolsets and workflows.
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
REST
REST Follows a Familiar Model
Web Browsing REST API Twitter: IDs of last five followers
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
There Are LOTS of RESTful APIs
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
Why Does This Matter for Networking? Easy to
use
Human Software
Readable Friendly
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
REST: It’s Not Just for Web Services
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
REST: Coming Soon to a Device Near You
Supported on CSR1kV since XE 3.10
• ASR1K in XE 3.14
Some Stats
• Interface, CPU, Memory
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
JSON-RPC
Comparison: REST/JSON-RPC
Similar: Both Send/Receive JSON over HTTP
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
Comparison: REST/JSON-RPC
Different: Resources (URIs)
• https://172.6.1.118/api/v1… • https://10.10.10.8/ins
…/global/banner
…/global/hostname
…/global/reload
…/interfaces/…
…/routing-svc/…
…/nat-svc/…
…/acl/…
… CSR1kV N9K
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
Different: Methods
• GET: Retrieve/List
• PUT: Replace
• POST: Create New Entry
• DELETE: Delete
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
JSON-RPC Details
• A very simple remote procedure call protocol encoded in JSON, sent over HTTP
• http://www.jsonrpc.org/specification
• method – (string) name of the method to • result - data returned by the invoked
be invoked. method.
• params – (array) objects to be passed • error - specified Error code if there was
as parameters to the defined method. an error invoking the method, otherwise
• Id – (any type) used to match the null.
response with request • id - id of the corresponding request.
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
NXAPI
• CLI Interaction with device over HTTP / HTTPS
• Input/Output encoded in JSON or XML (key for programmability)
[
{
"jsonrpc": "2.0",
"method": "cli",
"params": {
"cmd": "show clock",
"version": 1
},
Show "id": 1 NXAPI Web Server
Version
]
} (NGINX) Switch# conf t
Switch(config)# feature nxapi
HTTP / HTTPS
Switch(config)# exit
{
"jsonrpc": "2.0",
"result": {
"body": {
"simple_time": "15:00:37.762 PST Mon Aug 18 2014\n"
}
},
"id": 1
}
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
NXAPI – Web Sandbox
Point browser to IP Address of Network Element
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
NXAPI – Python Generation
Click on the Python button, and the tool will generate python
Interaction code for you.
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
NXAPI – Use Python to Interact
• Requests Module: HTTP for Humans
– Requests is an Apache2 Licensed HTTP library, written in Python.
• Opensource, can be downloaded from:
– https://pypi.python.org/pypi/requests
– http://docs.python-requests.org/en/latest/
import requests
import json
•url=
Easier to make http calls via requests than via urlib2 (less statements)
'https://api.github.com/some/endpoint'
headers= {'content-type': 'application/json'}
payload= {'some': 'data'}
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
NXAPI – Using Request to Get Version
#!/usr/bin/python
import requests
import json
"""
Modify these please
"""
url='http://127.0.0.1/ins'
switchuser='admin' Output
switchpassword='cisco'
myheaders={'content-type':'application/json-rpc'} 6.1(2)I3(0.107)
payload=[
{
"jsonrpc": "2.0",
"method": "cli",
"params": {
"cmd": "show version",
"version": 1
},
"id": 1
}
]
response = requests.post(url,data=json.dumps(payload), headers=myheaders,auth=(switchuser,switchpassword)).json()
print response['result']['body']['rr_sys_ver']
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
NXAPI – Response dump – Show Version
{ Output
"jsonrpc": "2.0",
"result": {
"body": {
"header_str": "Cisco Nexus Operating System (NX-OS) Software…",
"bios_ver_str": "08.02",
"kickstart_ver_str": "6.1(2)I3(1)",
"bios_cmpl_time": "05/27/2014",
"kick_file_name": "bootflash:///n9000-dk9.6.1.2.I3.1.bin",
"kick_cmpl_time": " 9/27/2014 23:00:00",
"kick_tmstmp": "09/28/2014 06:23:37",
"chassis_id": "Nexus9000 C9504 (4 Slot) Chassis",
"module_id": "Supervisor Module",
"cpu_name": "Intel(R) Xeon(R) CPU E5-2403",
"memory": 16402332,
"mem_type": "kB",
"proc_board_id": "SAL1819RX8U",
"host_name": "riddle",
"bootflash_size": 21693714,
"kern_uptm_days": 0,
"kern_uptm_hrs": 0,
"kern_uptm_mins": 57,
"kern_uptm_secs": 8,
"rr_usecs": 91405,
"rr_ctime": " Mon Oct 20 17:44:24 2014\n",
"rr_reason": "Reset Requested by CLI command reload",
"rr_sys_ver": "6.1(2)I3(0.107)",
"rr_service": "",
"manufacturer": "Cisco Systems, Inc."
}
},
"id": 1
}
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
NXAPI: Example Use Case
• Nexus switches are often deployed in pairs.
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
Dev Ops - Plug Ins
Dev Ops
Plug-ins
– Container based packaging of Dev Ops agents
– Ova as unit of packaging
– Device hosted
• Software runs on local device
– Standard
• Standard Linux software
– Software independence
• Secure: Not running in host OS NOS
• TTM: Host release independence, fast TTM Container
OS/Linux
Switch/Router
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
Schedule
9:00- Introduction
Theory Part I
Lab Part I
Theory Part II
Lab Part II
Control Layer
{Programmable, App-Centric, Virtual} Theory Part III
Lab Part III
-18:30 Close
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public 255
Cisco Enterprise ACI – Controller Layer
Controller Layer
(Orchestration + Analytics)
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
Cisco Enterprise ACI – Controller Layer
Major Milestones of Controller Development
Programmable Network
Network Layer Data Plane – (ASIC and Software)
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
Cisco Enterprise ACI – Controller Layer
Application Interfaces – (OSGi, REST, …)
Controller Applications
Flow Manager TIF Slice Manager
Controller Core
Controller Layer
(Orchestration + Analytics)
Service Abstraction Layer
CLI SNMP …
Programmable Network
Network Layer Data Plane – (ASIC and Software)
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
Cisco Enterprise ACI – APIC Enterprise Module
Cisco Applications based on APIC-EM
Path
Visualization
QoS
ACL
… … ...
and QoS Security IWAN
Inventory Automation Automation Plug-N-Play Automation
Programmable Network
Network Layer Data Plane – (ASIC and Software)
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
Cisco Enterprise ACI – Common Policy Namespace
App User
Profile Profile
ISE
Controller Layer
(Orchestration + Analytics)
Programmable
Network Layer
CLOUD DATA CENTER WAN ACCESS
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
APIC EM Apps innovate on design simplicity and intuitiveness
© 2013-2014 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 261
The focus is on interacting with the network based on intent based
policies; network configuration is by itself prescriptive and completely
abstracts out the complexity
© 2013-2014 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 262
Cisco Intent Policy Management
Intent Policies
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
System of Change vs. System of Record
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
Intuitive Visualization
Open REST API
Cisco APIC
OpenDaylight
Controller Enterprise Module
Architecture
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
APIC-EM Services
App 1 App 2
NB REST API
DEVICE Policy
Programmer Network Application
PfR
MODEL (QoS, ACL) Tapping Visibility
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco PublicCisco Confidential
APIC-EM Path Visualization and ACL Analysis
Hop-by-hop Details specific to 5-tuple Path
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
APIC-EM Path Visualization and ACL Analysis
Quickly identify ACL conflicts and shadows
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
Controller Layer
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
Cisco Enterprise ACI
Network-aware Users and Applications – across Business Domains and Segments
Applications
Applications Applications Applications Applications
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
APIC-EM in DevNet
DevNet Portal Community Forum DevNet Sandbox DevNet Zone!
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
APIC-EM in DevNet Sandbox
Login at developer.cisco.com
https://developer.cisco.com/site/apic-em/
(note: password may not be synchronized with the rest of cisco.com)
Navigate to Sandbox
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
APIC-EM in dCloud
• Cloud-based Demos
(and Learning)
• Scheduled or on-demand
• Customize and Save your own
• Login to:
http://dcloud.cisco.com
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
Schedule
9:00- Introduction
Theory Part I
Lab Part I
Theory Part II
Lab Part II
Hands-On
Theory Part III
APIC-EM REST API Lab Part III
-18:30 Close
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public 275
APIC-EM REST API – Python Sandbox Login
PC Session User Password PC Session User Password PC Session User Password
1 40189 11 40199 21 40209
2 40190 12 40200 22 40210
3 40191 13 40201 23 40211
4 40192 14 40202 24 40212
5 40193 15 40203 25 40213
6 40194 16 40204 26 40214
7 40195 17 40205 27 40215
8 40196 18 40206 28 40216
9 40197 19 40207 29 40217
10 40198 20 40208 30 40218
Example:
1) In the APIC-EM User Interface,
click on [API]
2) Navigate to the desired API
in our example:
/network-device/count
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
APIC-EM Northbound REST API
Problem: How to get started with a Controller API?
Solution: Explore
Example:
1) In the APIC-EM User Interface,
click on [API]
2) Navigate to the desired API
in our example:
/network-device/count
4) Prototype in Chrome/Postman
5) Code in your App (Python, Java, …)
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
APIC-EM – Topology API
Problem: How to interact with Device and Topology data via the REST API?
Solution: Let’s Explore
Example:
1) In the APIC-EM User Interface,
click on [API]
2) Drill down to Topology
3) Let’s look at L3
Routing Topology …
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
APIC-EM – Topology API
4) Try it out: http://<APIC-EM IP>/api/v0/topology/ospf
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
APIC-EM REST API – Tasks
Scenario 1 – Using Python / PyCharm
• List Device Inventory
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public 282
Schedule
9:00- Introduction
Theory Part I
Lab Part I
Theory Part II
Lab Part II
Putting Things Together Theory Part III
Lab Part III
-18:30 Close
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public 283
Troubleshooting Stuff
Has This Ever Happened To You?
Have you ever been staring at a console for a memory leak to reoccur?
Have you ever been alerted to a problem by 1000 users calling the NOC?
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public 285
Reactive > Proactive With Automation
and Programmability
• DETAILED – An insider’s view allow you get more granularity information
than you could have afford through external communication
• RELIABLE – Captures reliable information within the device when
connectivity to external systems are not available or reliable
• EVENT-DRIVEN – Automation and programmability provide event hooks
integrated with OS modules to generate event and allow you to avoid
constant polling
• RICHNESS – Network programmability can provide visibility into parts of
the network never before possible
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public 286
What Can Automation Do for Me?
Challenge 1: Every few weeks a router is running low on memory
around 2 am, and I want to find out what’s happening
• Solution: EEM policy could be triggered based on the memory utilization, capture the
memory information and send the output with Syslog or Email
• Solution: OnePK application can be used to connect to the central database, extract
the commands given the device’s place in the network, run the diagnostics, and then
report the results
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public 287
Warm Up
Real-World Example
Automate Diagnostics
event manager applet LOW_IO_MEM
event snmp oid 1.3.6.1.4.1.9.9.48.1.1.1.6.1 get-type exact entry-op lt entry-val "4000000” poll-interval 60
action 0.0 syslog msg "LOW MEMORY DETECTED. Please wait – logging information to flash:low_mem.txt”
action 0.1 cli command "enable”
action 0.2 cli command "term exec prompt timestamp”
action 1.2 cli command "show memory statistics | append flash:low_mem.txt”
action 1.3 cli command "show process mem sorted | append flash:low_mem.txt”
action 2.3 cli command "show mem all total | append flash:low_mem.txt”
action 3.2 cli command "show log | append flash:low_mem.txt”
action 3.3 cli command “show tech | append flash:low_mem.txt”
action 3.4 cli command “show mem debug leaks summ | append flash:low_mem.txt”
• Capture the required diagnostic information at the time a low I/O memory event
occurs
• Save the data for future analysis and alert the operators that the problem has
occurred
• This simple applet is extremely popular in TAC that use this every time they are
diagnosing a low I/O memory case
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public 289
Real-World Example
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public 290
Real-World Example
A Network “Top”
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public 291
A Brisk Walk
Real-World Example
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public 293
Real-World Example
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public 294
Path Failover
• EEM, IPSLA, and enhanced
object tracking can help fail
over a path if an
intermediate hop fails
• EEM can augment standard HQ
failover to make sure the
X
existing path is stable
enough before restoring
main-path traffic flow
Remote Office
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public 295
Real-World Example
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public 296
Real-World Example
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public 297
Real-World Example
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public 298
Real-World Example
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public 299
Diagnostic Tools
Embedded Packet Capture (EPC)
Overview
• Capture packets flowing from, to, or through a given device
• Captures can be filtered using ACLs
• Captured packets can be exported for analysis in sniffer programs such as Wireshark
• CEF and process switched flows are supported
• IPv4 and IPv6 are supported
Source: http://tools.cisco.com/squish/4AbbF
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public 301
Generic Online Diagnostics (GOLD)
• Boot up Diagnostics (upon boot and OIR)
Leading Practice: schedule all non-
• Periodic Health Monitoring (during operation) disruptive tests periodically
• On Demand (from CLI)
• Scheduled Testing (from CLI)
• Test Types include:
– Packet switching tests
• Are supervisor control plane & forwarding plane
functioning properly?
• Is the standby supervisor ready to take over?
• Are line cards forwarding packets properly?
• Are all ports working?
• Is the backplane connection working?
– Memory Tests
– Error Correlation Tests
• Complementary to POST
Available from: CatOS 8.5(1), IOS 12.2(14)SX
Platforms: CBS 3xxx, Cat 3560, 3750, 6500, ME6524, 72xx, 10k, CRS
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public 302
Generic Online Diagnostics (GOLD) – 3/4
1) Let’s see which GOLD tests are available and scheduled for our Module:
Router# show diagnostic content module 3
Module 3:
See: http://www.cisco.com/en/US/docs/switches/lan/catalyst6500/ios/12.2SX/configuration/guide/diagtest.html
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public 303
Generic Online Diagnostics (GOLD) – 2/4
Problem: Repeated insertion and removal of Modules can lead to wear and
tear damage on connectors. This in turn can cause failures … how do you
find out during operation, without power-cycling the box ?
Solution: Use GOLD to verify functionality of a mis-behaving module
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public 304
Generic Online Diagnostics (GOLD) – 4/4
2) Now let’s run TestL3VlanMet on-demand for Module 3:
Port 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
----------------------------------------------------------------------------
U U U U U U U U U U U U U U U U U U U U U U U U
:
:
18) TestL3VlanMet -------------------> F
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public 305
GOLD and Automations
Combining GOLD and
Embedded Automation
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public 307
Let’s Start Jogging
Diagnosing Transient Problems
Problem: Periodically, your network encounters strange problems that cause
connectivity issues or performance problems. You’d like to be able to look at the
traffic on the network when the problem is occurring. Unfortunately, hindsight is
always 20/20, but it doesn’t allow you you to go back in time to put a sniffer on
the network ahead of the problem .
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public 309
Diagnosing Transient Problems
Doing Things the Long Way
But the sniffer captures the traffic AFTER the problem occurred!
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public 310
Diagnosing Transient Problems
Solution: Use Embedded Packet Capture together with Embedded Event
Manager to create an always-running “Digital Packet Recorder.” Add logic to
recognize the event you want, and then stop the capture. The resulting capture
file can be emailed to you for analysis at a convenient time (think MythTV for
your network ).
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public 311
Troubleshooting Transient Problems
Configuring EPC
• Setup EPC to use a circular buffer, and run forever
• Capture on all interfaces so that nothing gets lost
– You can pick a specific interface if you want
• Start the capture manually, and then EEM will take care of stopping the capture
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public 312
Troubleshooting Transient Problems
Stopping the Capture With EEM
::cisco::eem::event_register_syslog pattern "%CRYPTO-4-RECVD_PKT_MAC_ERR: decrypt: mac
verify failed"
React to a syslog
namespace import ::cisco::eem::*
namespace import ::cisco::lib::*
indicating that the
specific problem has
if { [catch {cli_open} result] } { occurred
error "Failed to open CLI session: '$result'" $errorInfo
}
…
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
Troubleshooting Transient Problems
Send the Capture File As an Email
if { [catch {cli_exec $cliarr(fd) "monitor capture buffer capbuf export flash:dpr.pcap"} result] } {
error "Failed to export capture buffer: '$result'" $errorInfo
} Export the capture
set email_body_pre "Mailservername: $_email_server
From: $_email_from to a file on flash
To: $_email_to
Cc:
Subject: Email from Router $_router_name
MIME-Version: 1.0
Content-type: multipart/mixed; boundary=\"EEM_email_boundary\"
\n--EEM_email_boundary\n
Create an email with
\n--EEM_email_boundary a MIME header
Content-Type: application/octet-stream
Content-Transfer-Encoding: Base64
Content-Disposition: attachment; filename=\”dpr.pcap\"\n\n"
if [catch {open "flash:vpn.pcap"} result] {
error "Failed to open flash:dpr.pcap: '$result'" $errorInfo
}
set fd $result
fconfigure $fd –translation binary Send the email
set email_b64 [::base64::encode [read $fd]]
close $fd
set email_body_mime "\n--EEM_email_boundary--"
set email_body [format "%s%s%s" $email_body_pre $email_b64 $email_body_mime]
if [catch {smtp_send_email $email_body} result] {
error "Failed to send email: '$result'" $errorInfo
}
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public 314
Diagnosing Transient Problems With Your DPR
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public 315
Enabling Debug on a Remote Device
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public 316
Enabling Debug on a Remote Device
• It is possible to to trigger an EEM on one device from another device.
• This is most easily done by sending an EEM trap from one device, and intercepting the
trap using the SNMP-Notification ED on the second device
• Requires EEM 2.4 or higher on the second device, but only EEM 1.0 on the device
sending the trap
Something
happened… I’m on it.
SNMP Trap
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public 319
Remote Command Execution
• If traps (and UDP) are not your thing, use telnet or SSH to do the synchronization
the EASy way
• Automate commands on another (maybe non-IOS) device using EEM from a
remote device
• EEM can automate connections across multiple protocols
– Telnet
– Reverse telnet
– Session
– Remote console
– Remote commands
– SSH (15.1(4)T and 15.2(2)T and higher)
• EASy package exists to help with this
– EASy Command Shell
– Download from http://tools.cisco.com/squish/b35c5
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public 320
Sprinting!
EEM Tcl Policy
• Suspending Inactive Ports
::cisco::eem::event_register_syslog pattern "LINEPROTO-5-UPDOWN" maxrun 600
set fd $result
set contents [read $fd]
close $fd
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public 323
EEM Tcl Policy
• Track Ports That Are Down
::cisco::eem::event_register_timer cron cron_entry "0 0 * * *" queue_priority normal maxrun 600
if { ![info exists suspend_ports_days] } {
set result "ERROR: Policy cannot be run: variable suspend_ports_days has not been set"
error $result $errorInfo
}
if { ![info exists suspend_ports_config] } {
set result "ERROR: Policy cannot be run: variable suspend_ports_config has not been set"
error $result $errorInfo
}
namespace import ::cisco::eem::*
namespace import ::cisco::lib::* Every night at
proc run_cli { clist } { ... } midnight, another
set SECS_IN_DAYS 86400
set DOWN 0
EEM policy runs that
set UP 1
set ADMIN_DOWN 2 records each “down”
set now [clock seconds] port into a file…
set susp_time [expr $suspend_ports_days * $SECS_IN_DAYS]
array set suspend_ports [list]
if { [catch {open $suspend_ports_config "r"} result] } {
array set ports [list]
} else {
set fd $result
set contents [read $fd]
close $fd
set contents [string trim $contents]
array set ports [split $contents]
}
…
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public 324
EEM Tcl Policy
• Track Ports That Are Down (Cont.)
set result [run_cli [list "show ip interface brief | include Ethernet"]]
foreach line [split $result "\n"] {
set line [string trim $line]
regsub -all {\s+} $line " " line
set elems [split $line]
set iface [lindex $elems 0]
if { ! [regexp {Ethernet} $iface] || [llength $elems] < 6 } {
continue
}
if { [lindex $elems 4] == "administratively" && [lindex $elems 5] == "down" } {
set status $ADMIN_DOWN
} elseif { [lindex $elems 4] == "down" } {
set status $DOWN
} elseif { [lindex $elems 4] == "up" && [lindex $elems 5] == "up" } { …If the port has been
set status $UP
} else { down long enough, it
set status $DOWN
} is put on a “to-be-
if { [info exists ports($iface)] } {
if { $status == $UP || $status == $ADMIN_DOWN } { shutdown” list.
array unset ports $iface
} else {
if { [expr $now - $ports($iface)] >= $susp_time } {
set suspend_ports($iface) $ports($iface)
}
}
} else {
if { $status == $DOWN } {
set ports($iface) $now
}
}
}
…
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public 325
EEM Tcl Policy
• Track Ports That Are Down (Cont.)
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public 326
Isolating Packet Loss
• Users don’t call to complain about
network problems
• They call because an application
doesn’t work properly
• Isolating performance or
connectivity problems has to begin HTTP (100 ms)
at the application layer
– See what the user is seeing Data Oracle (175 ms)
– See how the network treats the Data Plane
actual application data
• OnePK with the Datapath Service Voice (2 ms)
Set gives rich visibility into the
application traffic
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public 327
Real-World Example
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public 328
Schedule
9:00- Introduction
Theory Part I
Lab Part I
Theory Part II
Lab Part II
Hands-On
Theory Part III
Putting Things Together Lab Part III
-18:30 Close
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public 329
Lab III
• This Lab Slot is Short(er)
• For You to choose and continue exploring
• Some Suggestions
– On the AiO VM
• Continue exploring the onePK Tutorials
• Refresh Your EEM Skills
• Create custom Topologies with vmcloud
– In the APIC-EM Sandbox
• Continue exploring the REST Tutorials
– Directly in dCloud
• Book an APIC-EM Python Sandbox, then customize and save your own
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public 330
Schedule
9:00- Introduction
Theory Part I
Lab Part I
Theory Part II
Lab Part II
Summary and
Theory Part III
References Lab Part III
-18:30 Close
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public 331
Proliferation of 3 Main Concepts
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
Cisco Enterprise ACI – 3 Capabilities x 3 Layers (Subset)
Applications
Programmable Application Centric Virtualizable
Self-* and New Applications
SaaS and Software Driven Collaboration
Integration
Context Awareness Mobility, CMX
Operations, Business Intelligence SP/DC: Orchestration
Controller Layer
Controllers,
Analytics, Policy vAF Containers
Management and - UCS-E
- ISR 44xx
Orchestration - IOX / AirVision
apiconsole.cisco.com Prime vNAM,
- Nexus LXE
OpFlex - ASR (Bento) vWAAS, DNS,
DHCP, AAA
Application-Centric - ...
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public
Cisco ACI and SDN @ CiscoLive Milan
• Recommended Learning Path on SDN
60+ Breakouts, Tech Seminars, Labs, Panel Discussion, …
• DevNet @ CiscoLive
Learning Labs, Demo Pods,
Arena Sessions, Hackathon
• World of Solutions
Level 1 North
• Table Topics
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public 335
Cisco ACI and SDN Sessions @ CiscoLive Milan
Over 60 Sessions on ACI and SDN ( http://cs.co/CLEU15-ACI ) :
Tech Seminars
Monday TECACI-2009 Application Centric Infrastructure (ACI) - The Policy Driven Data Center
Monday TECSDN-3600 APIC Enterprise Module – SDN in the Enterprise
Monday TEC-NMS-3601 Advanced Network Programming - Lab Technical Seminar
Monday TECSPG-2300 Network Function Virtualization Seminar
Monday TECRST-2611 Network Simulation: The VIRL Compendium
Monday TECMPL-3200 SDN WAN Orchestration in MPLS and Segment Routing Networks
Monday TECCRS-2003 Advanced WAN Design Topics
Panel Discussions
Using Software-Defined Concepts and OpenDaylight-inspired Controllers to
Tuesday PNLSDN-1000
Increase Business Agility and Competitive Differentiation
Tuesday PNLDCT-2001 Overlays in the Data Center - A Customer Perspective
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public 336
Cisco ACI and SDN Sessions @ CiscoLive Milan
Over 60 Sessions on ACI and SDN ( http://cs.co/CLEU15-ACI ) :
Labs
Tuesday LABACI-2223 APIC integration with OpenStack
Tuesday LABSDN-2331 Cisco ACI hands on Lab
Tuesday LABSPG-2443 Cisco EPN Labs
Tuesday LABVIR-2446 Network Function Virtualization
Tuesday LTRDCT-1224 Implementing VXLAN in Datacenter
Wednesday LTRDCT-1224 Implementing VXLAN in Datacenter
Wednesday LABSPG-2442 NCS: Network Control System Hands-on Lab (Tail-f)
Thursday LABNMS-2001 Advanced Network Automation and Solutions using Cisco IOS EEM
Friday LABNMS-2001 Advanced Network Automation and Solutions using Cisco IOS EEM
Friday LABSDN-1335 Getting Started with OpenDaylight
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public 337
Cisco ACI and SDN Sessions @ CiscoLive Milan
Over 60 Sessions on ACI and SDN ( http://cs.co/CLEU15-ACI ) :
Breakout Sessions – 1/4
Tuesday BRKSDN-2120 Demystifying Security in the Software Defined Era
Tuesday BRKSDN-1014 Introduction to Software-Defined Networking (SDN) and Network Programmability
Tuesday BRKRST-2015 SDN - From Concepts To Reality
Tuesday BRKRST-2121 Self Learning Networks
Tuesday BRKDCT-2131 Mobility and Virtualization in the Data Center with LISP and OTV
Tuesday BRKACI-2244 Application Virtual Switch for Application Centric Infrastructure Overview
Wednesday BRKCRS-3447 Network Function Virtualization for Enterprise Networks
Wednesday BRKNMS-3043 Performance Measurement for IP and SDN Traffic with Cisco IOS IP SLA
Wednesday BRKACI-1025 Migration from Classic Design to ACI
Wednesday BRKDCT-2367 OpenStack Deployment in the Enterprise
Wednesday BRKSPG-2515 SDN-enabled Carrier Ethernet Architectures
Wednesday BRKSDN-1200 Cisco Applications on OpenDaylight - An Introduction
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public 338
Cisco ACI and SDN Sessions @ CiscoLive Milan
Over 60 Sessions on ACI and SDN ( http://cs.co/CLEU15-ACI ) :
Breakout Sessions – 2/4
Wednesday BRKACI-2678 Building Application Centric Network Containers and Service Graphs with ACI and UCSD
Wednesday BRKSPG-2516 SDN Protocols in Internet
Wednesday BRKSDN-2118 Simulating networks using Cisco Modeling Labs
Wednesday BRKGEN-2999 Introductory - Autonomic Networking
Wednesday BRKSDN-1119 Device APIs — A Guide For the Perplexed
Wednesday BRKACI-2345 ACI: What We Have Learnt from Early Deployments
Wednesday BRKIOT-2442 Enabling the Internet of Everything: Cisco’s IoT Architecture
Wednesday BRKOPT-2102 Software Innovations and Control Plane Evolution in the new SDN Transport Architectures
Wednesday BRKSDN-3014 Packet Inspection and Manipulation for Fun and Profit
Wednesday BRKSPM-2001 GiLAN and Service Chaining
Wednesday BRKACI-2333 Application Centric Networking Troubleshooting 101 - Install & Implementation of ACI
Wednesday BRKACI-1789 How to Perform Common Tasks in ACI
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public 339
Cisco ACI and SDN Sessions @ CiscoLive Milan
Over 60 Sessions on ACI and SDN ( http://cs.co/CLEU15-ACI ) :
Breakout Sessions – 3/4
Thursday BRKNMS-3114 13 Smart Ways to Program Your Cisco IOS Network
Thursday BRKCRS-3011 APIC-EM (Application Policy Infrastructure Controller - Enterprise Module) SDN in Enterprise
Thursday BRKACI-3456 Mastering OpenStack and ACI
Thursday BRKDCT-1349 Application Traffic Visibility and Analysis with Cisco Nexus Data Broker
Thursday BRKSPG-2722 SDN deployment in ASR9000
Thursday BRKACI-2249 Future Direction of SDN and NFV
Thursday BRKDCT-2255 Infrastructure Designs for Intercloud Data Centers
Thursday BRKACI-2001 Integration and Interoperation of existing Nexus networks into an ACI architecture
Thursday BRKACI-2006 Integration of Hypervisors and L4-7 Services into an ACI Fabric
Thursday BRKSPG-2456 The True Realisation of SDN and NFV in an SP environment
Thursday BRKNMS-1036 IT Operations Management in the SDN Era – with Prime Infrastructure and APIC Controllers
Thursday BRKSPG-2520 Evolved Programmable Network for Seamless Service Transport
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public 340
Cisco ACI and SDN Sessions @ CiscoLive Milan
Over 60 Sessions on ACI and SDN ( http://cs.co/CLEU15-ACI ) :
Breakout Sessions – 4/4
Thursday BRKSDN-2777 Network Programming and DevOps Software Development Lifecycle
Friday BRKSPG-2016 Architectures for new services over Cable
Friday BRKSPG-2517 Hosted Security as a Service Solution Architecture Design
Friday BRKACI-3344 Application Centric Networking Troubleshooting 201 – Day 2 Operations
Friday BRKARC-3467 Cisco Enterprise Silicon - Delivering Innovation for Advanced Routing and Switching
Friday BRKNMS-2445 Improve Application Delivery with Cisco AVC in the Data Center and Cloud
Friday BRKSDN-2116 Run your apps and tools natively on Cisco boxes
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public 341
Call to Action
• Visit the World of Solutions for
– Cisco Campus
– Walk in Labs
– Technical Solution Clinics
• Meet the Engineer
• Lunch time Table Topics
• DevNet zone related labs and sessions
• Recommended Reading: for reading material and further resources for this
session, please visit www.pearson-books.com/CLMilan2015
Presentation_ID © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public 342
Complete Your Online Session Evaluation
• Please complete your online session
evaluations after each session.
Complete 4 session evaluations
& the Overall Conference Evaluation
(available from Thursday)
to receive your Cisco Live T-shirt.
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public 343
Network Programming and Automation
•
•
•
•
TECNMS-3601 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Public 344