34
Craig Hill Distinguished Systems Engineer US Public Sector CTO Office CCIE #1628 @netwrkr95 Using YANG Models and Telemetry for Model-Driven Closed-Loop Applications CHI-NOG 2019 May 23, 2019

Using YANG Models and Telemetry for Model-Driven Closed ...chinog.org/wp-content/uploads/2019/05/F_9.15_Using... · Closed-Loop Automation Using Model-Drive Telemetry (MDT) •Configure

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Using YANG Models and Telemetry for Model-Driven Closed ...chinog.org/wp-content/uploads/2019/05/F_9.15_Using... · Closed-Loop Automation Using Model-Drive Telemetry (MDT) •Configure

Craig HillDistinguished Systems EngineerUS Public Sector CTO OfficeCCIE #1628@netwrkr95

Using YANG Models and Telemetry for Model-Driven Closed-Loop Applications

CHI-NOG 2019May 23, 2019

Page 2: Using YANG Models and Telemetry for Model-Driven Closed ...chinog.org/wp-content/uploads/2019/05/F_9.15_Using... · Closed-Loop Automation Using Model-Drive Telemetry (MDT) •Configure

Agenda

2

• What and Why Closed Loop Automation

• Overview of the Model-Driven Stack Components

• Introduction to Streaming Telemetry

• Demo

• Summary

• Resource References

Evolving Network Automation Techniques for Real-Time Applications

Page 3: Using YANG Models and Telemetry for Model-Driven Closed ...chinog.org/wp-content/uploads/2019/05/F_9.15_Using... · Closed-Loop Automation Using Model-Drive Telemetry (MDT) •Configure

What is “Closed Loop” Automation?

Page 4: Using YANG Models and Telemetry for Model-Driven Closed ...chinog.org/wp-content/uploads/2019/05/F_9.15_Using... · Closed-Loop Automation Using Model-Drive Telemetry (MDT) •Configure

One-Way Automation and Programming

• Automation tools greatly expedite configuration process

• Variety of tools, both open source, and vendor specific

• Configure devices and validate the operation

• Challenge? Automation typically focuses “south-bound”

• Untapped use cases for 2-way communications exist

4

Network Element

Configuration- Create- Modify- Delete

YANGModels

Virtual Router

YDKNSO

Page 5: Using YANG Models and Telemetry for Model-Driven Closed ...chinog.org/wp-content/uploads/2019/05/F_9.15_Using... · Closed-Loop Automation Using Model-Drive Telemetry (MDT) •Configure

Telemetry Collection Has Been Slow and Hard…

SNMP, syslog, CLI…• “PULL” model L (vs. PUSH)

• Too slow for real-time use cases

• Data is unstructured text

• Very network-specific

• Difficult to operationalize

• Need faster, scalable, open, model-driven management stacks to simplify how data is collected from network elements

5

Network Element (physical/virtual)

Telemetry Collection

Telemetry- Pull model- SNMP- Syslog- CLI

YANGModels

YDK

Page 6: Using YANG Models and Telemetry for Model-Driven Closed ...chinog.org/wp-content/uploads/2019/05/F_9.15_Using... · Closed-Loop Automation Using Model-Drive Telemetry (MDT) •Configure

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

Data Centerrouter

Telemetry: an automated communications process by which measurements and other data are collected at remote or inaccessible points and transmitted to receiving equipment for monitoring.

https://en.wikipedia.org/wiki/Telemetry

Visibility and Analytics

Backbonerouter

Edgerouter

Aggregationrouter

Branch Peeringrouter

Fast

Easy

Relia

ble

As much as possibleUseful

Deterministic

“Scream Stream If You Wanna Go Faster”

6

Page 7: Using YANG Models and Telemetry for Model-Driven Closed ...chinog.org/wp-content/uploads/2019/05/F_9.15_Using... · Closed-Loop Automation Using Model-Drive Telemetry (MDT) •Configure

