Project Proposal: SDN-App SDK

Similar documents
Prioritization of Important Mice Flows in a Software Defined Network (SDN Application)

Towards Smart and Intelligent SDN Controller

Centinel: Streaming Data Handler. September 07 th, 2015

MS Design, Optimize and Maintain Database for Microsoft SQL Server 2008

Abstraction of a failure free Software Defined Network (SDN Application)

Table of Contents. Introduction. Audience. At Course Completion

Microsoft SQL Server Beginner course content (3-day)

Designing, Optimizing and Maintaining a Database Administrative Solution for Microsoft SQL Server 2008

Cloud Powered Mobile Apps with Azure

OpenAM. 1 open source 1 community experience distilled. Single Sign-On (SSO) tool for securing your web. applications in a fast and easy way

Day 1 - Technology Introduction & Digital Asset Management

Course 10978A Introduction to Azure for Developers

Implementing a Microsoft SQL Server 2005 Database

Ethernet-based Software Defined Network (SDN)

ONOS Open Network Operating System

Developing Microsoft SharePoint Server 2013 Advanced Solutions MOC 20489

Cloud-based Managed Services for SAP. Service Catalogue

Implementing Microsoft Azure Infrastructure Solutions

Configuring and Managing Microsoft System Center Essentials 2010

MS-10775: Administering Microsoft SQL Server 2012 Databases. Course Objectives. Required Exam(s) Price. Duration. Methods of Delivery.

MS-55115: Planning, Deploying and Managing Microsoft Project Server 2013

Educational Collaborative Develops Big Data Solution with MongoDB

DE-20489B Developing Microsoft SharePoint Server 2013 Advanced Solutions

Go2Group JaM Plugin. Atlassian JIRA add-on for HP Quality Center. Quick Install Guide

This three-day instructor-led course provides students with the tools to extend Microsoft Dynamics CRM 4.0.

Continuous Integration Multi-Stage Builds for Quality Assurance

SOA Planning Guide The Value Enablement Group, LLC. All rights reserved.

Administering a Microsoft SQL Server 2000 Database

Build management & Continuous integration. with Maven & Hudson

MongoDB Developer and Administrator Certification Course Agenda

Course 20532B: Developing Microsoft Azure Solutions

Course 55115: Planning, Deploying and Managing Microsoft Project Server 2013

6231A - Maintaining a Microsoft SQL Server 2008 Database

GMI CLOUD SERVICES. GMI Business Services To Be Migrated: Deployment, Migration, Security, Management

50238: Introduction to SQL Server 2008 Administration

Infoblox vnios Software for CISCO AXP

MS 10978A Introduction to Azure for Developers

Sisense. Product Highlights.

Using WebLOAD to Monitor Your Production Environment

Developing Microsoft SharePoint Server 2013 Advanced Solutions

whitepaper SolarWinds Integration with 3rd Party Products Overview

Transport SDN Toolkit: Framework and APIs. John McDonough OIF Vice President NEC BTE 2015

SA Tool Kit release life cycle

Course 20489B: Developing Microsoft SharePoint Server 2013 Advanced Solutions OVERVIEW

Securing your business

NetIQ Access Manager. Developer Kit 3.2. May 2012

LEARNING SOLUTIONS website milner.com/learning phone

ORACLE DATABASE 11G: COMPLETE

Administering a Microsoft SQL Server 2000 Database

How to Prepare for the Upgrade to Microsoft Dynamics CRM 2013 (On-premises)

Computer Visions Course Outline

Course Syllabus. Maintaining a Microsoft SQL Server 2005 Database. At Course Completion

Administering the Web Server (IIS) Role of Windows Server

Administering the Web Server (IIS) Role of Windows Server 10972B; 5 Days

ExecuTrain Course Outline MOC 6231B: Maintaining a Microsoft SQL Server 2008 R2 Database

Developing Microsoft SharePoint Server 2013 Advanced Solutions

Understanding The Brocade SDN Controller Architecture

Apple Pro Training Series. OS X Server. Essentials. Arek Dreyer. and Ben Greisler

Course: 10174B: Configuring and Administering Microsoft SharePoint 2010

Course Outline: Course 20489B: Developing Microsoft SharePoint Server 2013 Advanced Solutions

10775 Administering Microsoft SQL Server Databases

Planning, Deploying and Managing Microsoft Project Server 2013

Microsoft Dynamics GP econnect Installation and Administration Guide

Administering a Microsoft SQL Server 2000 Database

