NetDevOpEd: Automation – start small, dream big
// Cumulus Networks Blog
I've seen a number of blogs and articles describing what network automation is and what it entails, and in many cases, the descriptions end up frightening people who haven't yet started down an automation path. The biggest question when starting any of these sorts of projects is the simplest: should you automate at all?
My answer to that first question (Spoiler alert: it's yes, but let me explain why) is that it depends on your network itself. For years, before I was involved with networking at the operating system level, I worked on network management and automation products. Often, I'd tell my customers that if they were happy with the status quo, then I certainly wouldn't force them down a particular path or to use a particular product. However, if you're a bit fed up with the manual steps involved in updating a device operating system or configuring a device, then you should look into automation to save yourself time and headaches. Of course, if you only have three devices and they get updated yearly, maybe don't bother. But if you believe automation will provide the solutions you're looking for, there are some first steps for automation that you should consider before you begin.
One mistake that people make when starting down the path of automation is trying to plan out a way to automate absolutely everything: all devices, all workflows and all environments. However, as the saying goes, "Perfect is the enemy of good." Make sure not to bite off more than you can chew and get overwhelmed by trying to do too much in one go. Instead of attempting to do everything, break the problem down into bite-sized chunks. What are the things that are the most time-consuming? The most frequent? What areas are most problematic? Be sure to address those issues first – don't look to initially automate something that is already working fairly smoothly. Just start by automating something that actually needs it.
Similarly, ask yourself this: what tools are best for your team and their skill sets? In addition to leveraging current skill sets, are there new areas or skills you or your team would like to develop? Are you looking to transition to or start building a DevOps culture? Depending on your team, you may choose completely different tools, from products that are common in data center automation like Ansible, Puppet and Chef; to writing Python or Ruby scripts to interact with devices directly; to using GUI-based off-box management tools; to using a Continuous Integration/Continuous Delivery (CI/CD) model where users update Git, test automatically on a simulation network and then deploy in production with no additional intervention. Admittedly that last one is further out there, but these are all valid options.
The point is that you should pick and choose tools that will help automate your network and fit into your team. Don't choose a tool and then try to shoehorn it into a place where it's not intended, or where it will cause headaches for people, just in the name of automation. There's no "one size fits all" here, and no universal answer for everybody. Again, the goal is to make things easier, rather than harder, for you and your team. So keep it simple and start small. Good luck!
Once you're ready to move past these first steps for automation, head over to our networking how-to video series about automation to learn all about the best practices and use cases for your newly automated network.
Read in my feedly