Next Generation
Network Developer
Skills
Kyle Mestery
Principal Engineer, Office of the Cloud CTO, Cisco

S
My
background
•

Principal Engineer, Office of the
Cloud CTO
•

•

Chief OpenStack Architect

OpenStack Neutron Core Team
Member
•
•

•

Open vSwitch VXLAN contribution
Modular Layer 2 (ML2) Plugin

OpenDaylight OVSDB Contributor
•

•

OpenDaylight MechanismDriver for ML2

Open vSwitch Contributor
•
•

•

VXLAN
Flow-based tunneling

libvirt contributor
•

Open vSwitch Support

•

Live migration support for OVS
The Frontier of Networking
Existing

New

S

CLIs

S

APIs

S

Closed Source

S

Open Source

S

Vendor Lead

S

Customer Lead

S

Classic Network
Appliances

S

Network Function
Virtualization (NFV)
Components of the New
Frontier
All of This Leads Us To …

Software Defined
Networking
DevOps
DevOps Defined
Networking
People Like SDN Because

SDN promises to make networks:
1. Dynamically provisioned
2. Provide scalable capacity
3. Provide abstracted HW complexity

4. Bandwidth on demand
Arming Yourself To Explore This
New Frontier

Transformation of Network
Engineer
1. Programming skills
2. Tools
3. Getting your hands dirty
From Engineer to Developer
Programming Skills

S
5 Reasons Why You Should
Learn Basic Programming
1. You’re already programming, even if you don’t know it
2. Everything has an API
3. It’s all about the applications
4. Prototypes

5. New skills, new opportunities
It’s All About the Apps
Top 10 Languages on
github.com
Rank

Language

# of Repositories Created

1

JavaScript

264131

2

Ruby

218812

3

Java

157618

4

PHP

114384

5

Python

95002

6

C++

78327

7

C

67706

8

Objective-C

36344

9

C#

32170

10

Shell

28561

[1] As of August, 2013: http://adambard.com/blog/top-github-languages-for-2013-so-far/
What are Open Source
Networking Projects Written
In?
Project

Primary Language Written In

Open vSwitch

C

OpenDaylight

Java

Floodlight

Java

Ryu

Python

OpenStack

Python

CloudStack

Java

OpenContrail

C++
What Languages To Learn

S Focus on languages for the APIs you are using
S Java
S Python
S Maybe C and/or C++
Tools of the Trade

S
IRC (Internet Relay Chat)

S

Open Source projects all use
IRC

S

Recommended channels in
Open Source networking:
S #openstack-neutron
S #opendaylight
S #opendaylight-ovsdb
S #openvswitch
Mailing Lists

S

Open Source projects all use
mailing lists for communication
S Documents things in the

archives
S Allows searching for new

participants
git

S

Source code management tool
of choice
S github is used to share code
S Most projects use github
S If github is not used, the

projects likely have their
own git server
S

Get a github ID
S https://github.com/
Wikis

S

All Open Source projects have
Wikis

S

Provide an easy way to share
information
S Warning: Information can get
stale
S Warning: Humans don’t like
correcting stale information

S

An easy way for new contributors
to help is to update wikis!
Getting your hands dirty

S
Linux

S

The kernel of choice in the Open Source
world
S
KVM or Xen for virtualization
S
OpenStack
S
CloudStack

S

Prevalent in IaaS world
S
Amazon AWS
S
Rackspace

S

Popular Switch Operating System
S
Cisco NX-OS
S
Arista EOS
S
Cumulus Linux
Datacenter On Your Laptop
Open vSwitch

S

Open vSwitch is an Open Source
extensible virtual switch
S Licensed under the Apache
2.0 and GPL licenses

S

Supports a wide array of
protocols
S Netflow
S sFlow
S SPAN
S RSPAN
S CLI
S LACP
Open vSwitch Specifics

S

Security

S

Overlay network building block

S

Monitoring

S

Used by many virtualization and
IaaS platforms

S

QoS
S

Kernel module is upstream

S

Many Linux platforms
supported

S