About This Document 3. Integration and Automation Capabilities 4. Command-Line Interface (CLI) 8. API RPC Protocol 9.

Course 6231B: Maintaining a Microsoft SQL Server 2008 R2 Database

Before attending this course, participants should have:

Developing Microsoft Azure Solutions

OnCommand Unified Manager

Developing Microsoft Azure Solutions 20532A; 5 days

Upgrading Your SQL Server 2000 Database Administration (DBA) Skills to SQL Server 2008 DBA Skills Course 6317A: Three days; Instructor-Led

Designing IT Platform Collaborative Applications with Microsoft SharePoint 2003 Workshop

Microsoft Project Server 2010 Technical Boot Camp

EMC AVAMAR INTEGRATION WITH EMC DATA DOMAIN SYSTEMS

JAVA/J2EE DEVELOPER RESUME

NMS Application for SDN Networks. Hema Gopalakrishnan, Manohar SL, Dimple Jain, Deepthi V V and Gaurav Bhagwani. - Ericsson

Software Requirement Specification Web Services Security

Module 1: Overview. Module 2: AlienVault USM Solution Deployment. Module 3: AlienVault USM Basic Configuration

10972B: Administering the Web Server (IIS) Role of Windows Server

MySQL Strategy. Morten Andersen, MySQL Enterprise Sales. Copyright 2014 Oracle and/or its affiliates. All rights reserved.

"Charting the Course to Your Success!" MOC B Configuring and Administering Microsoft SharePoint Course Summary

Designing and Developing Microsoft SharePoint Server 2010 Applications (MS10232)

Course Outline: Course 6317: Upgrading Your SQL Server 2000 Database Administration (DBA) Skills to SQL Server 2008 DBA Skills

Federated Application Centric Infrastructure (ACI) Fabrics for Dual Data Center Deployments

A8.1 Asset Management Responsibility for assets: To identify organisational assets and define appropriate protection responsibilities.

White paper December IBM Tivoli Access Manager for Enterprise Single Sign-On: An overview

Globalnest SAP Technical Services

Transcription:

Project Proposal: SDN-App SDK May XX th 2015 Presented by: Rajani Srivastava Sumit Kapoor

SDN-App SDK SDN-App for OpenDaylight: Current approach Current Approach What are we missing? SDN Application (SDN-App) being implemented leveraging OpenDaylight NB API s Business logic being implemented across SDN-Apps Interfaces/adaptors being implemented by SDN-Apps to inter-work with 3 rd party products/tools App developers write independent database CRUD services Silo operations of SDN-Apps Recommended framework as guideline to all SDN-Apps Reusability interfaces and database services Audit management for the SDN-Apps Validation suite for SDN-Apps Extensible to add-on Abstract APIs incorporating reusable business logic A SDN-App Software Development Kit (SDK) that provides a base reference for all the above 2

SDN-App SDK SDN-App for OpenDaylight: Approach queries? Category Users Developer Operator Security Current working view Any recommended framework/modelling technique to be used? Do I need to write own interface to inter-work with 3 rd party products/tools (possible duplication across SDN-Apps) Are there any abstract APIs available for application development? Any standardized approach to leverage database (if applicable)? Can my SDN-App co-exist with other SDN-Apps Are there SDN-App management & audit tools available? How does SDN-Apps cater to - Loss of service due to rules confliction What are by Backup and Recovery procedures for a SDN-App? How do I deploy this SDN-App in a live environment? Are these SDN Apps certified for OpenDaylight deployment? How to verify licensing alignment of these SDN-App? 3

SDN-App SDK Proposing SDN-App SDK for OpenDaylight An OpenDaylight SDN-App Software Development Kit 01 A reference platform that provides guidelines for a SDN-App development - framework, modelling techniques 02 Enables OpenDaylight SDN-App developers to collaborate (reuse, enhance, add-on) existing interfaces/adaptors/database services across SDN Apps 03 A common platform to validate SDN-Apps being implemented/deployed on OpenDaylight 04 A framework to enable application management start / stop / audit SDN-Apps being deployed on OpenDaylight 4

Primary Controller SDN-App SDK SDK Architecture (coverage) - Beryllium SDK APPs Prioritization of Mice Flows Application 2 Application 3 Application N SDK APIs and Tools SDK Framework 3rd Party Services IF-NMS Keeper Audit Application Management Start Stop Build DevOps tools Installation & Deployment Database Services CRUD IF-OSS IF-DPI Alerts Logging Backup Restore CLI Sample Code Sample code - Services Guidelines and Modelling Data Modelling YANG / WSDL / XSD Northbound API Project proposal for Beryllium-Release 5

