SlideShare una empresa de Scribd logo
1 de 24
Descargar para leer sin conexión
Applying REST to Network Management;
An Implementor’s View
Carl Moberg, VP Technology
calle@tail-f.com
   @cmoberg




Confidential Information | December 18, 2012
Agenda

•    Background and Overview of REST
•    REST in a Network Management Context
•    Introducing Data Models
•    Putting it all Together
•    A Short Demo




Confidential Information | December 18, 2012   1
A Brief History of REST

•  Fielding, R. T. (2000) Architectural Styles and the Design of
   Network-based Software Architectures
•  Many called, few are chosen
•  An architectural style... but we digress




Confidential Information | December 18, 2012                   2
Which Way to Slice This?

•  The REST Architectural Style describes six constraints:
       –  Uniform interface, Stateless, Cacheable, Client-server, Layered
          System, Code on demand (optional)
•  Guiding principles for of a REST interface (the Uniform
   Interface constraints):
       –    Resources have unique identifiers (e.g. URIs)
       –    Manipulations of resources through representations
       –    Self-descriptive Messages
       –    Hypermedia as the engines of application state (HATEOAS)




Confidential Information | December 18, 2012                                3
Resources Have Unique Identifiers (e.g. URIs)


GET /api/running/interfaces/interface/eth0/ipv4 HTTP/1.1!
!
<ipv4 y:self="/api/running/interfaces/interface/eth0/ip:ipv4”>!
  <address y:self=”[...]">!
     <ip>192.168.0.1</ip>!
...!
!

•  Individual resources are identified in requests using URIs
•  Resources are conceptually separate from the
   representations
•  Resource representations depend on query and server
   support (e.g. XML and JSON)


Confidential Information | December 18, 2012                      4
Manipulation of Representations


  < Content-Type: application/vnd.yang.data+xml!
  !
  <ipv4 y:self="/api/running/interfaces/interface/eth0/ip:ipv4”>!
    <address y:self=”[...]">!
      <ip>192.168.0.1</ip>!
    </address>!
  </ipv4>!

•  Representations (including metadata) contain enough
   information to be modified or deleted
•  Provided that the client has permission to do so




Confidential Information | December 18, 2012                        5
Self-descriptive Messages


 <   HTTP/1.1 200 OK!
 <   Server: ConfD!
 <   Cache-control: private, no-cache, must-revalidate, proxy-revalidate
                                                                       !
 <   Date: Tue, 18 Dec 2012 15:53:12 GMT!
 <   Content-Type: application/vnd.yang.data+xml!
 <   Transfer-Encoding: chunked!



•  Each message includes enough information to describe
   how to process the message
•  Foundation for stateless processing
•  Standard methods and media types are used to indicate
   semantics and exchange information


Confidential Information | December 18, 2012                          6
Hypermedia as the Engines of Application State


 <running y:self="/api/running"/>!
 !
 <interface y:self="/api/running/interfaces/interface/eth0">!
 !
 <lock y:self="/api/running/_lock">!       A REST API must not define fixed
 !                                         resource names or hierarchies
                                               - (angry) Fielding on his blog

•  Most profound (and abused) criteria
•  Clients deliver state via contents, query-string parameters,
   request headers and the URI
•  Servers deliver state to clients via content, response codes,
   and response headers
•  ...just like the web works
Confidential Information | December 18, 2012                                    7
REST vs Other Protocols

                                      REST       SNMP       NETCONF       SOAP


    Data models                                SNMP MIBs     YANG
                                                             Models
    Data                                          SMI         YANG        WSDL
    Modeling
    Language
    Management                  HTTP Verbs      SNMP        NETCONF         N/A
    Operations                                 Operations   Operations
    RPC Protocol                 HTTP/XML/       BER          XML          XML
    Encoding                       JSON
    Transport                    SSL/HTTP/       UDP        SSH/TCP      SSL/HTTP/
    Stack                          TCP                                     TCP


Confidential Information | December 18, 2012                                         8
REST in a Network Management Context

•  We will focus on using REST to read and write data to
   network elements
•  Most applications we’ve come across expect to use
   RESTful HTTP to extract data using simple scripts
       –  curl(1), wget(1)
•  As mentioned, we manipulate resources, one at a time
•  But we know people will try and use it to peek and poke




Recommended reading: RFC 3535 Overview of the 2002 IAB Network
Management Workshop
Confidential Information | December 18, 2012                     9
Information Models and Data Models

•  Information Models are conceptual, implementation
   independent