The “Push” Model for Telemetry Collection

• There is a shift to a “PUSH” model for streaming telemetry

• Data is structured and analytics ready for parsing/analysis (tool chains)

• Offers “Event” and “periodic” collection options

• Various modes exist based on the app (Dial-in, Dial-out, event-driven)

• Model-driven telemetry offers structured, independent transport, encapsulations and dictates what data is pushed

7

Network Element (physical/virtual)

Telemetry- Streaming- Push (vs. Pull)- Optimized

Transport

YANGModels

YDK

Pipeline

Telemetry Collection

Page 8: Using YANG Models and Telemetry for Model-Driven Closed ...chinog.org/wp-content/uploads/2019/05/F_9.15_Using... · Closed-Loop Automation Using Model-Drive Telemetry (MDT) •Configure

High-Speed Collection + ProgrammabilityThe Path to “Closed Loop” Automation

• “Closed Loop” leverages telemetry for intelligent automation based on events

• Events can trigger configurations (not just operators)

• Telemetry gathered is read from some repo (e.g. message bus)

• Variety of tools, both open source, and vendor specific

• Offers new paradigm for NetOps, SecOps, service deployments and assuring service delivery

8

Network Element

Configuration- Create- Modify- Delete

(physical/virtual)

Telemetry- Streaming- Push (vs. Pull)- Optimized

Transport

YANGModels YDK

Telemetry Collection

3rd party SIEM

3rd party Apps

Page 9: Using YANG Models and Telemetry for Model-Driven Closed ...chinog.org/wp-content/uploads/2019/05/F_9.15_Using... · Closed-Loop Automation Using Model-Drive Telemetry (MDT) •Configure

Use Cases for the CommunityClosed-Loop Automation Using Model-Drive Telemetry (MDT)

• Configure / Validate Examples – cloud peering, configurations that require dependencies to configure and operate

• Security – leverage “closed loop” security approaches, triggering “actions” based on telemetry (dynamic triggers vulnerabilities, DDoS)

• QoS – leverage Key Performance Indicators (KPI’s) to trigger event-driven push, then modifying classifiers for more optimized traffic assurance

• ML/AI Consumption – Leverage the model-driven streaming telemetry framework to push network data fast, structured, so 3rd party SIEM’s and other ML/AI process can rapidly leverage the data

• Network Operations – Day 2+ - leverage self-learning data from the network elements, allowing proactive health monitor statistics of the network components (elements, links, applications)

9

Page 10: Using YANG Models and Telemetry for Model-Driven Closed ...chinog.org/wp-content/uploads/2019/05/F_9.15_Using... · Closed-Loop Automation Using Model-Drive Telemetry (MDT) •Configure

Components of the Closed Loop Infrastructure

Page 11: Using YANG Models and Telemetry for Model-Driven Closed ...chinog.org/wp-content/uploads/2019/05/F_9.15_Using... · Closed-Loop Automation Using Model-Drive Telemetry (MDT) •Configure

Introduction to YANG and YANG Development Kit (YDK)

Page 12: Using YANG Models and Telemetry for Model-Driven Closed ...chinog.org/wp-content/uploads/2019/05/F_9.15_Using... · Closed-Loop Automation Using Model-Drive Telemetry (MDT) •Configure

Benefits of Model-Driven Programmability

• Model based, highly structured, computer friendly• Multiple model types (native, OpenConfig, IETF, etc.)• Models decoupled from transport, protocol and encoding• Choice of transport, protocol and encoding• Model-driven APIs for abstraction and simplification• Wide standard support while leveraging open source

Yang Development Kit

Page 13: Using YANG Models and Telemetry for Model-Driven Closed ...chinog.org/wp-content/uploads/2019/05/F_9.15_Using... · Closed-Loop Automation Using Model-Drive Telemetry (MDT) •Configure

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

The Model-Driven “Stack” (Configuration w/ YDK)

Controller Orchestrator

