Programmability The Key Enabler of Automation NSO Developer
Programmability: The Key Enabler of Automation NSO Developer Days 2018 Day 1 Wai Tai Conf. D Solutions Architect June 19, 2018
Agenda • Programmability: What and Why • NETCONF and YANG Deliver Programmability • What about REST? • Programmability: Top to Bottom © 2018 Cisco and/or its affiliates. All rights reserved. 2
Programmability is the Key to Automation • Programmability is about configuring and managing network elements and services using software • e. g. Software Defined Networking (SDN) • For configuring and managing large-scale, multi-vendor networks, a common, standards based method of programmability is crucial • There are more aspects to programmability than just an API • AAA • Transactions & Validation • Etc. © 2018 Cisco and/or its affiliates. All rights reserved. 3
Benefits of Programmability • Programmability as the basis for automation provides: • Time and money cost savings • Reduction of human error • Much improved error handling • Easier troubleshooting • Ability to customize • Abstraction • Enables innovation © 2018 Cisco and/or its affiliates. All rights reserved. 4
What is Programmability? • Intelligent software drives the network (SDN) • Controllers and service orchestrators • Network elements are “programmed”, not “manually configured” • Network configuration and management becomes an exercise in computer science • • Manipulate data not devices An API to the network elements is needed for programmability • API must be standards based; e. g. multi-vendor networks © 2018 Cisco and/or its affiliates. All rights reserved. 5
What is an API? • Provides an abstraction of the underlying implementation • • The (network) programmer does not need to know unnecessary details Provides a specification of: • What data is available (attributes) • How the data is organized (data structures / schema) • How the data is accessed (methods) © 2018 Cisco and/or its affiliates. All rights reserved. 6
NETCONF/YANG provide a Standards Based API • NETCONF is an IETF standard protocol • Uses client-server Remote Procedure Calls (RPCs) • Think function calls/methods • • • Is transactional YANG is an IETF standard data modeling language • Defines Configuration data, Operational State data, and Actions • Defines the structure and constraints of the data Together NETCONF and YANG deliver a standards based API • Methods, Attributes, Data Schema © 2018 Cisco and/or its affiliates. All rights reserved. 7
YANG Example container interfaces { must "sum(interface/metric) <= 100”; list interface { key "name"; unique "ip-address"; leaf name { type string; } leaf ip-address { type ipv 4 -address; } leaf metric { type uint 32 { range "1. . 100”; } } } XML equivalent: <interfaces> <interface> <name> eth 1 </name> <ip-address> 192. 168. 5. 10 </ip-address> <metric> 1 </metric> </interfaces> © 2018 Cisco and/or its affiliates. All rights reserved. 8
NETCONF Example Configuration Sequence <rpc xmlns="urn: ietf: params: xml: ns: netconf: base: 1. 1” message-id="5"> <edit-config xmlns: nc="urn: ietf: params: xml: ns: netconf: base: 1. 0"> <target><candidate/></target> <test-option>test-then-set</test-option> <error-option>rollback-on-error</error-option> <config> <interfaces xmlns=”http: //example. com/yang/interface"> <interface> <name>eth 1</name> <ip-address>192. 168. 5. 10</ip-address> <metric>1</metric> </interface> <rpc-reply xmlns="urn: ietf: params: xml: ns: netconf: base: 1. 1" </interfaces> message-id="5"> </config> <ok/> </edit-config> </rpc-reply> </rpc> <rpc xmlns="urn: ietf: params: xml: ns: netconf: base: 1. 1” message-id="6"> <validate> <source> <rpc-reply xmlns="urn: ietf: params: xml: ns: netconf: base: 1. 1" <candidate/> message-id="6"> </source> <ok/> </validate> </rpc-reply> </rpc> <rpc xmlns="urn: ietf: params: xml: ns: netconf: base: 1. 1” message-id="7"> <commit> <rpc-reply xmlns="urn: ietf: params: xml: ns: netconf: base: 1. 1" <confirmed/> message-id=“ 7"> </commit> <ok/> </rpc-reply> © 2018 Cisco and/or its affiliates. All rights reserved. 9
Standardized YANG Data Models • Use of standards based YANG data models increases commonality of the API across a heterogeneous, multi-vendor network • Organizations developing standard YANG data models: • IETF • Open. Config • IEEE • Metro Ethernet Forum • Broadband Forum • Open. Daylight • More… © 2018 Cisco and/or its affiliates. All rights reserved. 10
Why not REST for Devices? • • REST is a set of techniques for using the HTTP protocol • Not all REST implementations work the same • REST is not a standardized protocol with a data modeling language REST APIs are proprietary • • RESTCONF is a step in the right direction • • We’ve already experienced the issues that this causes with CLIs in multi-vendor environments Standardized mapping of REST techniques to YANG data models RESTCONF is not as powerful as NETCONF © 2018 Cisco and/or its affiliates. All rights reserved. 11
Programmability is Needed Top to Bottom Programmability is as important here … … as it is here OSS Cisco NSO SDN Controller Don’t settle for programmability only here SDN Controller Device Device Demand programmability 12 here © 2018 Cisco and/or its affiliates. All rights reserved.
Conf. D: Key Enabler for Device Programmability • Flexible data model driven transactional framework Conf. D RESTCONF NETCONF • • YANG data models used to automate runtime processing and reduce development effort Provides an ideal solution for producing programmable network elements for SDN and NFV Available in Basic (free) and Premium versions CLI Web. API Management Agent API Conf. D Core Engine Validation Handler Validation API • Variety of open standards based interfaces including NETCONF Session Management / Authentication Role-based Access Control / Authorization Audit Trailing YANG Data Models Transaction Management External Authenticator Authentication API • SNMP CDB Database Validation (syntactic and semantic) Rollback Management Redundancy / Replication Upgrades and Downgrades Data Provider API External Database App Operational Data Provider (pull mode) CDB API Action Handler Configuration Reader and Subscriber Operational Data Provider (push mode) App © 2018 Cisco and/or its affiliates. All rights reserved. 13
For more information • http: //www. tail-f. com/ • NETCONF & YANG tutorials: • • Download Conf. D Basic (free): • • http: //www. tail-f. com/confd-training-videos/ https: //developer. cisco. com/site/conf. D/ Heavy Reading Whitepaper: Enabling Network Programmability & Automation with NETCONF/YANG: • http: //info. tail-f. com/whitepaper-enabling-network-programmability-automation © 2018 Cisco and/or its affiliates. All rights reserved. 14
Thank You!
- Slides: 15