Courtesy - Dave Trucker
My recommendation was basically for Networkers to be open to change, and to start broadening their horizons. DevOps is coming to networking and that is a FACT. You might be wondering what skills a Network DevOps Engineer needs and here I attempt to answer that.
It's still about NETWORKING
I'm going to state this upfront here. You need to be good at Networking for any of the other skills here to be useful. Continue along vendor certification tracks, follow the IETF, join NANOG, experiment with new technologies. This is all invaluable.
Software Engineering Fundamentals
A lot of the DevOps skills have roots in Software Engineering. Being a Network Guy ™ this may seem like a little bit of a paradigm shift but here's something cool. Would you believe that some of these software engineering concepts have more to do with engineering best practice than with software, and are in fact relevant to the work you are doing today? Also, your SysAdmin buddies already know this and started their DevOps pilgrimage a while ago.
Unit/Functional/Integration Testing, Version Control, Agile, Test-Driven Development (TDD) and Behaviour Driven Development (BDD) are all things that you could benefit from today.
Fortunately, there is an easy way to pick these skills up. The folks over at Software Carpentry have put together a set of Tutorials to help research scientists get to grips with Python and supporting tools. The Lessons are put together in such a way that they are easy to understand for mere mortals (unlike a lot of CS textbooks/lectures)
Know your *nix
An understanding of Linux is going to stand you in good stead in the transition from NetOps to DevOps. As much as people like to talk about "Death of the CLI" they don't realise how much time Developers and SysAdmins spend in the Terminal. Whether this be checking in code with git, extracting information from Open vSwitch or using the OpenStack CLI clients you will likely spend a lot of time in the terminal too. Learning how to be productive here is essential and a good understanding of Linux will help when troubleshooting complex issues.
LPIC
There are vendor neutral *nix certifications which are worth a look like LPIC-1. While I haven't gone through this myself, I have read some LPIC study materials and found this infinitely useful. If you want a vendor certification, Red Hat have certifications available too.
Have some fun
Learning Linux doesn't have to be boring. I prefer a more practical approach so you may find attempting one of the following a nice project to hone your Linux-Fu:
Learn some Python
I'm biased towards Python, but I feel it's the most approachable Programming Language for Network Engineers to pick up.
You don't need to know Python much to start getting real value. Think of how many things you could automate! People joke about automation not saving time (as it takes time to automate) but during that time you are getting a better understanding of Python, so it's not a total loss. Whether it's your weekly report, Mining the Social Web or something more Network-centric, undertaking a Python project will be really worthwhile... and if you can, host the result up on GitHub.
There are hundreds of good tutorials online, but if you are just getting stated I would recommend CodeAcademy.
Get your head around "Infrastructure as Code"
"Infrastructure as Code" is the battle cry of DevOps. To really understand what this is about and to get a handle on the what/why/how for Networking I'd recommend that you spend some time with:
Run through the tutorials, boostrap a server with Chef, use Puppet to deploy a LAMP server and if you are feeling brave, write a Chef Cookbook/Puppet Manifest. I couldn't mention this and not mention the awesome working being done on the Netdev library for Puppet and Chef.
What about some SDN?
You could take a course on Coursera, but why not get some practical experience? Download OpenDaylight and follow one of Brent Salisbury's awesome tutorials. You can simulate massive networks using Mininet and have some fun pushing paths using the REST API or experimenting with OpenStack integration. The nice thing about the OpenStack integration piece is that this requires you to get DevStack working, which is not easy, and it gives you some OpenStack experience.
Conclusion
Looking in to my crystal ball, I would predict that the Network DevOps engineer will need:
Appendix A: Relevent Open Source Projects
Appendix B: Tools of the Trade
Appendix C: Further Reading
Kyle Mestery (@mestery) pointed me to a great slide deck that show his thoughts on this topic. This is definately worth a look!
My recommendation was basically for Networkers to be open to change, and to start broadening their horizons. DevOps is coming to networking and that is a FACT. You might be wondering what skills a Network DevOps Engineer needs and here I attempt to answer that.
It's still about NETWORKING
I'm going to state this upfront here. You need to be good at Networking for any of the other skills here to be useful. Continue along vendor certification tracks, follow the IETF, join NANOG, experiment with new technologies. This is all invaluable.
Software Engineering Fundamentals
A lot of the DevOps skills have roots in Software Engineering. Being a Network Guy ™ this may seem like a little bit of a paradigm shift but here's something cool. Would you believe that some of these software engineering concepts have more to do with engineering best practice than with software, and are in fact relevant to the work you are doing today? Also, your SysAdmin buddies already know this and started their DevOps pilgrimage a while ago.
Unit/Functional/Integration Testing, Version Control, Agile, Test-Driven Development (TDD) and Behaviour Driven Development (BDD) are all things that you could benefit from today.
Fortunately, there is an easy way to pick these skills up. The folks over at Software Carpentry have put together a set of Tutorials to help research scientists get to grips with Python and supporting tools. The Lessons are put together in such a way that they are easy to understand for mere mortals (unlike a lot of CS textbooks/lectures)
Know your *nix
An understanding of Linux is going to stand you in good stead in the transition from NetOps to DevOps. As much as people like to talk about "Death of the CLI" they don't realise how much time Developers and SysAdmins spend in the Terminal. Whether this be checking in code with git, extracting information from Open vSwitch or using the OpenStack CLI clients you will likely spend a lot of time in the terminal too. Learning how to be productive here is essential and a good understanding of Linux will help when troubleshooting complex issues.
LPIC
There are vendor neutral *nix certifications which are worth a look like LPIC-1. While I haven't gone through this myself, I have read some LPIC study materials and found this infinitely useful. If you want a vendor certification, Red Hat have certifications available too.
Have some fun
Learning Linux doesn't have to be boring. I prefer a more practical approach so you may find attempting one of the following a nice project to hone your Linux-Fu:
- Install Arch Linux
- Replace your ESXi Lab with KVM, Libvirt and Open vSwitch
- Write command aliases to save yourself some typing
- Learn vim, and make yourself a .vimrc
Learn some Python
I'm biased towards Python, but I feel it's the most approachable Programming Language for Network Engineers to pick up.
- It has an "Interactive Interpreter" which is a lot like a CLI and let's you enter statements to see what happens
- It can be used to basic scripting or beautifully designed object-oriented software but it doesn't force you to do things one way or another.
- There is a rich ecosystem of libraries that simplify doing everyday tasks
- It's being embedded in Network Devices AND network vendors are providing Python libraries for their software.
You don't need to know Python much to start getting real value. Think of how many things you could automate! People joke about automation not saving time (as it takes time to automate) but during that time you are getting a better understanding of Python, so it's not a total loss. Whether it's your weekly report, Mining the Social Web or something more Network-centric, undertaking a Python project will be really worthwhile... and if you can, host the result up on GitHub.
There are hundreds of good tutorials online, but if you are just getting stated I would recommend CodeAcademy.
Get your head around "Infrastructure as Code"
"Infrastructure as Code" is the battle cry of DevOps. To really understand what this is about and to get a handle on the what/why/how for Networking I'd recommend that you spend some time with:
Run through the tutorials, boostrap a server with Chef, use Puppet to deploy a LAMP server and if you are feeling brave, write a Chef Cookbook/Puppet Manifest. I couldn't mention this and not mention the awesome working being done on the Netdev library for Puppet and Chef.
What about some SDN?
You could take a course on Coursera, but why not get some practical experience? Download OpenDaylight and follow one of Brent Salisbury's awesome tutorials. You can simulate massive networks using Mininet and have some fun pushing paths using the REST API or experimenting with OpenStack integration. The nice thing about the OpenStack integration piece is that this requires you to get DevStack working, which is not easy, and it gives you some OpenStack experience.
Conclusion
Looking in to my crystal ball, I would predict that the Network DevOps engineer will need:
- Strong Networking Skills
- Knowledge of Linux System Administration
- Experience with Puppet/Chef/Ansible/CFEngine/SaltStack would be desirable
- Scripting skills in Bash, PHP, Ruby or Python
- Ability to work under Source Control (git)
- Experience in consuming (REST) APIs
- Experience with OpenStack and OpenStack Networking
- Appreciation of Software Defined Networking (SDN)
- Knowledge of Agile Methodologies
- Knowledge of Test-Driven Development
- Ability to write Unit and Integration Tests
Appendix A: Relevent Open Source Projects
Appendix B: Tools of the Trade
Appendix C: Further Reading
Kyle Mestery (@mestery) pointed me to a great slide deck that show his thoughts on this topic. This is definately worth a look!
Good efforts!!!
ReplyDeleteHey did you hear about Chef Fundamentals Training ? ITS announces the public batch for Devops- Chef Fundamentals training in gurgaon from 12th to 14th June 2015.
Devops is an operational viewpoint that progresses better communication amid development and functions. This is great blog on Devops programming language.
ReplyDeleteNice information about devops tutorials. thanks a lot shared valuable information. Really helpful for me. keep sharing on updated devops tutorials............
ReplyDeleteThanks for sharing the very useful info about DevOps and please keep updating........
ReplyDeleteIntellipaat turned to be one of the best training provider among all and very comprehensive and affordable prices are available.
ReplyDeleteThanks for sharing very useful information Devops Online Training
ReplyDeleteIt Was Nice Post,thank you..Devops Training In Hyderabad!
ReplyDeleteDevops Training In Ameerpet!
Devops Certification In Hyderabad!
Thanks for Sharing this.
ReplyDeleteIf you are searching more information on Find so visit App Development Classes in Hyderabad
Nice concept shared for Devops Training in Hyderabad
ReplyDeleteThis is an best post. It is Really very informative concept.I like it and help me to development very well.Thanks alot for this brief explanation and very nice information.Devops Training In Hyderabad
ReplyDeleteThanks for sharing the blog i love to read it.
ReplyDeleteDiscover best coaching institutes in india
Nice Article Thanks for sharing this. It has very important content for beginners. Please keep sharing like these posts with us; I am very glad to read your post.
ReplyDeletebrand promotion companies in jaipur
Nicepost, Really nice topic post about the DevOps.
ReplyDeleteDevOps Training in Hyderabad
Your blog post is really important and useful to growth a websites. Thanks for sharing
ReplyDeleteRegistered massage therapist
Digital Lync offers one of the best Online Courses Hyderabad with a comprehensive course curriculum with Continuous Integration, Delivery, and Testing. Elevate your practical knowledge with quizzes, assignments, Competitions, and Hackathons to give a boost to your confidence with our hands-on Full Stack Training. An advantage of the online Cources development course in Hyderabad from Digital Lync is to get industry-ready with Career Guidance and Interview preparation.
ReplyDeleteDevOps Training Institute
Python Training Institute
AWS Training Institute
Online Full Stack Developer Course Hyderabad
Python Course Hyderabad
Online AWS Training Course Hyderabad
devops training in hyderabad
angular training in hyderabad
Hi I found your site by mistake when i was searching yahoo for this acne issue, I must say your site is really helpful I also love the design, its amazing!. I don’t have the time at the moment to fully read your site but I have bookmarked it and also add your RSS feeds. I will be back in a day or two. thanks for a great site.
ReplyDeleteDevOps Training
Hi, I have just started to Learn DevOps Online. and this blog is really informative for me. Thank you for this blog!
ReplyDeletevery well written.
ReplyDeleteDevOps training in Pune
Thanks for sharing informative blogsdevops course in jaipur
ReplyDeleteThis comment has been removed by the author.
ReplyDelete