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

SoapUI ile Rest Api Testi
SoapUI ile Rest Api TestiSoapUI ile Rest Api Testi
SoapUI ile Rest Api TestiTuncer Ergin
 
Intro to Single / Two Rate Three Color Marker (srTCM / trTCM)
Intro to Single / Two Rate Three Color Marker (srTCM / trTCM)Intro to Single / Two Rate Three Color Marker (srTCM / trTCM)
Intro to Single / Two Rate Three Color Marker (srTCM / trTCM)Kentaro Ebisawa
 
Yeni başlayanlar için Laravel
Yeni başlayanlar için Laravel Yeni başlayanlar için Laravel
Yeni başlayanlar için Laravel Cüneyd Tural
 
IETF 104 Hackathon VPP Prototyping Stateless SRv6/GTP-U Translation
IETF 104 Hackathon VPP Prototyping Stateless SRv6/GTP-U TranslationIETF 104 Hackathon VPP Prototyping Stateless SRv6/GTP-U Translation
IETF 104 Hackathon VPP Prototyping Stateless SRv6/GTP-U TranslationKentaro Ebisawa
 
Introduction to WebRTC
Introduction to WebRTCIntroduction to WebRTC
Introduction to WebRTCArt Matsak
 
Java Technical Design Document
Java Technical Design DocumentJava Technical Design Document
Java Technical Design DocumentDeborah Obasogie
 
普及版8チャンネルLoRaWAN Pico Staion LPS8ユーザーマニュアル
普及版8チャンネルLoRaWAN Pico Staion LPS8ユーザーマニュアル普及版8チャンネルLoRaWAN Pico Staion LPS8ユーザーマニュアル
普及版8チャンネルLoRaWAN Pico Staion LPS8ユーザーマニュアルCRI Japan, Inc.
 
오픈소스 프레임워크 기반 웹 서비스 설계 (Example)
오픈소스 프레임워크 기반 웹 서비스 설계 (Example)오픈소스 프레임워크 기반 웹 서비스 설계 (Example)
오픈소스 프레임워크 기반 웹 서비스 설계 (Example)중선 곽
 
MPLS-TP (MPLS Transport Profile)
MPLS-TP (MPLS Transport Profile)MPLS-TP (MPLS Transport Profile)
MPLS-TP (MPLS Transport Profile)Shivlu Jain
 
Spring Security Patterns
Spring Security PatternsSpring Security Patterns
Spring Security PatternsVMware Tanzu
 
Insights on the Configuration and Performances of SOME/IP Service Discovery
Insights on the Configuration and Performances of SOME/IP Service DiscoveryInsights on the Configuration and Performances of SOME/IP Service Discovery
Insights on the Configuration and Performances of SOME/IP Service DiscoveryRealTime-at-Work (RTaW)
 
Software Design Description (SDD) sample
Software Design Description (SDD) sampleSoftware Design Description (SDD) sample
Software Design Description (SDD) samplePeny Gama
 
Junos vs ios Troubleshooting comands
Junos vs ios Troubleshooting comands Junos vs ios Troubleshooting comands
Junos vs ios Troubleshooting comands sandeep kumar
 

La actualidad más candente (20)

API
APIAPI
API
 
SoapUI ile Rest Api Testi
SoapUI ile Rest Api TestiSoapUI ile Rest Api Testi
SoapUI ile Rest Api Testi
 
WebRTC
WebRTCWebRTC
WebRTC
 
Intro to Single / Two Rate Three Color Marker (srTCM / trTCM)
Intro to Single / Two Rate Three Color Marker (srTCM / trTCM)Intro to Single / Two Rate Three Color Marker (srTCM / trTCM)
Intro to Single / Two Rate Three Color Marker (srTCM / trTCM)
 
Yeni başlayanlar için Laravel
Yeni başlayanlar için Laravel Yeni başlayanlar için Laravel
Yeni başlayanlar için Laravel
 
IETF 104 Hackathon VPP Prototyping Stateless SRv6/GTP-U Translation
IETF 104 Hackathon VPP Prototyping Stateless SRv6/GTP-U TranslationIETF 104 Hackathon VPP Prototyping Stateless SRv6/GTP-U Translation
IETF 104 Hackathon VPP Prototyping Stateless SRv6/GTP-U Translation
 