Automated Control
Sample Open vSwitch Commands
OpenDaylight

OpenDaylight’s mission is to
facilitate a community-led, industrysupported open source
platform, including code and
architecture, to accelerate adoption
of Software-Defined Networking
and Network Functions
Virtualization.
OpenDaylight Project Framework
OpenDaylight “Hydrogen” Release
OpenDaylight GUI
OpenStack

To produce the ubiquitous open
source cloud computing platform
that will meet the needs of public
and private cloud providers
regardless of size, by being simple
to implement and massively
scalable.
OpenStack Official Programs

S

Compute (Nova)

S

Orchestration (Heat)

S

Quality Assurance (QA)

S

Object Storage (Swift)

S

Database Service (Trove)

S

Deployment (TripleO)

S

Image Service (Glance)

S

Bare Metal (Ironic)

S

Devstack (DevStack)

S

Identity (Keystone)

S

Queue Service (Marconi)

S

Release cycle management

S

Dashboard (Horizon)

S

Networking (Neutron)

S
S

Block Storage (Cinder)
Telemetry (Ceilometer)

S

Data processing
(Savanna)

S

Common Libraries (Oslo)

S

Infrastructure

S

Documentation
OpenStack CLI: Boot a VM
OpenStack CLI: List VMs
OpenStack Horizon GUI
devstack

DevStack’s mission is to provide
and maintain tools used for the
installation of the central
OpenStack services from source
(git repository master, or specific
branches) suitable for development
and operational testing. It also
demonstrates and documents
examples of configuring and
running services as well as
command line client usage.
devstack: local.conf example
Puppet, Chef, Ansible, Salt
Where Does This Lead Us?
Building Blocks Are Here

Applications!

Yay to applications!

Automation

DevOps at scale!

OpenDaylight
OpenStack or CloudStack or Eucalyptus
or oVirt
Linux (Fedora, Ubuntu, Red Hat, etc.)
Xen or KVM

SDN for the
masses!
IaaS for the
masses!
At the heart of all of
this …
References

S VirtualBox

S stackforge

S OpenStack

S devstack

S OpenDaylight

S Puppet Labs

S Open vSwitch

S Chef

S Freenode

S Ansible

S Github

S Saltstack
References Cont.

S Brent Salisbury’s Blog:
S http://networkstatic.net/

S Scott Lowe’s Blog:
S http://blog.scottlowe.org/

S Kyle Mestery’s Blog:
S http://www.siliconloons.com/
Next Generation Network Developer Skills

