OpenDaylight Developer Spotlight: Kyle Mestery
OpenDaylight is an open source project and open to all. Developers can contribute at the individual level just like any other open source project. This blog series highlights the people who are collaborating to create the future of SDN and NFV.
Kyle is a Principal Engineer and Chief OpenStack Architect in the Office of the Cloud CTO at Cisco. He works primarily on open source projects including OpenStack, Open vSwitch, OpenDaylight and libvirt. He is a core team member of the OpenStack Neutron project and the founder of the Minnesota OpenStack Meetup. Kyle has been writing systems software for more than 15 years. Kyle lives with his wife and family in Minnesota. Twitter: @mestery
How did you get involved with OpenDaylight? What is your background?
I've been working on upstream open source projects for the last three years at Cisco. Cisco was involved at the start of OpenDaylight, contributing some of the early code. Very early in the OpenDaylight project I got involved to ensure OpenDaylight would work well with OpenStack Neutron. OpenStack Neutron is a natural integration point for OpenDaylight, as the requirements for virtual tenant networks (VTN) match perfectly to the capabilities provided by OpenDaylight. So my involvement to date has been to bridge the two projects while working on the plugin integration on the Neutron side.
What project are you working on for OpenDaylight? Any new developments to share?
I've been involved with the Open vSwitch Database Management (OVSDB) project since the beginning. This is a critical piece of code for OpenDaylight to have for the OpenStack Neutron integration for a couple of reasons. It will remove the need for an agent on the host. Combining OVSDB with OpenFlow support will allow OpenDaylight to not only program flows on hosts with Open vSwitch but also orchestrate the creation of bridges on ports on the host. All of this means Neutron no longer needs to have anything running on the host and can rely on OpenDaylight for flow programming, bridge creation and tunnel port creation.
What is the relationship of Network Functions Virtualization (NFV) to SDN and how do you see them working together?
Network Functions Virtualization (NFV) is basically a way of taking existing network functions (think firewalls, load balancers, VPNs) and moving them out of network hardware and into virtual machines. This allows the services to be elastic, scalable and deployable on-demand. When you couple running these on an Infrastructure as a Service (IaaS) platform, you can also take advantage of things such as live migration. It's logical to assume these could be orchestrated and controlled by an SDN controller such as OpenDaylight. Some of the most basic NFV functions could be implemented outside of the scope of a virtual machine, which is really interesting when you think about it. Implementing a firewall using flow programming from an SDN controller, for example. Thus, NFV and SDN have a cohesive relationship where one enables the other.
From your perspective, what are the major benefits of making OpenDaylight an open source project?
There are quite a few benefits in making this decision; I'll highlight a few of them from my perspective here. The main benefit is the open collaboration model an open source project allows. I think we've already seen this in OpenDaylight, but the pace of innovation happens very fast when you provide people the tools they need and a community to innovate with. Closed source only allows for innovation behind closed doors by nature. An open innovation model broadens the pool of people who are capable of adding value to the technology you're building and allows for aggregating the building blocks of the project such as a website, mailing lists, bug tracking, etc. A benefit related to this is the fact everything about OpenDaylight is open by virtue of the project being an open source project. There are weekly meetings open to all, communication on the mailing lists is open and the IRC channels are wide open for anyone to jump on and participate.
What advice would you give to someone just getting started in OpenDaylight?
My best advice would be to get involved and let things soak in. Most open source projects have multiple methods of communication: mailing lists, wiki pages, IRC channels. Jump in and make sure you join all the ways the project communicates. Ask questions on the mailing list as well as IRC. Sometimes the information for new developers isn't clear, and an excellent way you can contribute early is by figuring out where the gaps are in the new developer onboarding process and help to fix those. This way you're contributing early to the project and making it easier for the next, new developers to join the project and contribute.