OpenStack Networking (Neutron)
Developing and delivering commercial
solution for load balancing as a service
Samuel Bercovici
Director PM, Automation & Cloud Integration
Radware involvement in OpenStack Introduction of Drivers in Havana Why would you want to have an open source driver? How to get your code to be incorporated in open stack? Q&A
Radware Involvement with OpenStack
• Radware Joined OpenStack on Dec 2011
• Planning of LBaaS for Grizzly and Havana
• Contributor to the Networking/LBaaS project – Havana -
http://www.stackalytics.com/?release=havana&metric=commits&project_type=all&module=&company=radware&user_id=
– Icehouse - http://www.stackalytics.com/?release=icehouse&metric=commits&project_type=all&module=&company=radware&user_id=
The Radware LBaaS driver is available in Icehouse trunk!
Slide 3
Radware involvement in OpenStack Introduction of Drivers in Havana Why would you want to have an open source driver? How to get your code to be incorporated in open stack? Q&A
Before Havana
• To implement L2-L3 functionality you had to implement a Neutron
Plugin.
– Multiple plug-in with similar code duplicated (ex: OVS, linux-bridge)
– You could use one Plugin. No support for multi-vendor solutions at the
same time
• To implement an extension you had to use “mix in” and the actual
implementation occurred in the extension code.
– DHCP
– L3 Router
– LBaaS – HA Proxy only
Havana “Driver” Mechanism
• Modular Layer 2 (ML2) Plugin
– Driver Mechanism
• Type Drivers – Flat, Local, VLAN, GRE, VxLan
• Mechanism Drivers – OVS, linux-bridge, Hyper-V. Vendor Specific: Arista, Cisco Nexus, Tail-f NCS
• LBaaS extension
– Driver Mechanism – HA Proxy. Vendor Specific: Radware
– For Icehouse - Embrane, LVS, etc.
• VPNaaS extension
– OpenSWAN
• FWaaS extension
– IP Tables
Neutron Server
LBaaS
OpenStack Havana LBaaS - Architecture
Slide 7
Framework
Vendor based Radware Driver HA Proxy Driver
Network Node
HA Proxy Driver Agent
HA Proxy Process
HA Proxy Process
Radware involvement in OpenStack Introduction of Drivers in Havana Why would you want to have an open source driver? How to get your code to be incorporated in open stack? Q&A
Benefits of Open Source Driver
• Your customer cares!
• Better quality
– Driver is tested with everything else
– Code is reviewed by the community
– Features that break your code are detected early
– Other people fix your driver
– 3rd Party testing
• Best compliance
– Driver is always in compliance to trunk
• Community spirit - You are giving and not just taking
– You must contribute to the effort to get accepted (Code, QA, Documentation, Review)
Radware involvement in OpenStack Introduction of Drivers in Havana Why would you want to have an open source driver? How to get your code to be incorporated in OpenStack? Q&A
What’s documented
• How to join (CLA, etc.)
• How to start coding (Low hanging bugs)
• How to test
• How to program in Python
What we learned as we went along
• Be prepared for a slow start
• The 1st contribution to neutron had 8 lines of code and 16
lines of tests – 1st Patch set was committed on 4th Dec 2012
– 11th and last Patch set was approved for trunk on 2nd Jan 2013
• The next contributions went much faster
Slide 12
• Its about the process
– Understand the process
– Master the tools
– Python is not just a programming language, you need to be pythonic
• PEP8 on steroids - FLAKE8
• Many developers do not use debuggers
What we learned as we went along
Slide 13
Review BUG Report
Blue Print Coding Review Trunk Back port
Review Launchpad
Launchpad FLAKE8,GIT, Gerrit Review GIT Back port
What we learned as we went along
• Its about the people and community – It’s a developers culture – put your developers at the front
– IRC – Main communication channel
• #openstack-dev
• #openstack-infra
• IRC meetings - #openstack-meeting
– OpenStack Mailing List (ML) – Secondary communication channel
– Balance community work with vendor specific work (Code, Bugs, Code Review)
– OpenStack Summit
Slide 14
What we learned as we went along
• Its about quality and testability
– Unit Tests are mandatory
• Tests validate contract and behavior
• You want to detect when your code gets broken
• Other people want to know if they broke your code
– 3rd Party testing
• Be prepared to have a system that can be triggered from gerrit and test
path-sets including your product end-to-end
• Starting icehouse-2, you can’t have vendor’s code without 3rd party
testing
Slide 15
Radware involvement in OpenStack Introduction of Drivers in Havana Why would you want to have an open source driver? How to get your code to be incorporated in OpenStack? Q&A
Thank You www.radware.com