•  Data Models are detailed, intended for implementations

                                 Information                Examples: UML, Entity
                                    Model                   Relations (ER)


                                                            Examples: SMI, WSDL,
    Data Model                    Data Model   Data Model   YANG


Recommended reading: RFC 3444 On the difference between Information
Models and Data Models
Confidential Information | December 18, 2012                                        10
Data Models in Network Management

•  So, what is the data model of a router or a switch?
       –  For OpenFlow people, it’s the switch pipeline
       –  For I2RS people, it’s the FIB and RIB
       –  For most implementations in the field, it’s what’s in the CLI
•  Well used CLIs exhibit the inherited characteristics of all
   use cases it’s been exposed to
•  We’ll assume (and it’s relatively well founded) that REST
   APIs want to be on the same abstraction level as the CLI
       –  Also, reality (code base) prohibits much else
       –  REST on a network level is very interesting, but different




Confidential Information | December 18, 2012                              11
The YANG Data Modeling Language

•  IETF RFC 6020, Standards Track
•  A Language designed to write data
   models for the NETCONF protocol.
   It provides features including:
   –    Human readable
   –    Hierarchical
   –    Reusable types and groupings
   –    Extensibility
   –    Formal constraints for validation
•  Proven to be useful for other
   applications (CLI, Web UI, etc)


                                            12
Example Data Model in YANG


  interfaces
                                               •  We’ll be looking at
                                                  –  ietf-interface.yang!
           interface                              –  ietf-ip.yang!
           key: name
                                               •  Developed in the IETF
                   statistics                     NETMOD WG
                   ipv4                        •  More models in the
                         address
                          address
                                                  making
                   ipv6

                          address
                           address



Confidential Information | December 18, 2012                                13
Mapping YANG to REST Resources

•  YANG data nodes are mapped to REST resources
•  YANG rpc statements are mapped to HTTP POST
   operations
•  HTTP Verbs:
       –    GET to fetch resources
       –    POST to create resources
       –    PUT to replace a resource
       –    PATCH to modify existing resources
       –    DELETE to remove resources




Confidential Information | December 18, 2012      14
An Example Query (An Ethernet Interface)
                                                       1