Introduction to WebRTC
Introduction to WebRTCIntroduction to WebRTC
Introduction to WebRTC
 
Togaf 9 template requirements impact assessment
Togaf 9 template   requirements impact assessmentTogaf 9 template   requirements impact assessment
Togaf 9 template requirements impact assessment
 
Netflow slides
Netflow slidesNetflow slides
Netflow slides
 
Java Technical Design Document
Java Technical Design DocumentJava Technical Design Document
Java Technical Design Document
 
ApresentaçãO Mpls
ApresentaçãO MplsApresentaçãO Mpls
ApresentaçãO Mpls
 
普及版8チャンネルLoRaWAN Pico Staion LPS8ユーザーマニュアル
普及版8チャンネルLoRaWAN Pico Staion LPS8ユーザーマニュアル普及版8チャンネルLoRaWAN Pico Staion LPS8ユーザーマニュアル
普及版8チャンネルLoRaWAN Pico Staion LPS8ユーザーマニュアル
 
오픈소스 프레임워크 기반 웹 서비스 설계 (Example)
오픈소스 프레임워크 기반 웹 서비스 설계 (Example)오픈소스 프레임워크 기반 웹 서비스 설계 (Example)
오픈소스 프레임워크 기반 웹 서비스 설계 (Example)
 
MPLS-TP (MPLS Transport Profile)
MPLS-TP (MPLS Transport Profile)MPLS-TP (MPLS Transport Profile)
MPLS-TP (MPLS Transport Profile)
 
KrakenD API Gateway
KrakenD API GatewayKrakenD API Gateway
KrakenD API Gateway
 
Spring Security Patterns
Spring Security PatternsSpring Security Patterns
Spring Security Patterns
 
Insights on the Configuration and Performances of SOME/IP Service Discovery
Insights on the Configuration and Performances of SOME/IP Service DiscoveryInsights on the Configuration and Performances of SOME/IP Service Discovery
Insights on the Configuration and Performances of SOME/IP Service Discovery
 
What is FHIR
What is FHIRWhat is FHIR
What is FHIR
 
Software Design Description (SDD) sample
Software Design Description (SDD) sampleSoftware Design Description (SDD) sample
Software Design Description (SDD) sample
 
Junos vs ios Troubleshooting comands
Junos vs ios Troubleshooting comands Junos vs ios Troubleshooting comands
Junos vs ios Troubleshooting comands
 

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 6: YANG Tutorial - part 2
Module 6: YANG Tutorial - part 2Module 6: YANG Tutorial - part 2
Module 6: YANG Tutorial - part 2Tail-f Systems
 
Module 5: YANG Tutorial - part 1
Module 5: YANG Tutorial - part 1Module 5: YANG Tutorial - part 1
Module 5: YANG Tutorial - part 1Tail-f Systems
 
Module 4: NETCONF Tutorial
Module 4: NETCONF Tutorial Module 4: NETCONF Tutorial
Module 4: NETCONF Tutorial Tail-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 3: NETCONF and YANG Concepts
Module 3: NETCONF and YANG ConceptsModule 3: NETCONF and YANG Concepts
Module 3: NETCONF and YANG ConceptsTail-f Systems
 
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 (18)

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
 
Module 6: YANG Tutorial - part 2
Module 6: YANG Tutorial - part 2Module 6: YANG Tutorial - part 2
Module 6: YANG Tutorial - part 2
 
Tail-f - Why NETCONF
Tail-f - Why NETCONFTail-f - Why NETCONF
Tail-f - Why NETCONF
 
Module 5: YANG Tutorial - part 1
Module 5: YANG Tutorial - part 1Module 5: YANG Tutorial - part 1
Module 5: YANG Tutorial - part 1
 
Module 4: NETCONF Tutorial
Module 4: NETCONF Tutorial Module 4: NETCONF Tutorial
Module 4: NETCONF Tutorial
 
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 3: NETCONF and YANG Concepts
Module 3: NETCONF and YANG ConceptsModule 3: NETCONF and YANG Concepts
Module 3: NETCONF and YANG Concepts
 
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
 
NETCONF YANG tutorial
NETCONF YANG tutorialNETCONF YANG tutorial
NETCONF YANG tutorial
 
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

Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsRoshan Dwivedi
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 

Último (20)

Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 

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