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

Next Generation Network Developer Skills

  • Upload
    mestery

  • View
    115

  • Download
    2

Embed Size (px)

DESCRIPTION

A talk I gave at the Cisco Partner DC-SEVT around what skills Network Engineers need as the world moves to SDN, DevOps, and CI/CD.

Citation preview

Page 1: Next Generation Network Developer Skills

S

Next Generation Network Developer Skills

Kyle MesteryPrincipal Engineer, Office of the Cloud CTO, Cisco

Page 2: Next Generation Network Developer Skills

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

Page 3: Next Generation Network Developer Skills
Page 4: Next Generation Network Developer Skills

The Frontier of Networking

Existing

CLIs

Closed Source

Vendor Lead

Classic Network Appliances

New

APIs

Open Source

Customer Lead

Network Function Virtualization (NFV)

Page 5: Next Generation Network Developer Skills

Components of the New Frontier

Page 6: Next Generation Network Developer Skills

All of This Leads Us To …

Software Defined Networking

DevOps Defined Networking

DevOps

Page 7: Next Generation Network Developer Skills

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

Page 8: Next Generation Network Developer Skills

Arming Yourself To Explore This New Frontier

Transformation of Network Engineer

1. Programming skills

2. Tools

3. Getting your hands dirty

Page 9: Next Generation Network Developer Skills

From Engineer to Developer

Page 10: Next Generation Network Developer Skills

S

Programming Skills

Page 11: Next Generation Network Developer 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

Page 12: Next Generation Network Developer Skills

It’s All About the Apps

Page 13: Next Generation Network Developer Skills

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/

Page 14: Next Generation Network Developer Skills

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++

Page 15: Next Generation Network Developer Skills

What Languages To Learn

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

Page 16: Next Generation Network Developer Skills

S

Tools of the Trade

Page 17: Next Generation Network Developer Skills

IRC (Internet Relay Chat)

Open Source projects all use IRC

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

Page 18: Next Generation Network Developer Skills

Mailing Lists

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

archives Allows searching for new

participants

Page 19: Next Generation Network Developer Skills

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/

Page 20: Next Generation Network Developer Skills

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!

Page 21: Next Generation Network Developer Skills

S

Getting your hands dirty

Page 22: Next Generation Network Developer Skills

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

Page 23: Next Generation Network Developer Skills

Datacenter On Your Laptop

Page 24: Next Generation Network Developer Skills

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

Page 25: Next Generation Network Developer Skills

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

Page 26: Next Generation Network Developer Skills

Sample Open vSwitch Commands

Page 27: Next Generation Network Developer Skills

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.

Page 28: Next Generation Network Developer Skills

OpenDaylight Project Framework

Page 29: Next Generation Network Developer Skills

OpenDaylight “Hydrogen” Release

Page 30: Next Generation Network Developer Skills

OpenDaylight GUI

Page 31: Next Generation Network Developer Skills

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.

Page 32: Next Generation Network Developer Skills

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

Page 33: Next Generation Network Developer Skills

OpenStack CLI: Boot a VM

Page 34: Next Generation Network Developer Skills

OpenStack CLI: List VMs

Page 35: Next Generation Network Developer Skills

OpenStack Horizon GUI

Page 36: Next Generation Network Developer Skills

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.

Page 37: Next Generation Network Developer Skills

devstack: local.conf example

Page 38: Next Generation Network Developer Skills

Puppet, Chef, Ansible, Salt

Page 39: Next Generation Network Developer Skills

Where Does This Lead Us?

Page 40: Next Generation Network Developer Skills

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

Page 42: Next Generation Network Developer Skills

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/

Page 43: Next Generation Network Developer Skills