Too much to write here, wrote on this topic a couple months ago. I know el reg doesn't like links to other sites but I can't duplicate the writing here with images etc..
basically sdn is a crock of shit. I see it useful for the hyper scale players out there, but the number of organizations where SDN will be really useful is quite limited. Network vendors haven't gotten the attention that the storage and server virtualization folks have gotten over the years. Networking is viewed as boring, it's basically a utility -- how often do you see people getting excited about a new UPS or power strip..? There have been some interesting things happening at layer 7 over the past decade but that's layer 7.
So networking companies have over hyped this SDN concept to hell and back to try to make things sound exciting again. A few years ago it was FCoE (and DCB/DCE) -- obviously that flopped!
Now it's SDN..
When in reality -- the people that really need this stuff (and I admit there are customers that do) -- already know about it. In a lot of cases I bet (Google, Amazon etc) already have a been doing a sort of SDN long before it was formalized as a term, because they got to that scale where they had to do something.
But in the link above I address more directly the flaws I find in the hype of SDN in general and how it's really just that - hype.
I did not feel comfortable attacking SDN dead on before recently because until recently I could not get an informed opinion of WHAT THE HELL SDN IS. I had the opportunity to ask the question to the inventor of SDN himself personally, which confirmed all my original thoughts and expectations and allowed me to write a good blog post on the topic.
I feel sorry for the networking companies I really do. I do wish they would spend more time on ease of use rather than adding ever more complexity. I was quite disappointed when I learned a few years back that TRILL was a layer 2 only protocol (I fully expected it to have a layer 3 component, because you know, we do this thing called ROUTING now and need redundant routers). I've really liked the protocol ESRP from Extreme which combines layer 2+3 (you can also do layer 2 OR layer 3). And Extreme in general has stuff that is easy to use, with a config language that more or less reads like english (configure vlan my_vlan add ports 1,2,3 etc).
But I suppose day to day ease of use is not flashy, not a catchy thing because you can just hire yourself an expensive network engineer and/or enroll in some complex training classes to learn how to use the equipment.
Look how easy (for the most part) modern storage is today(certainly are exceptions), or modern server virtualization. Most any idiot can fire up a vmware system and build a cluster and create vms with a few mouse clicks. sometimes that causes problems, but it's still easy to use.
Now some things in networking can be complex still, take routing protocols and stuff like that, that's fine. But basic L2 and L3 stuff should be dead simple easy to understand and build.
Perhaps in 3-5 years, maybe more, SDN will be integrated to the point where it's in a similar state. I don't know. If that's the case it's sad it took the industry 10-15+ years to get to a state of ease of use.
I have no doubt a decent part of the problem is the network admins themselves who pride themselves with their advanced certification and training courses on the overly complicated network equipment and they consistently over design things and just make life in general more complicated.