Primary Controller SDN-App SDK SDK Architecture (coverage) - Boron SDK APPs Prioritization of Mice Flows Application 2 Application 3 Application N SDK APIs and Tools SDK Framework 3rd Party Services IF-NMS IF-OSS IF-DPI Keeper Audit Alerts Logging Application Management Start Stop Backup Restore CLI High Order Services Abstract API #1 Abstract API #1 NEMO API leverage Build DevOps tools Installation & Deployment Sample Code Sample code - Services Guidelines and Modelling Authentication Tokenization Certificates Validation Test Suite SDN App V&V Database Services CRUD Data Modelling YANG / WSDL / XSD Northbound API Beryllium-Release Boron-Release (wish list) 6

SDN-App SDK Functional Overview (coverage) Beryllium (1/2) SDK Feature Leveraging the SDK for SDN Application development Data Modelling 1. Yang generic and abstracted model for SDN App implementation 2. Defines 3 rd party tool type (DPI, monitoring, application suite) 3. Defines Data format (-Value List) for 3 rd party tool/suite integration 4. Defines Database connectivity (Cassandra, Mongo DB), database schemas 5. Enables defining Application specific data to be used by the SDN App 3rd Party Services 1. Listener APIs for modeled information from east-west interfaced 3 rd party tools (DPI, monitoring tools, Lync) 2. Leverage SDK YANG model to defined the tool type and related information from interfaced tools 3. Leverage SDK Listener APIs to retrieve modelled information from east-west interfaced tools Database Services 1. Leverage SDK YANG model enables creation of database schema for the data modelled object 2. Defined SDK YANG model enables inter-working with different database types (Cassandra, MongoDB) 3. Leverage SDK Database CRUD operations enables SDN App to use these database services 7

SDN-App SDK Functional Overview (coverage) Beryllium (2/2) SDK Feature Leveraging the SDK for SDN Application development Application Management 1. SDK Application Management Enables Keeper and OAM services for the SDN App 2. SDK OAM Services APIs enables SDN App to include Start, Stop, Backup/Restore capability 3. SDK CLI APIs enables extending OAM services via CLI Keeper 1. SDK Keeper APIs enables SDN App to include Audit, Alerts and Logging capability 2. Extend APIs to provide audit/monitoring of the SDN-App by other applications Build and Deploy 1. Follows OpenDaylight development (SONAR, Junit etc.) and build (Jenkings etc.) processes 2. SDN-App will also follow the OpenDaylight deployment approach (Karaf) Sample Code 1. As part of the SDN-App use case implemented, sample code for leveraging the SDK services to be available 2. Interface specifications/sdk User Guide to be available to enable leveraging the SDN-App SDK 8

