OpenDaylight

Daniel Farrell
Red Hat SDN Team
@dfarrell07

VERY QUICK: INTRO TO ME

Daniel Farrell
Software Engineer, Red Hat SDN Team

VERY QUICK: INTRO TO ME

PTL:
  • OpenDaylight Integration/Packaging
  • OPNFV CPerf
 

VERY QUICK: INTRO TO ME

Committer:
  • OpenDaylight Integration/Test
  • CentOS NFV SIG

VERY QUICK: INTRO TO ME

OpenDaylight TSC

Overview

OVERVIEW

SDN level-setting

OVERVIEW

OpenDaylight projects

OVERVIEW

Types of Open Source projects

OVERVIEW

OpenDaylight governance

OVERVIEW

How to get hands-on with ODL

OVERVIEW

Resources

Intro: SDN Controllers

INTRO: SDN CONTROLLERS

Abstract underlying physical network

INTRO: SDN CONTROLLERS

Allow programmability of network

INTRO: SDN CONTROLLERS

Northbound API for apps to consume controller

INTRO: SDN CONTROLLERS

Controller presents virtualized network to apps
Example: OpenStack

INTRO: SDN CONTROLLERS

Solid abstractions -> huge win
(as with all Software Engineering)

INTRO: SDN CONTROLLERS

Standard APIs give investment protection to apps

INTRO: SDN CONTROLLERS

API standardization via spec has issues
(slow, vendor-dominated, details inconsistent)

INTRO: SDN CONTROLLERS

ODL standardizes based on common implementation

INTRO: SDN CONTROLLERS

Many vendors contribute to shared implementation

INTRO: SDN CONTROLLERS

Each builds value around it

INTRO: SDN CONTROLLERs

Ignoring many other interesting use-cases
(IoT, power grids, ...)

ARCHITECTURE

Intro to Projects

INTRO TO PROJECTS

OpenDaylight is made of many projects

INTRO TO PROJECTS

Anyone can submit one

INTRO TO PROJECTS

TSC* vets and approves new projects
*Details later

Projects

Projects


Projects


Projects


Projects


PROJECTS


PROJECTS


Notable Projects

NOTABLE PROJECTS

Some are critical for reasons other than dependencies

NOTABLE PROJECTS

Netvirt

NOTABLE PROJECTS

Service Function Chaining (SFC)

NOTABLE PROJECTS

Group Based Policy (GBP)

NOTABLE PROJECTS

Int/Test

Open Source

OPEN SOURCE

OpenDaylight is open source

OPEN SOURCE

More than a license, mostly community

Types of Open Source Communities

TYPES OF OPEN SOURCE COMMUNITIES

Loosely Aligned

TYPES OF OPEN SOURCE COMMUNITIES

Vendor Dominated

TYPES OF OPEN SOURCE COMMUNITIES

Foundation Manged

Open Source: Loosely Aligned

OPEN SOURCE: Loosely Aligned

Most common

OPEN SOURCE: Loosely Aligned

Rarely become popular

OPEN SOURCE: LOOSELY ALIGNED

Some miraculous successes
(Linux, GNU tools...)

OPEN SOURCE: LOOSELY ALIGNED

Some transition into Foundation Managed

OPEN SOURCE: Vendor Dominated

OPEN SOURCE: VENDOR DOMINATED

Dominated by a single vendor

OPEN SOURCE: VENDOR DOMINATED

Vendor may control committs

OPEN SOURCE: VENDOR DOMINATED

Juniper: Open Contrail
Big Switch: Floodlight
Oracle: Java
Oracle: MySQL 

OPEN SOURCE: Foundation Manged

OPEN SOURCE:Foundation Manged

Product-neutral, vendor-neutral

OPEN SOURCE: Foundation Manged

Normally comprised of many vendors

OPEN SOURCE: FOUNDATION MANGED

Widely considered the "best" type

OPEN SOURCE: FOUNDATION MANGED

Examples: OpenStack, OpenDaylight, Apache

OpenDaylight GOVERNANCE

Linux Foundation

LINUX FOUNDATION

Provides infrastructure
(Gerrit, Jenkins, Nexus, Bugzilla, mailing lists...)

LINUX FOUNDATION

Organizes events
(Dev Design Forum, Summit, Mini-Summits)

Committers

COMMITTERS

Contributors who review code

COMMITTERS

Elected by other committers, approved by TSC*
*More soon

Project Tech Leads

PROJECT TECH LEADS

Project-level governance

PROJECT TECH LEADS

Follow release process

PROJECT TECH LEADS

Interface with other projects, TSC

PROJECT TECH LEADS

Elected by committers

Technical Steering Committee

(TSC)

TSC

Release process

TSC

Cross-project interactions

TSC

Approves new projects

TSC

Approves project committers

TSC

Interface with external groups
(OPNFV)

TSC

Suggests priorities
(via User Advisory Group)

OpenDaylight Board

OPENDAYLIGHT BOARD

Financial and legal borning stuff

OPENDAYLIGHT BOARD

Gives TSC powers

OPENDAYLIGHT BOARD

User Advisory Group

Hands-on

HANDS-ON

Easy deployment options for new users

HANDS-ON

Vagrant base box, Docker image

Title

VAGRANT BASE BOX

Vagrant Base Box

[~/sandbox]$ vagrant init -m opendaylight/odl
[~/sandbox]$ cat Vagrantfile
Vagrant.configure(2) do |config|
  config.vm.box = "opendaylight/odl"
end

Vagrant Base Box

[~/sandbox]$ vagrant up

Vagrant Base Box

default: URL: https://atlas.hashicorp.com/opendaylight/odl
==> default: Adding box 'opendaylight/odl' (v4.0.0)

Vagrant Base Box

[~/sandbox]$ vagrant status
Current machine states:

default                   running (libvirt)

Vagrant Base Box

[~/sandbox]$ vagrant ssh

Vagrant Base Box

[vagrant@localhost ~]$ sudo systemctl is-active opendaylight
active

Docker

Docker

Example: One-liner Karaf shell

Containers

$ docker run -ti dfarrell07/odl:4.1.0 /opt/opendaylight/bin/karaf


Useful Resources

Project meetings

PROJECT MEETINGS


PROJECT MEETINGS


YouTube

YouTube

Good tutorials, walkthroughs

YOUTUBE


Youtube


YOUTUBE


Youtube


Mailing lists

Mailing lists

Best for reaching all devs in a given project

Mailing lists

Wikis

Wikis

Main source of OpenDaylight docs

Wikis

ask.opendaylight.org

ask.opendaylight.org

Q&A-style site, like StackExchange

ask.opendaylight.org


ask.opendaylight.org

Best for Q&As that could be useful to others

ask.opendaylight.org

Up-vote and accept answers!

IRC

IRC

Good for pinging people directly

IRC

Channels (Freenode):
#opendaylight
#opendaylight-integration
#opendaylight-meetings

Contact

Daniel Farrell
Twitter (optimal):

Others:
dfarrell@redhat.com
dfarrell07 on IRC, GitHub

OpenDaylight Overview

By Daniel Farrell

OpenDaylight Overview

OpenDaylight overview for the Madrid ODLUG's first meetup.

  • 2,193