cisco virl+ nso + pyats/genie で実践する...

27
Shunsuke Sasaki, Technical Solutions Architect Cisco Systems G.K. Oct 19, 2018 | Open Networking Conference Japan 2018 Cisco VIRL+ NSO + pyATS/Genie で実践する NetDevOps developer.cisco.com

Upload: others

Post on 12-Jan-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Cisco VIRL+ NSO + pyATS/Genie で実践する …onic.jp/_cms/wp-content/uploads/2018/10/onic2018_cisco_v...Shunsuke Sasaki, Technical Solutions Architect Cisco Systems G.K. Oct 19,

Shunsuke Sasaki, Technical Solutions ArchitectCisco Systems G.K.Oct 19, 2018 | Open Networking Conference Japan 2018

��������� ��������

Cisco VIRL+ NSO + pyATS/Genieで実践する NetDevOps

developer.cisco.com

Page 2: Cisco VIRL+ NSO + pyATS/Genie で実践する …onic.jp/_cms/wp-content/uploads/2018/10/onic2018_cisco_v...Shunsuke Sasaki, Technical Solutions Architect Cisco Systems G.K. Oct 19,

© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Confidential

• ����� "�������� ���

• Cisco pyATS/Genie ��

• Cisco VIRL + NSO + pyATS/Genie ��• ����� "��������

���!�����

2

Page 3: Cisco VIRL+ NSO + pyATS/Genie で実践する …onic.jp/_cms/wp-content/uploads/2018/10/onic2018_cisco_v...Shunsuke Sasaki, Technical Solutions Architect Cisco Systems G.K. Oct 19,

© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Confidential

��������������� �

Plan Optimize

Full Lifecycle of Network Operations