Next Generation Network Developer Skills

  • 1.
    Next Generation Network Developer Skills KyleMestery Principal Engineer, Office of the Cloud CTO, Cisco S
  • 2.
    My background • Principal Engineer, Officeof the Cloud CTO • • Chief OpenStack Architect OpenStack Neutron Core Team Member • • • Open vSwitch VXLAN contribution Modular Layer 2 (ML2) Plugin OpenDaylight OVSDB Contributor • • OpenDaylight MechanismDriver for ML2 Open vSwitch Contributor • • • VXLAN Flow-based tunneling libvirt contributor • Open vSwitch Support • Live migration support for OVS
  • 4.
    The Frontier ofNetworking Existing New S CLIs S APIs S Closed Source S Open Source S Vendor Lead S Customer Lead S Classic Network Appliances S Network Function Virtualization (NFV)
  • 5.
    Components of theNew Frontier
  • 6.
    All of ThisLeads Us To … Software Defined Networking DevOps DevOps Defined Networking
  • 7.
    People Like SDNBecause SDN promises to make networks: 1. Dynamically provisioned 2. Provide scalable capacity 3. Provide abstracted HW complexity 4. Bandwidth on demand
  • 8.
    Arming Yourself ToExplore This New Frontier Transformation of Network Engineer 1. Programming skills 2. Tools 3. Getting your hands dirty
  • 9.
  • 10.
  • 11.
    5 Reasons WhyYou Should Learn Basic Programming 1. You’re already programming, even if you don’t know it 2. Everything has an API 3. It’s all about the applications 4. Prototypes 5. New skills, new opportunities
  • 12.
  • 13.
    Top 10 Languageson github.com Rank Language # of Repositories Created 1 JavaScript 264131 2 Ruby 218812 3 Java 157618 4 PHP 114384 5 Python 95002 6 C++ 78327 7 C 67706 8 Objective-C 36344 9 C# 32170 10 Shell 28561 [1] As of August, 2013: http://adambard.com/blog/top-github-languages-for-2013-so-far/
  • 14.
    What are OpenSource Networking Projects Written In? Project Primary Language Written In Open vSwitch C OpenDaylight Java Floodlight Java Ryu Python OpenStack Python CloudStack Java OpenContrail C++
  • 15.
    What Languages ToLearn S Focus on languages for the APIs you are using S Java S Python S Maybe C and/or C++
  • 16.
    Tools of theTrade S
  • 17.
    IRC (Internet RelayChat) S Open Source projects all use IRC S Recommended channels in Open Source networking: S #openstack-neutron S #opendaylight S #opendaylight-ovsdb S #openvswitch
  • 18.
    Mailing Lists S Open Sourceprojects all use mailing lists for communication S Documents things in the archives S Allows searching for new participants
  • 19.
    git S Source code managementtool of choice S github is used to share code S Most projects use github S If github is not used, the projects likely have their own git server S Get a github ID S https://github.com/
  • 20.
    Wikis S All Open Sourceprojects have Wikis S Provide an easy way to share information S Warning: Information can get stale S Warning: Humans don’t like correcting stale information S An easy way for new contributors to help is to update wikis!
  • 21.
  • 22.
    Linux S The kernel ofchoice in the Open Source world S KVM or Xen for virtualization S OpenStack S CloudStack S Prevalent in IaaS world S Amazon AWS S Rackspace S Popular Switch Operating System S Cisco NX-OS S Arista EOS S Cumulus Linux
  • 23.
  • 24.
    Open vSwitch S Open vSwitchis an Open Source extensible virtual switch S Licensed under the Apache 2.0 and GPL licenses S Supports a wide array of protocols S Netflow S sFlow S SPAN S RSPAN S CLI S LACP
  • 25.
    Open vSwitch Specifics S Security S Overlaynetwork building block S Monitoring S Used by many virtualization and IaaS platforms S QoS S Kernel module is upstream S Many Linux platforms supported S Automated Control
  • 26.
  • 27.
    OpenDaylight OpenDaylight’s mission isto facilitate a community-led, industrysupported open source platform, including code and architecture, to accelerate adoption of Software-Defined Networking and Network Functions Virtualization.
  • 28.
  • 29.
  • 30.
  • 31.
    OpenStack To produce theubiquitous open source cloud computing platform that will meet the needs of public and private cloud providers regardless of size, by being simple to implement and massively scalable.
  • 32.
    OpenStack Official Programs S Compute(Nova) S Orchestration (Heat) S Quality Assurance (QA) S Object Storage (Swift) S Database Service (Trove) S Deployment (TripleO) S Image Service (Glance) S Bare Metal (Ironic) S Devstack (DevStack) S Identity (Keystone) S Queue Service (Marconi) S Release cycle management S Dashboard (Horizon) S Networking (Neutron) S S Block Storage (Cinder) Telemetry (Ceilometer) S Data processing (Savanna) S Common Libraries (Oslo) S Infrastructure S Documentation
  • 33.
  • 34.
  • 35.
  • 36.
    devstack DevStack’s mission isto provide and maintain tools used for the installation of the central OpenStack services from source (git repository master, or specific branches) suitable for development and operational testing. It also demonstrates and documents examples of configuring and running services as well as command line client usage.
  • 37.
  • 38.
  • 39.
  • 40.
    Building Blocks AreHere Applications! Yay to applications! Automation DevOps at scale! OpenDaylight OpenStack or CloudStack or Eucalyptus or oVirt Linux (Fedora, Ubuntu, Red Hat, etc.) Xen or KVM SDN for the masses! IaaS for the masses! At the heart of all of this …
  • 41.
    References S VirtualBox S stackforge SOpenStack S devstack S OpenDaylight S Puppet Labs S Open vSwitch S Chef S Freenode S Ansible S Github S Saltstack
  • 42.
    References Cont. S BrentSalisbury’s Blog: S http://networkstatic.net/ S Scott Lowe’s Blog: S http://blog.scottlowe.org/ S Kyle Mestery’s Blog: S http://www.siliconloons.com/

