I’ve been in networking for 25 years, but up until two years ago I’d had no cause to develop coding skills, nor even any Linux skills, beyond the most rudimentary. This always bothered me a bit, and was starting to bother me more and more.
That’s because I realized a fundamental shift in how we were delivering services through automation and orchestration, was coming to networking.
How much we Networkers would have to develop such skills was not entirely clear, but when I found myself working with a client on a fully automated IaaS project, I saw an opportunity to branch out. During this particular engagement I assisted with both the selection of an SDN solution as well as a physical network solution, and then continued on into design and implementation. We selected Nuage VSP as the SDN solution and Arista Networks to provide the physical network.
The technical lead on the project was Steven Armstrong. Steve works for the client as an Automation Principal, and his incredible technical vision and determination to drive through the right change through automation, I felt, gave me a mandate to look at how I could do the same for the physical network.
I can paraphrase Steve’s approach as ‘automate all the things!’ Check out Steve’s book, DevOps for Networking, where he covers the orchestration and automation of network and security as part of a CI/CD pipeline using Nuage VSP and OpenStack.
The word ‘journey’ has been used a lot in IT, so much so that it has become a bit of a cliché, however I can think of no better word to describe my work on automation. In a journey you take one step at a time to get to your destination. With automation you start with one idea which you set as your destination and then take your first set of steps to reach it. What happens though is that you realise the set of possible destinations is greater, and more interesting, than you originally thought and now you have a bit of travelling experience to help take you to these new places. So you complete your first journey and then either retrace your steps to a fork in the road or start off on a new and exciting journey to an entirely different destination.
Of course on your journey you will have to slay a few dragons and may need a little help from friends.
My journey into automation so far can be separated into three parts:
- Using Arista Zero Touch Provisioning Server to automate switch deployment.
- Using Ansible with Arista eAPI to automate testing and configuration management.
- Using Python with Arista eAPI to automate testing of new rack deployments.
As such I have written one post for each of these three parts, which I’ll publish in a series.
There have been plenty of challenges (dragons to slay), a new set of fundamentals to learn; having no ‘?’ to use when I was not sure of the correct syntax to use, learning to think in a different way and solving some tricky problems.
There have been plenty of moments I just wanted to bang my head on the desk, or the wall, but equally plenty more moments of excitement and satisfaction. Excitement when you get things working and you realise the power of what you are doing, and the new set of skills you are learning, skills that will keep you relevant in the future of IT.
I tried to solve problems on my own wherever possible as I believe this is the best way to learn. When I couldn’t solve a problem myself I made sure I understood what the resolution was, this was most challenging with Python where the temptation is to go ‘Finally that worked!’ and move on.
One thing is for certain, I am now 100% sure of the benefits of automation and have thoroughly enjoyed the results of my labor. As network engineers we are the only ones who can truly understand the use cases for network automation and what therefore needs to be automated.
We could just turn our ideas over to someone who can code and be done with it. But why do that? You’ve needed to learn new things at other times in your career, and this is the same.
This set of posts describe my ‘journey’ so far and the benefits of automation but are also, in part, technical. I want to give networking people yet to look at automation a helping hand in starting their own journey. I do not cover all of the things I have learned in detail, but I am happy to provide more detail and answer follow up questions if I can.
I do describe things in terms of the Arista network I have designed and built, but the ZTPS, Ansible and Python principles are applicable to most technologies these days, so please keep reading. I really hope you will find this useful.