Lifecycle of SDN-App development leveraging SDK 1 2 3 SDN-App SDK Developing an SDN App using the SDK (Sample) Prioritization of Mice Flows (1/4) SDN App developer Define model pom.xml for SDN-App Write a MICE- APP.YANG for SDN-App Write a MICE- APP- IMPL.YANG for SDN-App 1. <Sample> <project > <modelversion>4.0.0</modelversion> <groupid>org.sdk.apps</groupid> <artifactid>mice-app-parent</artifactid> <packaging>pom</packaging> </project> 2. <Sample> module mice-app{ container mice { grouping app-specific-params { leaf user-type { type String; } leaf l7-app-name { type string; } leaf priority { type int32; } } grouping dpi-params { leaf src-address { type String;} leaf dest-address { type string; } leaf l7-app-name { type string; } } grouping sflow-params { leaf threshold { type String; } } grouping node-info { leaf node-id { type String; } leaf queue { type string; } } rpc get-app-data{ input{ uses appl-specific-params;.. 3. <Sample> OpenDaylight SDN-App SDK //These are the services that will be provided by the sdk so any app that need to do crud operation will use these services module mice-app-impl{ container db-crud { uses config:service-ref { refine type { mandatory true; config:required-identity sdk:db-crud-agent; }} //any app that need to get some parameters from 3rd party tools //for sample we are providing two services for getting data from sflow and dpi container sflow-info { uses config:service-ref { refine type { mandatory true; config:required-identity sdk:3rd-party-sfowinfo-agent; }} container dpi-info { uses config:service-ref { refine type { mandatory true; config:required-identity sdk:3rd-party-dpi-infoagent; 9

Lifecycle of SDN-App development leveraging SDK SDN-App SDK Developing an SDN App using the SDK (Sample) Prioritization of Mice Flows (2/4) SDN App developer 4. <Sample> OpenDaylight SDN-App SDK 4 Additional implementation for Audit services 5 Update POM.XML //These are the services that will be provided by the sdk so any app can do operation leveraging these services module mice-app-impl{ continued }}// app that need logs and audit services container keeper { uses config:service-ref { refine type { mandatory true; config:required-identity sdk:keeperagent; }}// app status and monitoring container app-manager { uses config:service-ref { refine type { mandatory true; config:required-identity sdk:appmanager-agent; }} 5. <Sample> <dependencies> <dependency> <groupid>org.opendaylight.yangtools</groupid> <artifactid>maven-sal-api-gen-plugin</artifactid> </dependency <dependency> <groupid>org.opendaylight.yangtools</groupid> <artifactid>yang-binding</artifactid> </dependency> <dependency> <groupid>org.opendaylight.yangtools</groupid> <artifactid>yang-common</artifactid> </dependency> <dependency> <groupid>org.opendaylight.yangtools</groupid> <artifactid>yang-jxm-generator-plugin</artifactid> </dependency> </dependencies> 10

Lifecycle of SDN-App development leveraging SDK 6 7 SDN-App SDK Developing an SDN App using the SDK (Sample) Prioritization of Mice Flows (3/4) SDN App developer Implementing the business logic Implement listener APIs 6. <Sample> Doing mvn clean install will create a skeleton for the application. Then the app developer need to implement the interfaces created by yang and can apply business logic. public class MiceAppManager implements interfacescreatedbyyang, SDKServiceA, SDKServiceB... { public docrud(usertype,l7app, priority) { //save the configuration recieved as input in a database //retrieve the data from database } public dokeeper(usertype){ // if user type is undefined alert.post("critical..."); } 7. <Sample> OpenDaylight SDN-App SDK For getting the data from sflow and dpi, we need to create listeners API that will listen to the changes once sflow and dpi will be triggered public class MiceFlow implements SflowParam, DPIParams{ sflow.listener(sflowparams){ //send the sflow params for business logic once received } dpi.listener(dpiparams) { //send the dpi params for business logic once received } } public getappdata(usertype,l7app, priority, dpiparams, sflowparams) { // Based on the inputs received, apply the logic and set the priority of flows calltonbapis();}} 11

Lifecycle of SDN-App development leveraging SDK SDN-App SDK Developing an SDN App using the SDK (Sample) Prioritization of Mice Flows (4/4) SDN App developer OpenDaylight SDN-App SDK 8 CLI & Application Management 8. <Sample> Installation and Deployment using CLI: Installing the app will create the DB schema from model object Will move the snapshot or jar to target directory Will run and load classes Starting the application: App will register to 3rd party notifications Make the DB connection stop 12

Release Plan SDN-App SDK Milestone Offset 0 date Deliverable M1 Release Plan Candidate Release Plan M2 Release Plan Formal release plan Data Model, Database & 3 rd Party Services Setup SDK Framework and build SDK project. Implement Data modelling approach, Database and 3 rd party tools API services M3 Audit-Keeper and Listener Service Implement Keeper, Audit SDK Services. Implement CLI support for Keeper services Implement SDK Listener Services for modeled information M4 Use-Case/Sample code Implement use-case of Prioritization of Mice flows using SDK. Build and Deploy on ODL M5 Code Freeze SDN SDK-App code freeze. RC0 Bug Fixes Bug fixes for M2 and M3 SDK User Guide User Guide for SDN-App SDK RC1 Bug Fixes Bug fixes for M4 RC2 Release Review Release Notes and documentation Bug Fixes Bug fixes for M5 Formal Beryllium release 13

Thanks

SDN-App SDK SDK Framework (an overview) Exposed API Model Approach Listener Services Service APIs Database CRUD Application Management Keeper Higher Order / NEMOServices Validation Suite Authentication Build and Deploy Northbound API Model API YANG Service implementation Keeper & OAM Services Start/Stop Backup/Restore Audit Alert Uses Listener to 3rd Party suite Implementation 3 rd Party plugin 1 Implements 3 rd Party suite API 3 rd Party plugin 2 DB Access API Implementation 3 rd Party plugin 3 DAO Client Beryllium-Release Boron-Release (wish list) 15 To 3 rd party tools (ex. DPI, Monitoring tools, Lync) Database (ex. Cassandra, MongoDB)