��(���• # ��(���

• ������Q0PB4,P8R(���

• ����(���

• ):C/KP>OE+/KP2HN�����

• 5L7:9CLB3H?N/

!�(���• ��

• L/�$• ;KF=J� • ��• Feedback to Operate• Feedback to Plan/Design

CIN?N/%@:=MP.<1+N(���• =DL3�"�• ��'&(-GA2;*��

• �J6P4�����

Day-1 Day-2Day-0

;4=(���• �� / �;4=• HW ;4=• SW ;4=• SMU / Patch ;4=

Day-0.5

Design Implement Operate

Validation

Page 4: Cisco VIRL+ NSO + pyATS/Genie で実践する …onic.jp/_cms/wp-content/uploads/2018/10/onic2018_cisco_v...Shunsuke Sasaki, Technical Solutions Architect Cisco Systems G.K. Oct 19,

© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Confidential

�������&���� �

��0?;@BD<;

��+#��

�,����

����'

�����"��)%

���*��!�$(

����

Ø 9E=FC��2�!�#'68<C-��

Ø �%*��'��2 Excel :F@/"�

Ø Excel :F@)?7;@A35C

Ø Excel :F@-0����(,1,1� �*��/(

Ø ?;@+./���2��,<>@4>B

Ø ;?>B+./��-�

Ø ?;@+./��

$&

Page 5: Cisco VIRL+ NSO + pyATS/Genie で実践する …onic.jp/_cms/wp-content/uploads/2018/10/onic2018_cisco_v...Shunsuke Sasaki, Technical Solutions Architect Cisco Systems G.K. Oct 19,

© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Confidential

�������&���� �

��&3047?10

��+#��

�,����

����'

�����"��)%

���*��!�$(

����

Ø ?,&�����>8B4���

Ø ���%"#$���%��

Ø .B5�: Python �

Ø +@;*@2B=%()6B/:@��

Ø ��&��304�

Ø �� �A0-/9B<@,

Ø .B5&����

�'! �

Page 6: Cisco VIRL+ NSO + pyATS/Genie で実践する …onic.jp/_cms/wp-content/uploads/2018/10/onic2018_cisco_v...Shunsuke Sasaki, Technical Solutions Architect Cisco Systems G.K. Oct 19,

© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Confidential

������: NetDevOps

TestAutomated Validation

RolloutContinuous Operations

DeployContinuous Delivery

DesignCollaborative Development

INFRASTRUCTUREAS CODE

Page 7: Cisco VIRL+ NSO + pyATS/Genie で実践する …onic.jp/_cms/wp-content/uploads/2018/10/onic2018_cisco_v...Shunsuke Sasaki, Technical Solutions Architect Cisco Systems G.K. Oct 19,

© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Confidential

• http://virl.cisco.com/

• � IT/<8:HK1"$(*������ &),��+• <8:HK1' Dev > Test > Prod # CICD 3/1E���"

• Dev/Test ��� VIRL "(+4ABFK4CI-��• @E7>I6K-3?K:J.=D2K4CI-�%��!:?G5K-����

• NetDevOps 0I5;." ���! “virlutils” CLI 9KE�����

• https://github.com/CiscoDevNet/virlutils

• ��3?K:�# Cisco Modeling Labs (CML) '�+

NetDevOps ��������1

Cisco VIRL - Virtual Internet Routing Lab

Page 8: Cisco VIRL+ NSO + pyATS/Genie で実践する …onic.jp/_cms/wp-content/uploads/2018/10/onic2018_cisco_v...Shunsuke Sasaki, Technical Solutions Architect Cisco Systems G.K. Oct 19,

© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Confidential

• https://developer.cisco.com/docs/nso

• “Single API and CLI for the Network”• &#%-0�����.'��������� API ��� CLI ��� ���

• YANG +$,(0�/��� ����• *,"(.!0�)0%1& TAC2

NetDevOps ��������2

Cisco NSO - Network Services Orchestrator

Network Equipment Drivers (NEDs)

Service Manager

Device Manager

Physical Networks Virtual Networks

• VNFM• Controller Apps• EMS and NMS

Network Apps

Service Model

DeviceModel

Applications

REST, RESTCONF, NETCONF, CLI, Web UI

NETCONF, REST, SNMP, CLI, etc

Engineers

Page 9: Cisco VIRL+ NSO + pyATS/Genie で実践する …onic.jp/_cms/wp-content/uploads/2018/10/onic2018_cisco_v...Shunsuke Sasaki, Technical Solutions Architect Cisco Systems G.K. Oct 19,

© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Confidential

• https://github.com/CiscoTestAutomation

• Python LWA2CAEIRWOTW< (Apache 2.0 License)

• �+,�%;>?ACO• DH:A�#�P:JPQ “Unicon”• GBETW< '�*P:JPQ� “Genie”• CAE�&�"/+- “Robot Framework”

• GBETW< '���1��0(546��7�)6• CAELBFVEMS@��

• GBETW<��3��V>NUF�V>UI9= �

• CAE1�+, Trigger 7�+��7 Verifier .�!• GBETW<VACWE2��KSI8:QU= - CAE��1 before / after 2ACWE7�$

• FREE

NetDevOps ��������3

pyATS – Python Automation Test Systems# Verify OSPF neighbor countsVerify Ospf neighbors agg3

verify count "5" "ospf neighbors" on device "agg3"Verify Ospf neighbors agg4

verify count "5" "ospf neighbors" on device "agg4"Verify Ospf neighbors core1

verify count "4" "ospf neighbors" on device "core1"Verify Ospf neighbors core2

verify count "4" "ospf neighbors" on device "core2"

UniconConnection Library

Page 10: Cisco VIRL+ NSO + pyATS/Genie で実践する …onic.jp/_cms/wp-content/uploads/2018/10/onic2018_cisco_v...Shunsuke Sasaki, Technical Solutions Architect Cisco Systems G.K. Oct 19,

© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Confidential

Cisco pyATS/Genie ��� �������

10

Dev

• Basis for agnostic automation libraries• Stimulus, Event & Activities based automationGenie Library Framework

• Topology & Test definition• Execution & ReportingpyATS Core Test Infrastructure

• Feature model implementation• Triggers, Verifications, Parsers, Connectors, etcGenie Libs

• Keyword driven test automation• English-like test scriptsRobot

Page 11: Cisco VIRL+ NSO + pyATS/Genie で実践する …onic.jp/_cms/wp-content/uploads/2018/10/onic2018_cisco_v...Shunsuke Sasaki, Technical Solutions Architect Cisco Systems G.K. Oct 19,

© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Confidential

pyATS/Genie � Python Package Index (PyPI) ����§ https://pypi.python.org/pypi/pyats/

���� �:§ Mac/Linux Environment (including WSL)§ Python 3+ virtual environment

pyATS - Getting Started

Dev11

## create a new python virtual environment$ python3 –m venv ~/pyats

## install in your new environment$ source ~/pyats/bin/activate$ pip install pyats genie genie.libs.robot

Page 12: Cisco VIRL+ NSO + pyATS/Genie で実践する …onic.jp/_cms/wp-content/uploads/2018/10/onic2018_cisco_v...Shunsuke Sasaki, Technical Solutions Architect Cisco Systems G.K. Oct 19,

© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Confidential

Demo https://github.com/radiantmarch/onic2018demo

Page 13: Cisco VIRL+ NSO + pyATS/Genie で実践する …onic.jp/_cms/wp-content/uploads/2018/10/onic2018_cisco_v...Shunsuke Sasaki, Technical Solutions Architect Cisco Systems G.K. Oct 19,

© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Confidential

• '�������-$

• Use Case 1• Unicon Library ��(�������)���#��,.

• Use Case 2• Genie Parser Library ��(����� ����"�&+

• Use Case 3• NSO��(�����������*! %�,. & ������

Demo

Page 14: Cisco VIRL+ NSO + pyATS/Genie で実践する …onic.jp/_cms/wp-content/uploads/2018/10/onic2018_cisco_v...Shunsuke Sasaki, Technical Solutions Architect Cisco Systems G.K. Oct 19,

© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Confidential

����

VIRL

PC (Mac)

NSO

robot / pyats /genie

Green: python scripts & libraries

Jupyter Notebook

Generate TestbedFile (YAML): virlutils demo1

demo2demo3

Shell

Page 15: Cisco VIRL+ NSO + pyATS/Genie で実践する …onic.jp/_cms/wp-content/uploads/2018/10/onic2018_cisco_v...Shunsuke Sasaki, Technical Solutions Architect Cisco Systems G.K. Oct 19,

© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Confidential

© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public#CLUS

pyATS - YAML ��� Testbed ���

15DevNet-1480

Page 16: Cisco VIRL+ NSO + pyATS/Genie で実践する …onic.jp/_cms/wp-content/uploads/2018/10/onic2018_cisco_v...Shunsuke Sasaki, Technical Solutions Architect Cisco Systems G.K. Oct 19,

© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Confidential

pyATS/Genie ���

Page 17: Cisco VIRL+ NSO + pyATS/Genie で実践する …onic.jp/_cms/wp-content/uploads/2018/10/onic2018_cisco_v...Shunsuke Sasaki, Technical Solutions Architect Cisco Systems G.K. Oct 19,

© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Confidential

pyATS + Genie - Test Automation Ecosystem

1

7Dev

pyATS Test Framework

Execution Engine

Plugins & Hooks

Result ReportingEmail Notification

Device ConnectionsTest Definition

Result Archive

Tcl Integration Topology Definition

Genie Library/SDK

TGN Devices Links Interfaces BGP MCAST OSPF

WebDriver CLI NETCONF RESTCONF …Implementation

Layer

Library Layer (API Interface)

YAML�����Testbed/DUT

Page 18: Cisco VIRL+ NSO + pyATS/Genie で実践する …onic.jp/_cms/wp-content/uploads/2018/10/onic2018_cisco_v...Shunsuke Sasaki, Technical Solutions Architect Cisco Systems G.K. Oct 19,

© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Confidential

• Cisco VIRL + NSO + pyATS/Genie �=�3� "&��<,

• ����2-��1���B Better Together• API $�'%*#�/4����.�6�(+�7:B

• ���09����!�# +)>�;2�A5����• Git, Ansible, Jenkins, etc…

• pyATS/Genie � FREE !! ��8@��?����� !

pyATS/Genie ���

Page 19: Cisco VIRL+ NSO + pyATS/Genie で実践する …onic.jp/_cms/wp-content/uploads/2018/10/onic2018_cisco_v...Shunsuke Sasaki, Technical Solutions Architect Cisco Systems G.K. Oct 19,

© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Confidential

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

pyATS Resources

§ DevNet pyATS Lab: https://github.com/CiscoDevNet/pyats-labs

§ DevNet: pyATS/Genie - https://developer.cisco.com/site/pyats/

§ Framework Documentation: https://developer.cisco.com/site/pyats/docs/

§ Package Documentation: https://developer.cisco.com/site/pyats/docs/packages/

§ Community Forum: https://communities.cisco.com/community/developer/pyats

§ GitHub Folder: https://github.com/CiscoTestAutomation

§ DockerHub: https://hub.docker.com/r/ciscotestautomation/pyats/

Dev19

Page 20: Cisco VIRL+ NSO + pyATS/Genie で実践する …onic.jp/_cms/wp-content/uploads/2018/10/onic2018_cisco_v...Shunsuke Sasaki, Technical Solutions Architect Cisco Systems G.K. Oct 19,

Thank you

Page 21: Cisco VIRL+ NSO + pyATS/Genie で実践する …onic.jp/_cms/wp-content/uploads/2018/10/onic2018_cisco_v...Shunsuke Sasaki, Technical Solutions Architect Cisco Systems G.K. Oct 19,

© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Confidential

Speaker Introduction

@CiscoDevNet

developer.cisco.com

[email protected]

@radiantmarch

github.com/radiantmarch http://github.com/CiscoDevNet

facebook.com/ciscodevnet/

Shunsuke Sasaki

Page 22: Cisco VIRL+ NSO + pyATS/Genie で実践する …onic.jp/_cms/wp-content/uploads/2018/10/onic2018_cisco_v...Shunsuke Sasaki, Technical Solutions Architect Cisco Systems G.K. Oct 19,

© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Confidential

Network Skills§ Spanning-Tree§ Routing Protocols§ QoS§ VPN Design§ VOIP§ Fibre Channel§ Security Policy § MPLS

����� Network EngineerProgramming Skills§ TCL§ EEM§ Expect Scripts

Page 23: Cisco VIRL+ NSO + pyATS/Genie で実践する …onic.jp/_cms/wp-content/uploads/2018/10/onic2018_cisco_v...Shunsuke Sasaki, Technical Solutions Architect Cisco Systems G.K. Oct 19,

© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Confidential

Network Skills§ Layer 2 & 3 Fundamentals§ Quality of Service§ Security and Segmentation§ Linux Networking§ Container Networking§ Cloud Networking§ IOT Networking§ Model Driven Programmability§ Network Function Virtualization

����� NetDevOps Engineer Platform Skills§ Linux Administration§ Container Fundamentals§ Micro Service Platforms§ Cloud Fundamentals

Programming Skills§ Data Formats (ex: JSON/YAML)§ Python and APIs (ex: REST)§ Source Control (ex: git) § Configuration Management

(ex: Ansible)

Page 24: Cisco VIRL+ NSO + pyATS/Genie で実践する …onic.jp/_cms/wp-content/uploads/2018/10/onic2018_cisco_v...Shunsuke Sasaki, Technical Solutions Architect Cisco Systems G.K. Oct 19,

© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Confidential

Distributed Source Control(git, Subversion, Mercurial, GitHub, BitBucket, GitLab)

NetDevOps Engineer ����������

Network Device

YANG/Native Data Model

Configuration Data Operational Data

Configuration Management(Ansible, Puppet, NSO, NAPALM, DIY)

Network Virtualization

Platforms(VIRL/CML, NFVIS,

Vagrant)

Build Server(GitLab, Jenkins, Team City, Drone)

Network Test Tooling(PyATS, TRex, Robot, Behave)

Telemetry & Monitoring(ELK, Grafana, Pipeline, UTM)

Development Environment(Vagrant, NSO, VIRL/CML)

Test Environment(VIRL/CML)

Production Environment

CLI SNMP NETCONF/RESTCONF gRPC REST APIs

Page 25: Cisco VIRL+ NSO + pyATS/Genie で実践する …onic.jp/_cms/wp-content/uploads/2018/10/onic2018_cisco_v...Shunsuke Sasaki, Technical Solutions Architect Cisco Systems G.K. Oct 19,

© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Confidential

Distributed Source Control

NetDevOps Engineer ����������

Network Device

YANG/Native Data Model

Configuration Data Operational Data

Configuration Management

Network Virtualization

Platforms

Build Server

Network Test Tooling Telemetry & Monitoring

Development Environment Test Environment Production Environment

CLI SNMP NETCONF/RESTCONF gRPC REST APIs

Network Test Tooling

PyATS, TRex

Network Virtualization Platforms

NFVISVIRL/CMLCisco VIMVNF

Configuration Management

Network Service Orchestrator(NSO)

Development Environment

NSO, VIRL, VNFsTest Environment

VIRL/CML

Telemetry & Monitoring

Pipeline, UTR

Network Device

IOS XE, IOS XR, NX-OS, Firepower, UCSDNA Center, APIC, Meraki, Viptela, and more

(Cisco �� & ������)

Page 26: Cisco VIRL+ NSO + pyATS/Genie で実践する …onic.jp/_cms/wp-content/uploads/2018/10/onic2018_cisco_v...Shunsuke Sasaki, Technical Solutions Architect Cisco Systems G.K. Oct 19,

© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Confidential

• Cisco DevNet: https://developer.cisco.com/

• Cisco DevNet [�]: https://www.cisco.com/c/m/ja_jp/developer.html

• VIRL: https://developer.cisco.com/site/virl/

• NSO for evaluation: https://developer.cisco.com/docs/nso/#!getting-nso/getting-nso

• DevNet: pyATS/Genie - https://developer.cisco.com/site/pyats/

NetDevOps Engineer ����Cisco DevNet ����

developer.cisco.com

Page 27: Cisco VIRL+ NSO + pyATS/Genie で実践する …onic.jp/_cms/wp-content/uploads/2018/10/onic2018_cisco_v...Shunsuke Sasaki, Technical Solutions Architect Cisco Systems G.K. Oct 19,