The OpenDaylight project put out a new element this week with their Helium release. The second release is usually the most important, as it shows that you have a real project on your hands and not just a bunch of people coding in the back room to no avail. Not that something like that was going to happen to ODL. The group of people involved in the project have the force of will to change the networking world.
Helium is already having an effect on the market. Brocade announced their Vyatta Controller last week, which is based on Helium code. Here’s a handy video as well. The other thing that Helium has brought forth is the ongoing debate about network policy. And I think that little gem is going to have more weight in the long run than anything else.
The Best Policy
Helium contains group-based policies for making groups of network objects talk to each other. It’s a crucial step to bring ODL from an engineering hobby project to a full-fledged product that can be installed by someone that isn’t a code wizard. That’s because most of the rest of the world, including IT people, don’t speak in specific terms with devices. They have an idea of what needs to be done and they rely on the devices to implement that idea.
Think about a firewall. When is the last time you wrote a firewall rule by hand? Unless you are a CLI masochist, you use the GUI to craft a policy that says something like “prevent DNS queries from any device that isn’t a DNS server (referenced by this DNS Server object list)”. We create those kinds of policies because we can’t account for every new server appearing on the network that wants to make a DNS query. We block the ones that don’t need to be doing it, and we modify the DNS Server object list to add new servers when needed.
Yet, in networking we’re still playing with access lists and VLAN databases. We must manually propagate this information throughout the network when updates occur. Because no one relies on VTP to add and prune information in the network. The tools we’ve been using to do this work are archaic and failure-prone at best.
The inclusion of policy components of Helium will go a long way to paving the road for more of the same in future releases. Of course, there is already talk about Cisco’s OpFlex and how it didn’t make the cut for Helium despite being one of the most dense pieces of code proposed for ODL. It’s good that Cisco and ODL both realized that putting out code that wasn’t ready was only going to hurt in the long run. When you’ve had seven or eight major releases, you can lay an egg with a poorly implemented feature and it won’t be the end of the world. But if you put out a stinker in the second release, you may not make it to the third.
But this isn’t about OpFlex. Or Congress. Or any other policy language that might be proposed for ODL in the future. It’s about making sure that ODL is a policy-driven controller infrastructure. Markus Nispel of Extreme talked about SDN at Wireless Field Day 7. In that presentation, he said that he thinks the industry will standardize on ODL as the northbound interface in the network. For those not familiar, the northbound interface is the one that is user-facing. We interact with the northbound controller interface while the southbound controller interface programs the devices.
ODL is making sure the southbound interface is OpenFlow. What they need to do now is ensure the northbound interface can speak policy to the users configuring it. We’ve all heard the rhetoric of “network engineers need to learn coding” or “non-programmers will be out of a job soon”. But the harsher reality is that while network programmers are going to be very busy people on the backend, the day-to-day operations of the network will be handled by different teams. Those teams don’t speak IOS, Junos, or OpenFlow. They think in policy-based thoughts.
Ops teams don’t want to know how something is going to work when implemented. They don’t want to spend hours troubleshooting why a VLAN didn’t populate only to find they typoed the number. They want to plug information into a policy and let the controller do the rest. That’s what Helium has started and what ODL represents. An interface into the network for mortal Ops teams. A way to make that work for everyone, whether it be an OpFlex interface into Cisco APIC programming ACI or a Congress interface to an NSX layer. If you are a the standard controller, you need to talk to everyone no matter their language.
ODL is going to be the controller in SDN. There is too much behind it to let it fail. Vendors are going to adopt it as their base standard for SDN. They may add bells and whistles but it will still be ODL underneath. That means that ODL needs to set the standard for network interaction. And that means policy. Network engineers complain about fragility in networking and how it’s hard to do and in the very same breath say they don’t want the CLI to go away. What they need to say is that policy gives everyone the flexibility to create robust, fault-tolerant configurations with a minimum of effort while still allowing for other interface options, like CLI and API. If you are the standard, you can’t play favorites. Policy is going to be the future of networking interfaces. If you don’t believe that, you’ll find yourself quickly crushed under the weight of reality.
Pingback: The Atomic Weight of Policy
ODL is not “making sure the southbound interface is Openflow”. There’s plugin2oc, providing RFC4797 southbound interface, OpenDOVE is on the way and there will be more options. That’s the beauty of ODL, it’s abstracting the underlying technology, presenting agnostic interfaces to the user.
Talking about interfaces, there’s a CLI in ODL, for the “CLI masochists” among us. That’s another place where ODL tries to be agnostic. Each has it’s merits, CLI (fast) and GUI (easy).
Pingback: Rome Wasn’t Software Defined In A Day | The Networking Nerd