show and tell: virl for network programmability and development
TRANSCRIPT
Show and Tell: VIRL for Network Programmability and Development
DevNet-1005
Ralph Schmieder, Technical Leader
CCIE 9680 (R&S, Security)
“VIRL is the missing link for test
driven development”
3
© 2015 Cisco and/or its affiliates. All rights reserved.Presentation_ID Cisco Public
Agenda
• Overview
• System Architecture
• Demo
• Conclusion
4
© 2015 Cisco and/or its affiliates. All rights reserved.DevNet-1005 Cisco Public
Session Objectives
After this session you should be able to:
• Describe the value of VIRL to the network programmability community
• Describe the VIRL architecture
• Understand basic VIRL API usage
“Include VIRL into your network programmability / test driven development tool chain”
VIRL: Overview
© 2015 Cisco and/or its affiliates. All rights reserved.DevNet-1005 Cisco Public
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
To do this they need a test-bed that is:
• Easy to build
• Easy to configure
• Easy to scale
• Easy to access
• Portable
• Inexpensive
And everyone wants their own…
© 2015 Cisco and/or its affiliates. All rights reserved.DevNet-1005 Cisco Public
So, Who’s a Developer?
Customers
Integrators
Partners
Software Houses
You…
Manufacturers
© 2015 Cisco and/or its affiliates. All rights reserved.DevNet-1005 Cisco Public
Deployment Economics
Deploying a physical network test-bed requires:
• Equipment ~$2,000/node
• Setup ~1-2 hours per network
• Expertise level high @ ~$100/hour for CCNA
• Resources typically must be dedicated, scheduled
Time and money are being wasted
VIRL can help simplify and streamline development
processes and environments
© 2015 Cisco and/or its affiliates. All rights reserved.DevNet-1005 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
© 2015 Cisco and/or its affiliates. All rights reserved.DevNet-1005 Cisco Public
Deployment Economics with VIRL
Deploying virtual target networks with VIRL:
• Equipment:
Laptop or Server with appropriate spec
VMware hypervisor
VIRL Personal Edition (includes 15 Cisco Node License)
• Setup ~minutes per network
• Expertise significantly reduced –VIRL does the work!
• Little or no contention for resources
• Portable – work wherever, whenever
VIRL: System Architecture
12
© 2015 Cisco and/or its affiliates. All rights reserved.DevNet-1005 Cisco Public
IOS XR NX-OS IOS XE IOS
Virtualized in
IOS XRv
Virtualized in NX-OSv
Virtualized in CSR1000v
Virtualized in IOSv
Servers
Ubuntu, Cirros, 3rd party
appliances
Virtual Machines run the operating system but are NOT representations of
a particular hardware platform – no fans, no switch fabric, no ASIC models
VIRL ArchitectureVirtualized Platform Operating Systems
13
© 2015 Cisco and/or its affiliates. All rights reserved.DevNet-1005 Cisco Public
IOS XR NX-OS IOS XE IOS
Virtualized in
IOS XRv
Virtualized in NX-OSv
Virtualized in CSR1000v
Virtualized in IOSv
Servers
Ubuntu, Cirros, 3rd party
appliances
• Same Control-plane code
• Same Management plane code
• Same memory footprint
14
• Different CPU performance
• Different Forwarding plane code
• No ASIC emulation
VIRL ArchitectureVirtualized Platform Operating Systems
© 2015 Cisco and/or its affiliates. All rights reserved.DevNet-1005 Cisco Public
Virtualization. Maybe Nested
• Virtualized devices (CPU, I/O, memory) enable a single host to support many virtual machines
• KVM / QEMU provides a kernel-based Hypervisor / host-virtualization facility
• Ubuntu provides the basic host operating system
• Intel VT-x / AMD-V capable CPUs expose hardware-virtualization functions to Ubuntu / KVM
Physical Host
Host OS
Virtual Machines
Hypervisor
QEMU/
© 2015 Cisco and/or its affiliates. All rights reserved.DevNet-1005 Cisco Public
Keystone (Identity Services)
Glance (Image / Repository Services)
Nova(Compute Services)
Neutron(Networking Services)
Swift(Object
Services)
Cinder(Block
Storage
Services)
Ho
rizo
n(D
ash
bo
ard
)
AP
Is / C
LI
IaaS / cloud orchestration software – creates, manages, and deletes virtual
resources according to API- or CLI-based instructions
Built on OpenStack
© 2015 Cisco and/or its affiliates. All rights reserved.DevNet-1005 Cisco Public
VM Maestro
• The graphical topologyediting tool
• Enables rapid definition of network elements:
Routers
Links
Protocols
Facilities
• Supports complex topologies
• Manages simulations
© 2015 Cisco and/or its affiliates. All rights reserved.DevNet-1005 Cisco Public
<?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"
simulationEngine="OPENSTACK" schemaVersion="0.6" xsi:schemaLocation="http://www.cisco.com/VIRL
http://cide.cisco.com/vmmaestro/schema/VIRL.xsd">
<extensions>
<entry type="String" key="management_network">flat</entry>
<entry type="Boolean" key="AutoNetkit.enable_cdp">true</entry>
<entry type="Boolean" key="AutoNetkit.enable_OnePK">true</entry>
<entry type="String" key="AutoNetkit.address_family">dual_stack</entry>
<entry type="String" key="AutoNetkit.ipv4_infra_subnet">10.0.0.0</entry>
<entry type="String" key="AutoNetkit.ipv4_infra_prefix">8</entry>
<entry type="String" key="AutoNetkit.ipv4_loopback_subnet">192.168.0.0</entry>
<entry type="String" key="AutoNetkit.ipv4_loopback_prefix">22</entry>
<entry type="String" key="AutoNetkit.ipv4_vrf_loopback_subnet">172.16.0.0</entry>
<entry type="String" key="AutoNetkit.ipv4_vrf_loopback_prefix">24</entry>
<entry type="Boolean" key="AutoNetkit.enable_routing">true</entry>
<entry type="String" key="AutoNetkit.IGP">isis</entry>
</extensions>
<node location="518,292" subtype="IOSv" type="SIMPLE" name="Core">
<interface name="GigabitEthernet0/1" id="0"/>
<interface name="GigabitEthernet0/2" id="1"/>
<interface name="GigabitEthernet0/3" id="2"/>
</node>
<node location="519,172" subtype="IOSv" type="SIMPLE" name="A1">
<interface name="GigabitEthernet0/1" id="0"/>
<interface name="GigabitEthernet0/2" id="1"/>
<interface name="GigabitEthernet0/3" id="2"/>
</node>
<node location="648,368" subtype="IOSv" type="SIMPLE" name="A3">
<interface name="GigabitEthernet0/1" id="0"/>
<interface name="GigabitEthernet0/2" id="1"/>
<interface name="GigabitEthernet0/3" id="2"/>
</node>
<node location="403,382" subtype="IOSv" type="SIMPLE" name="A2">
<interface name="GigabitEthernet0/1" id="0"/>
<interface name="GigabitEthernet0/2" id="1"/>
<interface name="GigabitEthernet0/3" id="2"/>
</node>
Topology Representations
• Topologies are represented in XML
• Files are highly portable and shareable
• Integrated support for GIT repositories enables multi-user sharing, versioning
© 2015 Cisco and/or its affiliates. All rights reserved.DevNet-1005 Cisco Public
AutoNetKit
Network Information DB
XML Topology Definition
Configurations
Topology Renderings
AutoNetKit Auto-Configuration
AutoNetKit:
• Understands OS-specific configuration constructs
• Presents graphical representations of topology attributes
• Converts configurations between different OS-types and platforms
© 2015 Cisco and/or its affiliates. All rights reserved.DevNet-1005 Cisco Public
OSPF area values set on each node
BGP route-reflector clusters and AS’s
configured
AutoNetKit Visualizations
© 2015 Cisco and/or its affiliates. All rights reserved.DevNet-1005 Cisco Public
Create Routers
•Identify Type / Flavor
•Associate Image (Glance)
•Identify / Assign Resources
•Associate Configuration
•Launch the VM (Nova)
Create Networks / Links
•Identify Links and End-Points
•Assign End-Points to VMs
•Assign Network / Link Characteristics
•Launch the Switch (Neutron)
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
Services Topology Director
© 2015 Cisco and/or its affiliates. All rights reserved.DevNet-1005 Cisco Public
VM Maestro
Services
Topology
Director
Topology Graph with
Router Configurations
1
2
Router Configurations
3
Topology Views4
5 6
Virtual Machines / Switches
7
8
A1-Console: 17000
A1-Aux: 17001
…
VIRL Workflow
© 2015 Cisco and/or its affiliates. All rights reserved.DevNet-1005 Cisco Public
VIRL Family
Cisco Modeling Labs
For Corporate users;
multi-user network
modeling, inc. TAC
support
De
ve
lop
ers
Ind
ivid
ua
ls
VIRL Personal Edition
For Individual users,
developers, students
etc.
Multi-purpose platform to
innovate for SDN / NFV /
Cloud paradigms.
/dev/innovate
Demo
© 2015 Cisco and/or its affiliates. All rights reserved.DevNet-1005 Cisco Public
APIs
• OpenStack foundation, so Nova and Neutron APIs can be used right away
– Be aware of service bindings (e.g. with mgmt IP = DHCP, REST API might not be directly accessible from outside)
– Can be used via CLI to some extent (virl_openstack_client)
• STD API calls
– Specific VIRL API set
– Simulation start, roster
– Used by VM Maestro
– Can be used via CLI to some extent(virl_std_client)
• Can integrate Controller (APIs) into simulation(APIC-EM, ODL, …)
© 2015 Cisco and/or its affiliates. All rights reserved.DevNet-1005 Cisco Public
Demo
• list.py / Wireshark demo
• hello-world.py Show the roster
• launch-topo.py Simulation start
27
© 2015 Cisco and/or its affiliates. All rights reserved.DevNet-1005 Cisco Public
Demo Resources
• VIRL running on Laptop
• [Chrome with Postman]
• Python w/ request package
• Curl
• Scripts / examples on Github:https://github.com/VIRL-Open/virl-utils
© 2015 Cisco and/or its affiliates. All rights reserved.DevNet-1005 Cisco Public
Conclusion
• VIRL is the missing link in test driven development
• Use it as a test- / playground for your network application development!
• So…
– Play with VIRL
– What can you build?
– What can you code?
– Tell others about what you’ve done!
– Post on Github!
© 2015 Cisco and/or its affiliates. All rights reserved.DevNet-1005 Cisco Public
Get VIRL this week!
See any of the VIRL team in the Devnet Zone to get your 30% discount on VIRL Personal Edition**
Purchase VIRL at http://virl.cisco.com
and apply your discount code
Discount is only available during CL Milan!
**Discount is NOT applicable to the Gift Card
© 2015 Cisco and/or its affiliates. All rights reserved.DevNet-1005 Cisco Public
Complete Your Online Session Evaluation
• Give us your feedback and youcould win fabulous prizes. Winners announced daily.
• Complete your session evaluation through the Cisco Live mobile appor visit one of the interactive kiosks located throughout the convention center.
Don’t forget: Cisco Live sessions will be available for viewing on-demand after the event at CiscoLive.com/Online
62
© 2015 Cisco and/or its affiliates. All rights reserved.DevNet-1005 Cisco Public
Continue Your Education
• Demos in the Cisco Campus
• Walk-in Self-Paced Labs
• Table Topics
• Meet the Engineer 1:1 meetings
63
© 2015 Cisco and/or its affiliates. All rights reserved.DevNet-1005 Cisco Public
Links
• Get VIRLhttp://virl.cisco.com/
• Documentation and Video Libraryhttp://virl-dev-innovate.cisco.com/
• User Communityhttp://community.dev-innovate.com/
• YouTube Channelhttp://www.youtube.com/channel/UC41WuzXlJCGY5qLsuZ8aHkQ
• Utilities and Sample Topologieshttps://github.com/VIRL-Open
• Another API / Python Examplehttps://github.com/mthibaut/python-virl
@CiscoVIRL
cisco.virl