This article was initially sent to my SDN mailing list. To register for SDN tips, updates, and special offers, click here.
During one of my SDN workshops one of the attendees working for a mid-sized European ISP asked me this question:
Our management tells us we should build our network like Google does, including building our own switches. Where should we start?
The only answer I could give him was “You don’t have a chance.”
Building your own network operating system is still a major undertaking. LinkedIn recently described their journey toward the first Tomahawk-based switch. It took them a year (~ 6 man-years of work) to build the prototype with the functionality they need in their network, and test it in a pilot network… and I’m positive they used standard building block (example: Quagga to run BGP).
Also consider that:
- LinkedIn applications were probably designed from the grounds-up to be well-behaved. Your networking gear might have to support all sorts of extra kludges to cope with broken application stacks;
- Unless you decide to use Broadcom’s OpenNSL API or buy your hardware from a vendor that ships their boxes with Linux device drivers, you’ll have to deal with Broadcom’s NDA procedures, so you’ll have to be big enough to matter to them.
With all this in mind, do the ROI calculations, and don’t forget to include the costs of the ongoing software maintenance (either vendor support or your own team). It might turn out you’re not big enough to make it work.
But wait, that’s not all
The ISP I mentioned in the beginning might have been big enough to make the ROI arithmetic work, but I’m positive they would face another problem: lack of talent.
Building a network operating system (even when using standard components) is not trivial, and it’s hard to get engineers with the necessary experience unless you’re a Silicon Valley startup or one of the popular big guys.
Starting from scratch and growing your own talent sounds like a feasible Plan-B, but unfortunately people considering this approach usually underestimate the complexities of the project. I know companies that wasted years trying to build their own OpenStack-based public clouds from the OpenStack sources instead of using a commercially-supported distribution… and likewise you might be better off buying Cumulus Linux licenses (or another commercial alternative) and slowly building your competence while already running a production network.
I'd like to hear from you!
Disagree? Please write a comment! Want to hear what I think about your SDN deployment plans? I’m usually available for short online consulting.
Want to know more about SDN? Watch the SDN and network automation webinars on ipSpace.net – if you're serious about advancing your career I’m positive you already have the subscription that gives you full access to all of them.