Network Device

Model-Driven Configuration

Model-Driven Telemetry

Closed-loop automation Encoding

Protocol

Models

SDK

Apps

XML JSON GPB

NETCONF gRPC

Model-Driven SDKsYANG Development Kit (YDK)

YANG Models(native, open)

App App App

SSH HTTPTransport TCP

Page 14: Using YANG Models and Telemetry for Model-Driven Closed ...chinog.org/wp-content/uploads/2019/05/F_9.15_Using... · Closed-Loop Automation Using Model-Drive Telemetry (MDT) •Configure

• Simplify app development

• Abstracts transport, protocol, encoding, modeling language

• API is generated directly from the YANG model

• Rich data validation

• Includes NETCONF transport

• One-to-one correspondence between model and class hierarchy

• Multi-language (Python, C++, Go, etc.)

YDK – Offers Model-Driven APIs, Generated from the YANG Model

YANG ModelYDK Output (API)(Python, C++, Go)

Page 15: Using YANG Models and Telemetry for Model-Driven Closed ...chinog.org/wp-content/uploads/2019/05/F_9.15_Using... · Closed-Loop Automation Using Model-Drive Telemetry (MDT) •Configure

YDK Client-Side Validation• Client will automatically perform local

validation based on model constraints• Check between type of data: config

(read-write) and state (read-only)• Type check (enum, string, etc.)• Value check (range, pattern, etc.)• Semantic check (key

uniqueness/presence, mandatory leafs, etc.)

• Model deviation check (unsupported leafs, etc.)

• Validation done BEFORE transaction is sent to Device

Application(client)

Device(server)

Page 16: Using YANG Models and Telemetry for Model-Driven Closed ...chinog.org/wp-content/uploads/2019/05/F_9.15_Using... · Closed-Loop Automation Using Model-Drive Telemetry (MDT) •Configure

Streaming Telemetry Components

Page 17: Using YANG Models and Telemetry for Model-Driven Closed ...chinog.org/wp-content/uploads/2019/05/F_9.15_Using... · Closed-Loop Automation Using Model-Drive Telemetry (MDT) •Configure

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

“OSI model” of Telemetry

Data store

Data model

Producer

Exporter

Collector

Native (raw) data inside a router’s database

Raw data mapped to a model (YANG native, OpenConfig, etc)

Sending requested data in model format to the “Exporter” at defined intervals

Encoding and delivering data to the collector(s) destination(s)

Information collection for processing (e.g., data monitoring, automation, analytics)

“Data”“Layer”

Tele

met

ry e

nd-t

o-en

d

Page 18: Using YANG Models and Telemetry for Model-Driven Closed ...chinog.org/wp-content/uploads/2019/05/F_9.15_Using... · Closed-Loop Automation Using Model-Drive Telemetry (MDT) •Configure

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

Where am I sending the Telemetry??A Basic Analytics Platform Architecture

Applications

Storage

Collection

Data Centerrouter

Backbonerouter

BNG Peeringrouter

Borderrouter

The first layer (Collection) – collect all the streams and transform them from GPB/JSON into a format that will be supported by the layer above.

The second layer (Storage) is usually a TSDB (time-series database). Takes the data from the layer below (collection) and keep it together with timestamps. (think of telemetry as a big data solution)

The third layer (Applications) is your “business logic” or tools that you will use with the data stored in a database.

Each layer can be an open-sourced solution, a commercial app, or home-grown.

PipelineWHERE ?

Page 19: Using YANG Models and Telemetry for Model-Driven Closed ...chinog.org/wp-content/uploads/2019/05/F_9.15_Using... · Closed-Loop Automation Using Model-Drive Telemetry (MDT) •Configure

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

The Model-Driven Manageability “Stack”

Controller Orchestrator

Network Device

Model-Driven Configuration

Model-Driven Telemetry

Closed-loop automation Encoding

Protocol

Models

SDK

Apps