Editor's Notes

  • #2 Happy to speak on the changing landscapeOpen Source driving changeAccelerated innovationAutomation/DevOpsWhat Skills are required?From Network Engineer to Network Developer
  • #5 ----- Meeting Notes (12/10/13 10:36) -----Where are things headed?By customer lead, I mean customers are much more involved. ONF Open Compute Customer involvement in upstream projects
  • #8 ----- Meeting Notes (12/11/13 08:52) -----Lets not get into the SDN debate hereBusiness agilityRemoving complexity, not just moving complexity
  • #9 3thingsneeded for success in this new world order:Programming skillsTools of the tradeGetting your hands dirty
  • #12 ----- Meeting Notes (12/10/13 16:29) -----1. Bash. Python. PowerShell. Javascript. Ruby.2. Switches. Routers. Your phone.3. Applications drive everything. Scale at this level.4. Get what you want vetted faster.5. Expand your skills to open up new oppurtunities
  • #18 ----- Meeting Notes (12/10/13 16:29) -----Freenode is the most popularProject meetinsg held on IRCCommunity and collaboration begin hereWorking with people across the globe
  • #19 ----- Meeting Notes (12/10/13 16:32) -----The most critical and long last communiation tools for Open Source projects.Everything is tracked and archived here.Can get overwhelmingFilter rules are your friend
  • #20 ----- Meeting Notes (12/10/13 16:32) -----Think of this as a resume for your code.Pull requests are #FTW
  • #23 Build using the “C” language
  • #24 Virtualization on your laptopAllows you to run what you need as VMsVirtualBox, KVM, VMware Fusion, VMware Workstation----- Meeting Notes (12/10/13 16:32) -----Today's laptops can double as servers 8GB RAM SSD disks Multi-core CPUs
  • #25 Broad lineup of committers:Vmware/Nicira, Cisco, Red Hat, Canonical, etc.
  • #26 Security: VLAN isolation, GRE/VXLAN/LISP isolation, traffic filteringMonitoring: Netflow, sFlow, SPAN, RSPANQoS: traffic queuing and shapingAutomated Control: OpenFlow, OVSDBOverlay networks: GRE, VXLAN, LISPVirt platforms: XenServer, Xen Cloud Platform. Works with Xen, KVM, Proxmox VE, VirtualboxIaaS: OpenStack, openQRM, OpenNebula, oVirtLinux: Ubuntu, Debian, Fedora, RHEL. FreeBSD and NetBSD in developmentOpen vSwitch is built using C code
  • #28 OpenDaylight is an open community that is building:An evolvable SDN platform capable of handling diverse use cases and approaches.Common abstractions of capabilities NorthBound people can program to.Intermediation of those capabilities to multiple SouthBound implementations.Programmable Network services.Network applications.Whatever the hell else we need to make it all work. 
  • #30 Proposed Hydrogen Release Vehicles:Base EditionVirtualization EditionService Provider Edition
  • #32 Written in PythonReleases:Austin (Q1 2010)Bexar (Q3 2010)Cactus (Q1 2011)Diablo (Q3 2011)Essex (Q1 2012)Folsom (Q3 2012)Grizzly (Q1 2013)Havana (Q3 2013)
  • #33 Many many projectsGrowth has been phenomenal
  • #37 Used by the CI/CD infraEach commit is run through Tempest testsTempest tests use devstack
  • #39 Configuration managementDeployment at scaleDevOps
  • #40 ----- Meeting Notes (12/10/13 16:44) -----Hopefully not into a giant mosh pit circle like these folks.
  • #41 Infrastructure components to build with are hereApplications are what really mattersMaking application developers happy matters a ton!