Architecturally, the OpenFlow/MidoNet contrast illustrates two ways of implementing SDN controllers: centralized (OpenFlow, Nicira) versus distributed (MidoNet). OpenFlow's control architecture resembles a client-server application model where a centralized controller (the server) manages and distributes the network state information and configuration to edge switches, hypervisors and VMs (the clients).
In contrast, MidoNet uses fully a fully distributed database (Apache Cassandra) and configuration management service (Apache Zookeeper) to maintain and share network state and configuration across every node in the network. Each MidoNet client has an automatically updated copy of the state database, which fully describes the network topology, flow table, routing rules and network policies, that effectively turns each physical VM host into an SDN controller; a situation that greatly simplifies the virtual network topology.
The obvious advantages of Midokura's approach are those that ascribe to any distributed architecture: scalable performance, fault-tolerance and resilience. But, by using commodity x86 boxes running the Quagga software router ganged together with commodity merchant silicon switches means, it's cheaper to build a MidoNet than traditional network designs. Furthermore, placing network controllers on every host offers the opportunity for tight integration between virtual network and private cloud infrastructure, something that Midokura is piloting via an OpenStack Quantum plugin and associated Nova (compute service) network drivers to expose virtual network services like every other compute and storage cloud resource to OpenStack clouds.fs
But such tight OpenStack integration is a double-edged sword because it means users of VMware or Hyper-V are out of luck. Although, as Hedlund speculates, since Microsoft's virtual networking code is somewhat less proprietary than VMware's, "in theory MidoNet could be a virtual networking solution for customers choosing to build their cloud with Microsoft." Another potential problem is host overhead, because the MidoNet client is definitely not lightweight. That said, overhead should be relatively minimal as there are more than enough CPU cycles on today's eight- to 12-core servers to go around, particularly when you balance any server performance loss against the benefits of a virtualized L3/L4 network.
2013 should be a year of turning SDN visions and trial balloon product announcements into viable product strategies and pilot projects. But look for the market to stratify as it matures, with this segmentation fueling another round of heady debate between proponents of centralized-versus-distributed controller topologies. Market maturation will also lead to a raft of higher-level SDN-based services, as Midokura's L3/L4 capabilities and Cisco's onePK network automation solutions give a tantalizing preview of the myriad ways software control can be applied to both virtual networks and physical equipment.
Kurt Marko is an IT pro with broad experience, from chip design to IT systems. He writes for Network Computing, InformationWeek and InformationWeek Reports.