I’ve been thinking a bit more about the Cisco ACI vs. VMware NSX debate. It brings about a larger question. It’s not just ACI vs. NSX but Application Specific Integrated Circuits (ASIC). When I started programing back in high school I had this theory about x86 hardware. There was never such a thing as under powered hardware it was always an issue of poor or uncreative programing.
As a teenage programmer, I had a state of the art Tandy 1000 with a 7Mhz processor. I got into writing animation software on the system. Before I understood what dedicated graphics cards were all about, I would chalk the under performance of my programs to my bad programming. I always found ways to increase the performance of my applications. If the GW BASIC compiler created too much overhead then I learned to write straight to the memory registers. I never blamed the hardware for application performance. I didn’t understand why you couldn’t over come the limitation of the hardware with better software.
I also, never understood why console games were better at any stage than PC games. If you had blazing fast x86 hardware then you can just needed to be a bit creative in programming. Then I grew up and became a network engineer. I learned quickly that an ASIC could perform a dedicated operation much faster than a general-purpose piece of compute hardware. ASIC are efficient at a designed set of tasks. So, that’s why I couldn’t just use my Novell 3.11 server as a router for an entire network segment in 1998.
The main disadvantage to ASICs is that they can’t be easily upgraded to add additional capability. I couldn’t take my dual port Cisco 2600 router and add deep packet inspection. At least it wouldn’t be as good as my Novell 3.11 server at that specific task. I’d have to buy a new router to gain the additional functionality at an acceptable performance level.
This is basically the argument of Cisco ACI vs. VMware NSX. Cisco’s consistent argument is that networking even if it’s virtualized is a very specific set of tasks therefore; the ASIC approach is always better than the software approach. VMware’s argument is that software is much more flexible and allows you to do more. Additionally, VMware’s argument is that just like x86 virtualization, x86 virtual networking is good enough for almost any use case. In other words fast is fast enough. VMware’s argument is partially that ASICs aren’t that much faster or at least not so much so that you’d sacrifice the flexibility. VMware’s other argument is that they can partner with dedicated hardware providers to achieve the performance needed for most use cases.
Well, now you’ve seen my bias. I’m a big believer in software but that doesn’t mean I’m convinced that VMware’s NSX is the way to go for network virtualization. Once Cisco gets their solution off the whiteboard and into the hands of real customers we can begin the real debate.