This blog post was written almost two years ago (and sat half-forgotten in a Word file somewhere in my Dropbox), but as it seems not much has changed in the meantime, it’s time to publish it anyway.
I was listening to the fantastic SDN Trinity podcast while biking around Slovenian hills and almost fell off the bike while furiously nodding to a statement along the lines of “I hate how every SDN vendor loves to bash networking engineers.”
There’s a pretty good reason for that behavior: the vendors know they wouldn’t be able to sell their latest concoctions to people who actually understand how networking works and why some architectures have no chance of ever working in real life (see also RFC 1925 section 2.11). The only way to sell the warez is to try to convince everyone else how to get rid of the pesky ossified CLI jockeys (here’s a more nuanced view).
To be honest, we tend to be somewhat cautious (the storage engineers are no better), but the real reasons for the morass we’re dealing with today lies somewhere else: the application development and deployment process are often totally broken, and so the problems get pushed down the stack and increase the complexity of the lower layers.