I’m lucky, my current client has me working in a so-called DevOps team, in a very progressive business unit within a large, stable enterprise. F5 Load balancers are everywhere and the ‘product’ is internet facing, I’m in my element; this is ‘my thing’. The heavy use of iRules means I get to ‘programme’ quite often too. I’m also exposed to a lot of contemporary tools like Git, Jenkins, Puppet, Ansible, Docker, KVM and OpenStack as well as old favorites like Bash scripts. No one seems keen on ‘teaching’ me anything about them but I ask questions and have time to ‘hack’. I also pay close attention to how things are done, the ‘workflow’ if you will. I consider the skills I’m picking up to be essential to staying relevant in the industry for the next 10 years or more.
The team runs a fair number of development and testing environments, all in an ‘immutable’ fashion. Any required infrastructure or application change is tested to ensure it works, added to whatever is used to build that element and then the entire environment is rebuilt from scratch. All configuration is version controlled and an environment comprising of a good number of networks, routers, servers, (micro) services and load balancers can be torn down and rebuilt in twenty minutes or so; it’s pretty amazing. It took a lot of effort, especially to integrate the network elements.
Lucky me, but I didn’t just tell you this to demonstrate how great my job is (or at least can be). Truth be told, if it wasn’t for the F5 load balancers I wouldn’t be here. There’s little requirement for network expertise and if they had their way, most would happily replace the F5’s with HAProxy. I couldn’t blame them either (for the licensing pains alone). Finally, dear reader, I’ll get to my point. In environments like this you will no longer be part of the equation, unless you decide to be.
Don’t worry, the vendors are right there with you, desperately trying to stay relevant and keep you on the pretty but decaying path that has served them (and you) well for the last two decades. Look, here’s a plugin for OpenStack, a driver for this or that, look how familiar it all is, how comfortable. Beware your warm place by the fire as the lights go out.
I can use Mirantis Fuel to spin up a 20 node OpenStack environment (storage, compute and networking) in a few clicks, no skills required. Have you seen what a total mess the networking actually looks like? Does that look like a network expert had some influence and input?* Put some containers in the mix and it gets even worse. There’s a reason SocketPlane was created and then rapidly acquired by Docker; networking is an afterthought. The people who build this software are smart enough to get the job done (make it good enough) but arrogant enough to think they know enough to do it well. The people who use this software are the same and their number is growing.
Do you know who writes the code that comprises the Linux network stack? Howabout systemd-networkd? Have you even heard of it? Whoever it is, do they work for a networking vendor or organisation, a university? Not often it seems. Do you know which vNIC will give you the best performance in VMWare? How about KVM? Should you use the REST API or Netconf over SSH? If you were given some input on some networking element of this ‘new stack’, would you be able to provide it? Not unless you decide to learn about as much of this as you can and accept it is the future. Your silo is eroding rapidly, their containers multiply and everything will become software. Only you can decide whether you are a part of that future (take part, add value and be useful), or stay in the past and suffer the consequences.
*OVN To the rescue soon I hope.