show and tell: virl for network programmability and development

34

Upload: cisco-devnet

Post on 17-Jul-2015

353 views

Category:

Technology


5 download

TRANSCRIPT

Page 1: Show and Tell: VIRL for Network Programmability and Development
Page 2: Show and Tell: VIRL for Network Programmability and Development

Show and Tell: VIRL for Network Programmability and Development

DevNet-1005

Ralph Schmieder, Technical Leader

CCIE 9680 (R&S, Security)

Page 3: Show and Tell: VIRL for Network Programmability and Development

“VIRL is the missing link for test

driven development”

3

Page 4: Show and Tell: VIRL for Network Programmability and Development

© 2015 Cisco and/or its affiliates. All rights reserved.Presentation_ID Cisco Public

Agenda

• Overview

• System Architecture

• Demo

• Conclusion

4

Page 5: Show and Tell: VIRL for Network Programmability and Development

© 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”

Page 6: Show and Tell: VIRL for Network Programmability and Development

VIRL: Overview

Page 7: Show and Tell: VIRL for Network Programmability and Development

© 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…

Page 8: Show and Tell: VIRL for Network Programmability and Development

© 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

Page 9: Show and Tell: VIRL for Network Programmability and Development

© 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

Page 10: Show and Tell: VIRL for Network Programmability and Development

© 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

Page 11: Show and Tell: VIRL for Network Programmability and Development

© 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

Page 12: Show and Tell: VIRL for Network Programmability and Development

VIRL: System Architecture

12

Page 13: Show and Tell: VIRL for Network Programmability and Development

© 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

Page 14: Show and Tell: VIRL for Network Programmability and Development

© 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

Page 15: Show and Tell: VIRL for Network Programmability and Development

© 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/

Page 16: Show and Tell: VIRL for Network Programmability and Development

© 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

Page 17: Show and Tell: VIRL for Network Programmability and Development

© 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

Page 18: Show and Tell: VIRL for Network Programmability and Development

© 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

Page 19: Show and Tell: VIRL for Network Programmability and Development

© 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

Page 20: Show and Tell: VIRL for Network Programmability and Development

© 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

Page 21: Show and Tell: VIRL for Network Programmability and Development

© 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

Page 22: Show and Tell: VIRL for Network Programmability and Development

© 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

Page 23: Show and Tell: VIRL for Network Programmability and Development

© 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

Page 24: Show and Tell: VIRL for Network Programmability and Development

Demo

Page 25: Show and Tell: VIRL for Network Programmability and Development

© 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, …)

Page 26: Show and Tell: VIRL for Network Programmability and Development

© 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

Page 27: Show and Tell: VIRL for Network Programmability and Development

© 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

Page 28: Show and Tell: VIRL for Network Programmability and Development

© 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!

Page 29: Show and Tell: VIRL for Network Programmability and Development

© 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

Page 30: Show and Tell: VIRL for Network Programmability and Development

© 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

Page 31: Show and Tell: VIRL for Network Programmability and Development

© 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

Page 32: Show and Tell: VIRL for Network Programmability and Development
Page 33: Show and Tell: VIRL for Network Programmability and Development

© 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

Page 34: Show and Tell: VIRL for Network Programmability and Development