> GET /api/running/interfaces/interface/eth0 HTTP/1.1!
> Authorization: Basic YWRtaW46YWRtaW4=!
> User-Agent: curl/7.28.!
> Host: 127.0.0.1:8008!
> Accept: */*!
> !
< HTTP/1.1 200 OK!
< Server: ConfD!
< Date: Mon, 17 Dec 2012 16:08:33 GMT!
                                               2
< Content-Type: application/vnd.yang.data+xml!
< Transfer-Encoding: chunked!
< !
!
<interface y:self="/api/running/interfaces/interface/eth0”>!
  <name>eth0</name>!
  <type>ethernetCsmacd</type>!
  <location>0</location>!                                                                3
  <ipv4 xmlns="urn:ietf:params:xml:ns:yang:ietf-ip">!
    <address y:self="/api/running/interfaces/interface/eth0/ip:ipv4/address/192.168.0.1">!
      <ip>192.168.0.1</ip>!
    </address>!
  </ipv4>!
  <ethernet xmlns="http://example.com/ethernet">!
  </ethernet>!
</interface>!
!




Confidential Information | December 18, 2012                                                 15
Introducing ConfD and it's REST Interface



                             REST
                                               NETCONF   NETCONF        SNMP     Web UI



                            ConfD Core Engine
                            •  Transactions
                            •  AAA/User Sessions
                            •  Logs and audit trails
                                                                   YANG
                                                                   Module      CDB


                                                  Managed Objects API

                    Managed                                    Managed
                     Object                                     Object               Managed
                                               Managed                                Object
                                                Object


Confidential Information | December 18, 2012                                                   16
How Does REST Work in a ConfD Context

•  Just another northbound interface, shared everything
•  RESTful API over HTTP
       –  for accessing data defined in YANG, stored in CDB
       –  using the datastores as defined in NETCONF
•  Configuration data and state data are exposed to GET
•  Configuration data also accept DELETE PATCH POST and
   PUT




Confidential Information | December 18, 2012                  17
REST Resources (Top Level)

•  Top level resource application/vnd.yang.api
       –    Well known /api location
       –    version string
       –    running - the running datastore
       –    operational - the representation of all operational data




Confidential Information | December 18, 2012                           18
REST Resources (Datastores)

•  Datastores application/vnd.yang.datastore
       –  running - The running configuration of the device
       –  startup - The startup configuration of the device




Confidential Information | December 18, 2012                  19
Rest Resources (Model Resources)

•  Model Resources application/vnd.yang.data
       –  All resources has y:path and y:self in representation
       –  All subresources has y:self reference




Confidential Information | December 18, 2012                      20
(Finally) Time for Demo

•  Queries
       –  Top-level
       –  Datastores
       –  Operations
•  Interface configuration
       –  Look at interfaces
       –  Change IP address




Confidential Information | December 18, 2012   21
Conclusions and Things to Ponder

•  REST allows for easy scripting with existing tools
       –  Many command line tools available and default on Linux and Mac
       –  Many, many language bindings
•  REST does not provide sessions:
       –  Impact on error management
       –  How about transactions
•  Rest allows for changing a single resource at a time:
       –  How does this scale in multi-parameter, complex environment




Confidential Information | December 18, 2012                               22
Wrap up and Questions

•  Suggested reading list:
       –    Fielding Dissertation
       –    RFC 3535
       –    RFC 3444
       –    YANG-API Protocol Draft (draft-bierman-netconf-yang-api-01)


•  Discuss!
       –  @cmoberg
       –  calle@tail-f.com




Confidential Information | December 18, 2012                              23

Más contenido relacionado

La actualidad más candente

Monitoring pfSense 2.4 with SNMP - pfSense Hangout March 2018
Monitoring pfSense 2.4 with SNMP - pfSense Hangout March 2018Monitoring pfSense 2.4 with SNMP - pfSense Hangout March 2018
Monitoring pfSense 2.4 with SNMP - pfSense Hangout March 2018Netgate
 
6 understanding aruba rf issues
6 understanding aruba rf issues6 understanding aruba rf issues
6 understanding aruba rf issuesVenudhanraj
 
Restful api design
Restful api designRestful api design
Restful api designMizan Riqzia
 
NGINX High-performance Caching
NGINX High-performance CachingNGINX High-performance Caching
NGINX High-performance CachingNGINX, Inc.
 
Cisco Live! :: Introduction to Segment Routing :: BRKRST-2124 | Las Vegas 2017
Cisco Live! :: Introduction to Segment Routing :: BRKRST-2124  | Las Vegas 2017Cisco Live! :: Introduction to Segment Routing :: BRKRST-2124  | Las Vegas 2017
Cisco Live! :: Introduction to Segment Routing :: BRKRST-2124 | Las Vegas 2017Bruno Teixeira
 
Introduction to CNI (Container Network Interface)
Introduction to CNI (Container Network Interface)Introduction to CNI (Container Network Interface)
Introduction to CNI (Container Network Interface)HungWei Chiu
 
Test automation of ap is using postman
Test automation of ap is using postmanTest automation of ap is using postman
Test automation of ap is using postmanBugRaptors
 
Linux Networking Explained
Linux Networking ExplainedLinux Networking Explained
Linux Networking ExplainedThomas Graf
 
IPv6 with Mikrotik
IPv6 with MikrotikIPv6 with Mikrotik
IPv6 with MikrotikGLC Networks
 

La actualidad más candente (20)

Monitoring pfSense 2.4 with SNMP - pfSense Hangout March 2018
Monitoring pfSense 2.4 with SNMP - pfSense Hangout March 2018Monitoring pfSense 2.4 with SNMP - pfSense Hangout March 2018
Monitoring pfSense 2.4 with SNMP - pfSense Hangout March 2018
 
Outdoor network engineering_chuck lukaszewski
Outdoor network engineering_chuck lukaszewskiOutdoor network engineering_chuck lukaszewski
Outdoor network engineering_chuck lukaszewski
 
6 understanding aruba rf issues
6 understanding aruba rf issues6 understanding aruba rf issues
6 understanding aruba rf issues
 
EMEA Airheads- Manage Devices at Branch Office (BOC)
EMEA Airheads- Manage Devices at Branch Office (BOC)EMEA Airheads- Manage Devices at Branch Office (BOC)
EMEA Airheads- Manage Devices at Branch Office (BOC)
 
Restful api design
Restful api designRestful api design
Restful api design
 
Campus Network Design version 8
Campus Network Design version 8Campus Network Design version 8
Campus Network Design version 8
 
Nat
NatNat
Nat
 
NGINX High-performance Caching
NGINX High-performance CachingNGINX High-performance Caching
NGINX High-performance Caching
 
EMEA Airheads- Aruba Instant AP- VPN Troubleshooting
EMEA Airheads- Aruba Instant AP-  VPN TroubleshootingEMEA Airheads- Aruba Instant AP-  VPN Troubleshooting
EMEA Airheads- Aruba Instant AP- VPN Troubleshooting
 
Cisco Live! :: Introduction to Segment Routing :: BRKRST-2124 | Las Vegas 2017
Cisco Live! :: Introduction to Segment Routing :: BRKRST-2124  | Las Vegas 2017Cisco Live! :: Introduction to Segment Routing :: BRKRST-2124  | Las Vegas 2017
Cisco Live! :: Introduction to Segment Routing :: BRKRST-2124 | Las Vegas 2017
 
Introduction to CNI (Container Network Interface)
Introduction to CNI (Container Network Interface)Introduction to CNI (Container Network Interface)
Introduction to CNI (Container Network Interface)
 
Ospf
OspfOspf
Ospf
 
ClearPass Guest Overview
ClearPass Guest Overview ClearPass Guest Overview
ClearPass Guest Overview
 
Test automation of ap is using postman
Test automation of ap is using postmanTest automation of ap is using postman
Test automation of ap is using postman
 
EMEA Airheads How licensing works in Aruba OS 8.x
EMEA Airheads  How licensing works in Aruba OS 8.xEMEA Airheads  How licensing works in Aruba OS 8.x
EMEA Airheads How licensing works in Aruba OS 8.x
 
JUNOS: OSPF and BGP
JUNOS: OSPF and BGPJUNOS: OSPF and BGP
JUNOS: OSPF and BGP
 
Aruba WLANs 101 and design fundamentals
Aruba WLANs 101 and design fundamentalsAruba WLANs 101 and design fundamentals
Aruba WLANs 101 and design fundamentals
 
Useful cli commands v1
Useful cli commands v1Useful cli commands v1
Useful cli commands v1
 
Linux Networking Explained
Linux Networking ExplainedLinux Networking Explained
Linux Networking Explained
 
IPv6 with Mikrotik
IPv6 with MikrotikIPv6 with Mikrotik
IPv6 with Mikrotik
 

Destacado

Module 10: CDB Subscribers
Module 10: CDB SubscribersModule 10: CDB Subscribers
Module 10: CDB SubscribersTail-f Systems
 
Module 8: C Data Types
Module 8: C Data TypesModule 8: C Data Types
Module 8: C Data TypesTail-f Systems
 
Module 12: NETCONF Northbound Interface
Module 12: NETCONF Northbound InterfaceModule 12: NETCONF Northbound Interface
Module 12: NETCONF Northbound InterfaceTail-f Systems
 
Open Network OS Overview as of 2015/10/16
Open Network OS Overview as of 2015/10/16Open Network OS Overview as of 2015/10/16
Open Network OS Overview as of 2015/10/16Kentaro Ebisawa
 
Module 11: Operational Data Providers
Module 11: Operational Data ProvidersModule 11: Operational Data Providers
Module 11: Operational Data ProvidersTail-f Systems
 
Module 9: CDB Technical Intro
 Module 9: CDB Technical Intro Module 9: CDB Technical Intro
Module 9: CDB Technical IntroTail-f Systems
 
Tail-f Webinar OpenFlow Switch Management Using NETCONF and YANG
Tail-f Webinar OpenFlow Switch Management Using NETCONF and YANGTail-f Webinar OpenFlow Switch Management Using NETCONF and YANG
Tail-f Webinar OpenFlow Switch Management Using NETCONF and YANGTail-f Systems
 
Dynamic Service Chaining
Dynamic Service Chaining Dynamic Service Chaining
Dynamic Service Chaining Tail-f Systems
 
Module 2: Why NETCONF and YANG
Module 2: Why NETCONF and YANGModule 2: Why NETCONF and YANG
Module 2: Why NETCONF and YANGTail-f Systems
 
Module 1: ConfD Technical Introduction
Module 1: ConfD Technical IntroductionModule 1: ConfD Technical Introduction
Module 1: ConfD Technical IntroductionTail-f Systems
 
Module 7: Installation and Getting Started
Module 7: Installation and Getting StartedModule 7: Installation and Getting Started
Module 7: Installation and Getting StartedTail-f Systems
 

Destacado (13)

Module 10: CDB Subscribers
Module 10: CDB SubscribersModule 10: CDB Subscribers
Module 10: CDB Subscribers
 
Module 8: C Data Types
Module 8: C Data TypesModule 8: C Data Types
Module 8: C Data Types
 
Tail-f - Why NETCONF
Tail-f - Why NETCONFTail-f - Why NETCONF
Tail-f - Why NETCONF
 
Tail f - Why ConfD
Tail f - Why ConfDTail f - Why ConfD
Tail f - Why ConfD
 
Module 12: NETCONF Northbound Interface
Module 12: NETCONF Northbound InterfaceModule 12: NETCONF Northbound Interface
Module 12: NETCONF Northbound Interface
 
Open Network OS Overview as of 2015/10/16
Open Network OS Overview as of 2015/10/16Open Network OS Overview as of 2015/10/16
Open Network OS Overview as of 2015/10/16
 
Module 11: Operational Data Providers
Module 11: Operational Data ProvidersModule 11: Operational Data Providers
Module 11: Operational Data Providers
 
Module 9: CDB Technical Intro
 Module 9: CDB Technical Intro Module 9: CDB Technical Intro
Module 9: CDB Technical Intro
 
Tail-f Webinar OpenFlow Switch Management Using NETCONF and YANG
Tail-f Webinar OpenFlow Switch Management Using NETCONF and YANGTail-f Webinar OpenFlow Switch Management Using NETCONF and YANG
Tail-f Webinar OpenFlow Switch Management Using NETCONF and YANG
 
Dynamic Service Chaining
Dynamic Service Chaining Dynamic Service Chaining
Dynamic Service Chaining
 
Module 2: Why NETCONF and YANG
Module 2: Why NETCONF and YANGModule 2: Why NETCONF and YANG
Module 2: Why NETCONF and YANG
 
Module 1: ConfD Technical Introduction
Module 1: ConfD Technical IntroductionModule 1: ConfD Technical Introduction
Module 1: ConfD Technical Introduction
 
Module 7: Installation and Getting Started
Module 7: Installation and Getting StartedModule 7: Installation and Getting Started
Module 7: Installation and Getting Started
 

Similar a Webinar: Applying REST to Network Management – An Implementor’s View

REST and REST-fulness
REST and REST-fulnessREST and REST-fulness
REST and REST-fulnessDavid Waite
 
2. RINA overview - TF workshop
2. RINA overview - TF workshop2. RINA overview - TF workshop
2. RINA overview - TF workshopARCFIRE ICT
 
Open source identity management 20121106 - apache con eu
Open source identity management   20121106 - apache con euOpen source identity management   20121106 - apache con eu
Open source identity management 20121106 - apache con euFrancesco Chicchiriccò
 
Webinar: How Banks Manage Reference Data with MongoDB
 Webinar: How Banks Manage Reference Data with MongoDB Webinar: How Banks Manage Reference Data with MongoDB
Webinar: How Banks Manage Reference Data with MongoDBMongoDB
 
EDB's Migration Portal - Migrate from Oracle to Postgres
EDB's Migration Portal - Migrate from Oracle to PostgresEDB's Migration Portal - Migrate from Oracle to Postgres
EDB's Migration Portal - Migrate from Oracle to PostgresEDB
 
Introduction to YANG data models and their use in OpenDaylight: an overview
Introduction to YANG data models and their use in OpenDaylight: an overviewIntroduction to YANG data models and their use in OpenDaylight: an overview
Introduction to YANG data models and their use in OpenDaylight: an overviewCisco DevNet
 
Under the hood, fighting fires with realtime semantic web technology
Under the hood, fighting fires with realtime semantic web technologyUnder the hood, fighting fires with realtime semantic web technology
Under the hood, fighting fires with realtime semantic web technologyBart van Leeuwen
 
Post-relational databases: What's wrong with web development?
Post-relational databases: What's wrong with web development?Post-relational databases: What's wrong with web development?
Post-relational databases: What's wrong with web development?Dobrica Pavlinušić
 
SnapLogic corporate presentation
SnapLogic corporate presentationSnapLogic corporate presentation
SnapLogic corporate presentationpbridges
 
Troubleshooting Dual-Protocol Networks and Systems by Scott Hogg at gogoNET L...
Troubleshooting Dual-Protocol Networks and Systems by Scott Hogg at gogoNET L...Troubleshooting Dual-Protocol Networks and Systems by Scott Hogg at gogoNET L...
Troubleshooting Dual-Protocol Networks and Systems by Scott Hogg at gogoNET L...gogo6
 
Facebook architecture
Facebook architectureFacebook architecture
Facebook architecturedrewz lin
 
Facebook architecture
Facebook architectureFacebook architecture
Facebook architecturemysqlops
 
Qcon 090408233824-phpapp01
Qcon 090408233824-phpapp01Qcon 090408233824-phpapp01
Qcon 090408233824-phpapp01jgregory1234
 
Facebook的架构
Facebook的架构Facebook的架构
Facebook的架构yiditushe
 
Proud to be polyglot
Proud to be polyglotProud to be polyglot
Proud to be polyglotTugdual Grall
 
Splunk as a_big_data_platform_for_developers_spring_one2gx
Splunk as a_big_data_platform_for_developers_spring_one2gxSplunk as a_big_data_platform_for_developers_spring_one2gx
Splunk as a_big_data_platform_for_developers_spring_one2gxDamien Dallimore
 
Mobile Development Meets Semantic Technology
Mobile Development Meets Semantic TechnologyMobile Development Meets Semantic Technology
Mobile Development Meets Semantic TechnologyBlue Slate Solutions
 

Similar a Webinar: Applying REST to Network Management – An Implementor’s View (20)

REST and REST-fulness
REST and REST-fulnessREST and REST-fulness
REST and REST-fulness
 
2. RINA overview - TF workshop
2. RINA overview - TF workshop2. RINA overview - TF workshop
2. RINA overview - TF workshop
 
Open source identity management 20121106 - apache con eu
Open source identity management   20121106 - apache con euOpen source identity management   20121106 - apache con eu
Open source identity management 20121106 - apache con eu
 
Webinar: How Banks Manage Reference Data with MongoDB
 Webinar: How Banks Manage Reference Data with MongoDB Webinar: How Banks Manage Reference Data with MongoDB
Webinar: How Banks Manage Reference Data with MongoDB
 
EDB's Migration Portal - Migrate from Oracle to Postgres
EDB's Migration Portal - Migrate from Oracle to PostgresEDB's Migration Portal - Migrate from Oracle to Postgres
EDB's Migration Portal - Migrate from Oracle to Postgres
 
Introduction to YANG data models and their use in OpenDaylight: an overview
Introduction to YANG data models and their use in OpenDaylight: an overviewIntroduction to YANG data models and their use in OpenDaylight: an overview
Introduction to YANG data models and their use in OpenDaylight: an overview
 
SDN and metrics from the SDOs
SDN and metrics from the SDOsSDN and metrics from the SDOs
SDN and metrics from the SDOs
 
Under the hood, fighting fires with realtime semantic web technology
Under the hood, fighting fires with realtime semantic web technologyUnder the hood, fighting fires with realtime semantic web technology
Under the hood, fighting fires with realtime semantic web technology
 
Post-relational databases: What's wrong with web development?
Post-relational databases: What's wrong with web development?Post-relational databases: What's wrong with web development?
Post-relational databases: What's wrong with web development?
 
SnapLogic corporate presentation
SnapLogic corporate presentationSnapLogic corporate presentation
SnapLogic corporate presentation
 
Samba management Console
Samba management ConsoleSamba management Console
Samba management Console
 
Troubleshooting Dual-Protocol Networks and Systems by Scott Hogg at gogoNET L...
Troubleshooting Dual-Protocol Networks and Systems by Scott Hogg at gogoNET L...Troubleshooting Dual-Protocol Networks and Systems by Scott Hogg at gogoNET L...
Troubleshooting Dual-Protocol Networks and Systems by Scott Hogg at gogoNET L...
 
Facebook architecture
Facebook architectureFacebook architecture
Facebook architecture
 
Facebook architecture
Facebook architectureFacebook architecture
Facebook architecture
 
Qcon 090408233824-phpapp01
Qcon 090408233824-phpapp01Qcon 090408233824-phpapp01
Qcon 090408233824-phpapp01
 
Facebook的架构
Facebook的架构Facebook的架构
Facebook的架构
 
Proud to be polyglot
Proud to be polyglotProud to be polyglot
Proud to be polyglot
 
"Vision for All?," a Presentation from Intel
"Vision for All?," a Presentation from Intel"Vision for All?," a Presentation from Intel
"Vision for All?," a Presentation from Intel
 
Splunk as a_big_data_platform_for_developers_spring_one2gx
Splunk as a_big_data_platform_for_developers_spring_one2gxSplunk as a_big_data_platform_for_developers_spring_one2gx
Splunk as a_big_data_platform_for_developers_spring_one2gx
 
Mobile Development Meets Semantic Technology
Mobile Development Meets Semantic TechnologyMobile Development Meets Semantic Technology
Mobile Development Meets Semantic Technology
 

Último

Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESmohitsingh558521
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 

Último (20)

Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 

Webinar: Applying REST to Network Management – An Implementor’s View

  • 1. Applying REST to Network Management; An Implementor’s View Carl Moberg, VP Technology calle@tail-f.com @cmoberg Confidential Information | December 18, 2012
  • 2. Agenda •  Background and Overview of REST •  REST in a Network Management Context •  Introducing Data Models •  Putting it all Together •  A Short Demo Confidential Information | December 18, 2012 1
  • 3. A Brief History of REST •  Fielding, R. T. (2000) Architectural Styles and the Design of Network-based Software Architectures •  Many called, few are chosen •  An architectural style... but we digress Confidential Information | December 18, 2012 2
  • 4. Which Way to Slice This? •  The REST Architectural Style describes six constraints: –  Uniform interface, Stateless, Cacheable, Client-server, Layered System, Code on demand (optional) •  Guiding principles for of a REST interface (the Uniform Interface constraints): –  Resources have unique identifiers (e.g. URIs) –  Manipulations of resources through representations –  Self-descriptive Messages –  Hypermedia as the engines of application state (HATEOAS) Confidential Information | December 18, 2012 3
  • 5. Resources Have Unique Identifiers (e.g. URIs) GET /api/running/interfaces/interface/eth0/ipv4 HTTP/1.1! ! <ipv4 y:self="/api/running/interfaces/interface/eth0/ip:ipv4”>! <address y:self=”[...]">! <ip>192.168.0.1</ip>! ...! ! •  Individual resources are identified in requests using URIs •  Resources are conceptually separate from the representations •  Resource representations depend on query and server support (e.g. XML and JSON) Confidential Information | December 18, 2012 4
  • 6. Manipulation of Representations < Content-Type: application/vnd.yang.data+xml! ! <ipv4 y:self="/api/running/interfaces/interface/eth0/ip:ipv4”>! <address y:self=”[...]">! <ip>192.168.0.1</ip>! </address>! </ipv4>! •  Representations (including metadata) contain enough information to be modified or deleted •  Provided that the client has permission to do so Confidential Information | December 18, 2012 5
  • 7. Self-descriptive Messages < HTTP/1.1 200 OK! < Server: ConfD! < Cache-control: private, no-cache, must-revalidate, proxy-revalidate ! < Date: Tue, 18 Dec 2012 15:53:12 GMT! < Content-Type: application/vnd.yang.data+xml! < Transfer-Encoding: chunked! •  Each message includes enough information to describe how to process the message •  Foundation for stateless processing •  Standard methods and media types are used to indicate semantics and exchange information Confidential Information | December 18, 2012 6
  • 8. Hypermedia as the Engines of Application State <running y:self="/api/running"/>! ! <interface y:self="/api/running/interfaces/interface/eth0">! ! <lock y:self="/api/running/_lock">! A REST API must not define fixed ! resource names or hierarchies - (angry) Fielding on his blog •  Most profound (and abused) criteria •  Clients deliver state via contents, query-string parameters, request headers and the URI •  Servers deliver state to clients via content, response codes, and response headers •  ...just like the web works Confidential Information | December 18, 2012 7
  • 9. REST vs Other Protocols REST SNMP NETCONF SOAP Data models SNMP MIBs YANG Models Data SMI YANG WSDL Modeling Language Management HTTP Verbs SNMP NETCONF N/A Operations Operations Operations RPC Protocol HTTP/XML/ BER XML XML Encoding JSON Transport SSL/HTTP/ UDP SSH/TCP SSL/HTTP/ Stack TCP TCP Confidential Information | December 18, 2012 8
  • 10. REST in a Network Management Context •  We will focus on using REST to read and write data to network elements •  Most applications we’ve come across expect to use RESTful HTTP to extract data using simple scripts –  curl(1), wget(1) •  As mentioned, we manipulate resources, one at a time •  But we know people will try and use it to peek and poke Recommended reading: RFC 3535 Overview of the 2002 IAB Network Management Workshop Confidential Information | December 18, 2012 9
  • 11. Information Models and Data Models •  Information Models are conceptual, implementation independent •  Data Models are detailed, intended for implementations Information Examples: UML, Entity Model Relations (ER) Examples: SMI, WSDL, Data Model Data Model Data Model YANG Recommended reading: RFC 3444 On the difference between Information Models and Data Models Confidential Information | December 18, 2012 10
  • 12. Data Models in Network Management •  So, what is the data model of a router or a switch? –  For OpenFlow people, it’s the switch pipeline –  For I2RS people, it’s the FIB and RIB –  For most implementations in the field, it’s what’s in the CLI •  Well used CLIs exhibit the inherited characteristics of all use cases it’s been exposed to •  We’ll assume (and it’s relatively well founded) that REST APIs want to be on the same abstraction level as the CLI –  Also, reality (code base) prohibits much else –  REST on a network level is very interesting, but different Confidential Information | December 18, 2012 11
  • 13. The YANG Data Modeling Language •  IETF RFC 6020, Standards Track •  A Language designed to write data models for the NETCONF protocol. It provides features including: –  Human readable –  Hierarchical –  Reusable types and groupings –  Extensibility –  Formal constraints for validation •  Proven to be useful for other applications (CLI, Web UI, etc) 12
  • 14. Example Data Model in YANG interfaces •  We’ll be looking at –  ietf-interface.yang! interface –  ietf-ip.yang! key: name •  Developed in the IETF statistics NETMOD WG ipv4 •  More models in the address address making ipv6 address address Confidential Information | December 18, 2012 13
  • 15. Mapping YANG to REST Resources •  YANG data nodes are mapped to REST resources •  YANG rpc statements are mapped to HTTP POST operations •  HTTP Verbs: –  GET to fetch resources –  POST to create resources –  PUT to replace a resource –  PATCH to modify existing resources –  DELETE to remove resources Confidential Information | December 18, 2012 14
  • 16. An Example Query (An Ethernet Interface) 1 > GET /api/running/interfaces/interface/eth0 HTTP/1.1! > Authorization: Basic YWRtaW46YWRtaW4=! > User-Agent: curl/7.28.! > Host: 127.0.0.1:8008! > Accept: */*! > ! < HTTP/1.1 200 OK! < Server: ConfD! < Date: Mon, 17 Dec 2012 16:08:33 GMT! 2 < Content-Type: application/vnd.yang.data+xml! < Transfer-Encoding: chunked! < ! ! <interface y:self="/api/running/interfaces/interface/eth0”>! <name>eth0</name>! <type>ethernetCsmacd</type>! <location>0</location>! 3 <ipv4 xmlns="urn:ietf:params:xml:ns:yang:ietf-ip">! <address y:self="/api/running/interfaces/interface/eth0/ip:ipv4/address/192.168.0.1">! <ip>192.168.0.1</ip>! </address>! </ipv4>! <ethernet xmlns="http://example.com/ethernet">! </ethernet>! </interface>! ! Confidential Information | December 18, 2012 15
  • 17. Introducing ConfD and it's REST Interface REST NETCONF NETCONF SNMP Web UI ConfD Core Engine •  Transactions •  AAA/User Sessions •  Logs and audit trails YANG Module CDB Managed Objects API Managed Managed Object Object Managed Managed Object Object Confidential Information | December 18, 2012 16
  • 18. How Does REST Work in a ConfD Context •  Just another northbound interface, shared everything •  RESTful API over HTTP –  for accessing data defined in YANG, stored in CDB –  using the datastores as defined in NETCONF •  Configuration data and state data are exposed to GET •  Configuration data also accept DELETE PATCH POST and PUT Confidential Information | December 18, 2012 17
  • 19. REST Resources (Top Level) •  Top level resource application/vnd.yang.api –  Well known /api location –  version string –  running - the running datastore –  operational - the representation of all operational data Confidential Information | December 18, 2012 18
  • 20. REST Resources (Datastores) •  Datastores application/vnd.yang.datastore –  running - The running configuration of the device –  startup - The startup configuration of the device Confidential Information | December 18, 2012 19
  • 21. Rest Resources (Model Resources) •  Model Resources application/vnd.yang.data –  All resources has y:path and y:self in representation –  All subresources has y:self reference Confidential Information | December 18, 2012 20
  • 22. (Finally) Time for Demo •  Queries –  Top-level –  Datastores –  Operations •  Interface configuration –  Look at interfaces –  Change IP address Confidential Information | December 18, 2012 21
  • 23. Conclusions and Things to Ponder •  REST allows for easy scripting with existing tools –  Many command line tools available and default on Linux and Mac –  Many, many language bindings •  REST does not provide sessions: –  Impact on error management –  How about transactions •  Rest allows for changing a single resource at a time: –  How does this scale in multi-parameter, complex environment Confidential Information | December 18, 2012 22
  • 24. Wrap up and Questions •  Suggested reading list: –  Fielding Dissertation –  RFC 3535 –  RFC 3444 –  YANG-API Protocol Draft (draft-bierman-netconf-yang-api-01) •  Discuss! –  @cmoberg –  calle@tail-f.com Confidential Information | December 18, 2012 23