XML JSON GPB

NETCONF gRPC

Model-Driven SDKsYANG Development Kit (YDK)

YANG Models(native, open)

App App App

SSH HTTPTransport TCP

WHAT ?

HOW ?

HOW ?

HOW ?

Page 20: Using YANG Models and Telemetry for Model-Driven Closed ...chinog.org/wp-content/uploads/2019/05/F_9.15_Using... · Closed-Loop Automation Using Model-Drive Telemetry (MDT) •Configure

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

Consume – Model-Driven Subscription on the Network Element (Where? How? What? Often?)

23

#View telemetry subscription in IOS-XR

asbr1# show run telemetry model-driven

How?

What?

Where?

Example (IOS-XR):- Dial-out- Incremental- Where(?): PipeLine

How often?

Page 21: Using YANG Models and Telemetry for Model-Driven Closed ...chinog.org/wp-content/uploads/2019/05/F_9.15_Using... · Closed-Loop Automation Using Model-Drive Telemetry (MDT) •Configure

DemoOverview

Page 22: Using YANG Models and Telemetry for Model-Driven Closed ...chinog.org/wp-content/uploads/2019/05/F_9.15_Using... · Closed-Loop Automation Using Model-Drive Telemetry (MDT) •Configure

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

Pipeline• Streaming Telemetry

Demo Set-Up: Closed-Loop Automation Component Example

PeeringDB

asbr1(AS65001)

asbr2(AS65002)

Configuration Telemetry

Private Peering Config

YDK Application• Device Configuration

Kafka• Telemetry Collector

192.168.1.0 /24.1 .2

198.18.1.11

Controller

28

Page 23: Using YANG Models and Telemetry for Model-Driven Closed ...chinog.org/wp-content/uploads/2019/05/F_9.15_Using... · Closed-Loop Automation Using Model-Drive Telemetry (MDT) •Configure

YANGModels

Kafka PipelineYDK

Peering Use CaseConfigure and Validate Peering on ASBR1

• Configure peer interface and routing policy on ASBR1 (telemetry pre-configured)

• Monitor Kafka bus for telemetry (Kafka and Pipeline pre-configured)

• Execute: peer_configuration.py

29

ASBR1(AS65001)

ASBR2(AS65002)

Configuration Telemetry1. Load peer configuration à validate

2. Initialize Connections à validate

3. Configure interface à validate

4. Configure BGP neighbor à validate

Page 24: Using YANG Models and Telemetry for Model-Driven Closed ...chinog.org/wp-content/uploads/2019/05/F_9.15_Using... · Closed-Loop Automation Using Model-Drive Telemetry (MDT) •Configure

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

Execute the Application - Validate Int / Peer (Output from Application)

37

Page 25: Using YANG Models and Telemetry for Model-Driven Closed ...chinog.org/wp-content/uploads/2019/05/F_9.15_Using... · Closed-Loop Automation Using Model-Drive Telemetry (MDT) •Configure

Summary

Page 26: Using YANG Models and Telemetry for Model-Driven Closed ...chinog.org/wp-content/uploads/2019/05/F_9.15_Using... · Closed-Loop Automation Using Model-Drive Telemetry (MDT) •Configure

Summary

• Major shift towards streaming telemetry to collect data from network elements more quickly and efficiently

• The model-driven manageability stack offers open source/standard transport/encoding methods with closed-loop automation methods for collecting structured data

• Telemetry collection can be incremental, event driven, providing operators a streamlined framework for real-time, high-speed and scaled collection

• YANG Development Kit (YDK) offers API bindings to integrate use of YANG models into the application development for device configuration

• Open source tools and telemetry stacks are available today

41

Page 27: Using YANG Models and Telemetry for Model-Driven Closed ...chinog.org/wp-content/uploads/2019/05/F_9.15_Using... · Closed-Loop Automation Using Model-Drive Telemetry (MDT) •Configure

Resources and References

