next generation network developer skills
Post on 27-Jan-2015
112 Views
Preview:
DESCRIPTION
TRANSCRIPT
S
Next Generation Network Developer Skills
Kyle MesteryPrincipal Engineer, Office of the Cloud CTO, Cisco
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
CLIs
Closed Source
Vendor Lead
Classic Network Appliances
New
APIs
Open Source
Customer Lead
Network Function Virtualization (NFV)
Components of the New Frontier
All of This Leads Us To …
Software Defined Networking
DevOps Defined Networking
DevOps
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
S
Programming Skills
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
Focus on languages for the APIs you are using Java Python Maybe C and/or C++
S
Tools of the Trade
IRC (Internet Relay Chat)
Open Source projects all use IRC
Recommended channels in Open Source networking: #openstack-neutron #opendaylight #opendaylight-ovsdb #openvswitch
Mailing Lists
Open Source projects all use mailing lists for communication Documents things in the
archives Allows searching for new
participants
git
Source code management tool of choice github is used to share
code Most projects use github If github is not used, the
projects likely have their own git server
Get a github ID https://github.com/
Wikis
All Open Source projects have Wikis
Provide an easy way to share information Warning: Information can
get stale Warning: Humans don’t like
correcting stale information
An easy way for new contributors to help is to update wikis!
S
Getting your hands dirty
Linux
The kernel of choice in the Open Source world KVM or Xen for virtualization OpenStack CloudStack
Prevalent in IaaS world Amazon AWS Rackspace
Popular Switch Operating System Cisco NX-OS Arista EOS Cumulus Linux
Datacenter On Your Laptop
Open vSwitch
Open vSwitch is an Open Source extensible virtual switch Licensed under the Apache 2.0
and GPL licenses
Supports a wide array of protocols Netflow sFlow SPAN RSPAN CLI LACP
Open vSwitch Specifics
Security
Monitoring
QoS
Automated Control
Overlay network building block
Used by many virtualization and IaaS platforms
Kernel module is upstream
Many Linux platforms supported
Sample Open vSwitch Commands
OpenDaylight
OpenDaylight’s mission is to facilitate a community-led, industry-supported 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
Compute (Nova)
Object Storage (Swift)
Image Service (Glance)
Identity (Keystone)
Dashboard (Horizon)
Networking (Neutron)
Block Storage (Cinder)
Telemetry (Ceilometer)
Orchestration (Heat)
Database Service (Trove)
Bare Metal (Ironic)
Queue Service (Marconi)
Data processing (Savanna)
Common Libraries (Oslo)
Infrastructure
Documentation
Quality Assurance (QA)
Deployment (TripleO)
Devstack (DevStack)
Release cycle management
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?
Linux (Fedora, Ubuntu, Red Hat, etc.)
Xen or KVM
OpenStack or CloudStack or Eucalyptus or oVirt
OpenDaylight
Automation
At the heart of all of this …
IaaS for the masses!
SDN for the masses!
DevOps at scale!
Applications! Yay to applications!
Building Blocks Are Here
References
VirtualBox
OpenStack
OpenDaylight
Open vSwitch
Freenode
Github
stackforge
devstack
Puppet Labs
Chef
Ansible
Saltstack
References Cont.
Brent Salisbury’s Blog: http://networkstatic.net/
Scott Lowe’s Blog: http://blog.scottlowe.org/
Kyle Mestery’s Blog: http://www.siliconloons.com/
top related