OpenDaylight Developer Spotlight: Anees Shaikh

OpenDaylight is an active community of developers who are passionate about transforming networking. This blog series highlights the people who are collaborating to create the future of SDN and NFV.

Anees Shaikh is a Network Architect at Google. Prior to this Anees was the Chief SDN Architect in IBM System Networking where he coordinated IBM's software-defined networking product technical architecture and strategy. Anees was also a Research Staff Member and Manager at the IBM T.J. Watson Research Center in New York for over a decade. He most recently led a team of researchers focused on innovation in data center networks, with a focus on SDN, network virtualization, and cloud networking. Anees has published widely in the areas of networking, cloud computing, and system management.

How did you get involved with OpenDaylight? What is your background?

I'm lucky to say I got involved "at the beginning" when OpenDaylight was still an idea, and we weren't even sure if there would be industry interest in a project like this. I was fortunate to help in the formation of OpenDaylight as we recruited members, figured out the governance model and tried to set a technical roadmap for the project. My involvement started primarily with the technical workstream pre-launch, and I've tried to help keep that workstream going as OpenDaylight ramps up. I also coordinated IBM's technical contributions to OpenDaylight.

What projects are you working on for OpenDaylight? Any new developments to share?

I'm working on two main efforts in OpenDaylight: the Open DOVE network virtualization project and OpenStack enablement, collaborating with folks like Kyle Mestery, Madhu Venugopal and Ryan Moats on the latter. I've been focused more on architectural and consumability aspects. Both projects were included in the Hydrogen release.

People have different definitions for SDN depending on how they’re using the network. What’s your definition of SDN?

There are indeed a lot of definitions of SDN related to specific use cases like network virtualization, traffic steering or automated network configuration. But I think there are some common attributes like well-defined programming APIs for applications to define network behavior, or get information from the network, a controller-based architecture that creates and manages a global view of the the network state, and an ability to tailor the view, or abstraction, of the network based on application needs. I think we are just starting to come up with some simple examples of network APIs and abstractions but there is a lot of work still to do. For me, the most exciting work in SDN is around the problem of defining and implementing useful network abstractions for applications.

What is the relationship of Network Functions Virtualization (NFV) to SDN and how do you see them working together?

I find it very interesting that SDN and NFV are so often lumped together, especially by industry press, who sometimes use the concepts interchangeably. In my view, SDN and NFV are entirely separable, though they can be complementary. NFV is basically commodity server virtualization and consolidation that has been happening in the data center, applied to telco service provider networks, where application workloads are now primarily traffic management and analysis functions. Just as SDN provides network agility and automation for the virtualized data center, it can offer the same benefits for NFV to support rapid provisioning, easier scaling and dynamic network configuration.

What advice would you give to someone just getting started in an open source project?

The "open" nature of open source is often a little daunting for people new to it, in particular dealing with the fact that your code is out there for everyone to see, review and pass judgement on. My advice would be to not let that stop you from publishing your code early and often, wrinkles and all. In OpenDaylight at least, the community is very supportive and always offers constructive suggestions to improve code or fix issues.