Page 28: Using YANG Models and Telemetry for Model-Driven Closed ...chinog.org/wp-content/uploads/2019/05/F_9.15_Using... · Closed-Loop Automation Using Model-Drive Telemetry (MDT) •Configure

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

Getting Started with gNMI in YDK 0.8.0

Native Virtual dCloud

Install PythonInstall YDKDownload ydk-py-samples

YANG Development Kit Sandbox 3.0dCloud.cisco.com

Install VagrantInstall VirtualboxDownload ydk-py-samples

Install dockerDownload from Docker Hub

Page 29: Using YANG Models and Telemetry for Model-Driven Closed ...chinog.org/wp-content/uploads/2019/05/F_9.15_Using... · Closed-Loop Automation Using Model-Drive Telemetry (MDT) •Configure

Useful Links/Tools, How to get started withtelemetry stack…

• IOS-XR Collection Stack Intro: https://xrdocs.io/telemetry/tutorials/2018-06-04-ios-xr-telemetry-collection-stack-intro/

• Advanced NETCONF Explorer: https://github.com/cisco-ie/anx

• Telemetry Data Mapper: https://github.com/cisco-ie/tdm

• YANG model catalog and search engine: https://yangcatalog.org/

• YANG model collection on Github: https://github.com/YangModels/yang

• IOS XR specific telemetry & programmability content: https://xrdocs.io/

• Reference collector: https://github.com/cisco/bigmuddy-network-telemetry-pipeline

BRKNMS-3537 44

Page 30: Using YANG Models and Telemetry for Model-Driven Closed ...chinog.org/wp-content/uploads/2019/05/F_9.15_Using... · Closed-Loop Automation Using Model-Drive Telemetry (MDT) •Configure

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

Example: Exploring Telemetry ArchitectureGetting Started With Open Source Tools

45

Data Centerrouter

BackboneRouter

BNG

Peeringrouter

Borderrouter

Pipeline

How to build up the stack: https://xrdocs.io/telemetry/tutorials/2018-06-04-ios-xr-telemetry-collection-stack-intro

Page 31: Using YANG Models and Telemetry for Model-Driven Closed ...chinog.org/wp-content/uploads/2019/05/F_9.15_Using... · Closed-Loop Automation Using Model-Drive Telemetry (MDT) •Configure

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

Streaming Telemetry Components (used in Demo)

46

Peeringrouter

Pipeline: https://github.com/cisco/bigmuddy-network-telemetry-pipelineKafka: https://github.com/apache/kafka

Pipeline

Telemetry

Page 32: Using YANG Models and Telemetry for Model-Driven Closed ...chinog.org/wp-content/uploads/2019/05/F_9.15_Using... · Closed-Loop Automation Using Model-Drive Telemetry (MDT) •Configure

Cisco Live Reference Sessions

• BRKSPG-2303: Model-Driven Programmability for Cisco IOS XR

• BRKSPG-2503: Advanced Topics in XR Telemetry

• DEVWKS-2561: Hands-on Exploration of NETCONF and YANG

• DEVWKS-2077: Using YANG Models and Telemetry for Closed-Loop Applications

47

Page 33: Using YANG Models and Telemetry for Model-Driven Closed ...chinog.org/wp-content/uploads/2019/05/F_9.15_Using... · Closed-Loop Automation Using Model-Drive Telemetry (MDT) •Configure

gNMI Implementation in Cisco IOS XR

• Based on gNMI v0.4.0• Introduced in release 6.5.1• Set and Get RPCs use JSON_IETF (RFC 7951) and ASCII (CLI)

encoding• Subscribe RPC

• Paths must consider data aggregation points (no arbitrary paths)• No aliases

Page 34: Using YANG Models and Telemetry for Model-Driven Closed ...chinog.org/wp-content/uploads/2019/05/F_9.15_Using... · Closed-Loop Automation Using Model-Drive Telemetry (MDT) •Configure