Friday, December 1, 2017

Thoughts on SDN for network engineers.

TL;DR: is it useful to learn about containers, docker, kubernetes and all of these tools that will aid in the SDN for network engineers

Hey all.

So, I work for a large ISP and they are priming us network engineers to learn some Python to prepare us for SDN in the future. I've certainly learned a lot with Python, but i'm a bit overwhelmed at the moment. Here's why.

I'm a NetEng3 and our company has four engineers in the ranks of 'fellows'. I reached out to one to pick his brain, and asked him what he thought on the subject given both the industry and our company as it stands. I gave him some background on myself, and how I was going to start preparing to study for the CCIE R&S, and to see if he had any advice to share on this as well.

Here is his response verbatim:

"I think understanding routing at the CCIE level would be useful but I’m not sure the router config skill will be useful. We are moving to doing everything via sw (not just configs but also troubleshooting and analytics) so having the ability to code is critical in the network engineering space — IMO it’s a must have skill now.

We’re close to the point where we will have router state pushed real-time from the network into collectors and then into kafka. Analytics will grab the info from kafka and start reasoning over it and over time perform re-mediation. I see NE skills evolving from building configs and manual troubleshooting via show commands to writing code looking at the state published to kafka and deducing what’s wrong— or at least what doesn’t look right. So being able to write code and understand routing— eg the ability to write code to pull from kafka and correlate to other data streams and then know what the kafka data is telling us (routing expertise) — that intersection will be IMO a very important skill to be working on.

Python is a good start. I’m actually not very python savy but I have started to build tools in python this past year in order to gain experience in this space. Another important language that has legs is GO— I do much of my tool development work in GO these days.

Vmware and network admin skills are a good start— I’d try and get some experience using open stack— but don’t stop there— try and get up to speed on containers and docker and kubernetes.

Find ways where you take your existing work and incorporate the above— to both learn and get real hands on experience."

The guy is a fellow, and obviously knows his shit and has tons of knowledge to share. I'm going to take him up on his suggestions but as mentioned, I find myself overwhelmed at the moment. I know virtualization a bit (not an expert by any means), but containers, docker, kubernetes and all that stuff is completely foreign to me.

Just wanted to see what you all think and if anyone has any experience in these areas, if they could point me to some resources to get my feet wet. I'm immersing myself in it as we speak, but thought it was a good idea to get it on here as well to see other feedback.

Thanks all.



No comments:

Post a Comment