Networking

08:00 AM
Kirk Byers
Kirk Byers
Commentary
Connect Directly
Twitter
LinkedIn
Google+
RSS
E-Mail
50%
50%

Network Automation, Programming, And Scale

How do you write custom network automation programs that will endure? Here are some ideas.

Networking blogger Greg Ferro wrote an article last year in which he argued that scripting does not scale for network automation. In that article, Greg declared that custom scripting is "pointless in the end" and that "within two years, those scripts will be dead."

Greg's article ultimately poses an interesting question: How do you make your programming scale? Or to put this in different terms, how do you write programs that won't die an untimely death -- that won’t end up in the dustbin of a commented-out crontab?

Now in my view, scripting is a type of programming and programming is the way to achieve network automation. But how do you do this in an enduring way?

Here are some steps that help:

1. Check your code, templates, and configurations into a revision control system.

2. Make your programs readable. Don’t value terseness over readability; don’t value clever programming tricks over comprehension. 

3. Integrate automated testing into your process. Don't rely on manual testing. Write code that tests your code. Write code that tests your changes. You need to know when things aren’t working (and the earlier the better).

4. Don't reinvent the wheel. Use existing libraries and frameworks; search for existing tools that can accomplish the task at hand.

5. Your data structures matter; choose them wisely. Choosing the wrong data structures can cause you a lot of added complexity and unnecessary work.

6. Don't repeat yourself. Don’t copy your code within a given file; don’t copy your code from one file to another. Learn to use the constructs of the language to avoid unnecessary code duplication.

7. Don't repeat yourself.Strive to write code that CAN be reused.

8. Use the right tool for the job. If across an extended period of time, you feel like you are fighting the language, framework, or library, reassess whether you are using the right tool for the job. But…

9. Be wary of bright-shiny-new-thing syndrome.Yes, XYZ looks very interesting, but are the advantages of XYZ worth the time and effort of converting over to it?

Now these technical nuts-and-bolts will get you part of the way there, but are they sufficient for creating an enduring automation system? No, probably not.

There are other non-technical requirements, such as organizational commitment to automation, and having multiple team members that understand, contribute to, and support the system. Additionally, your organization must truly prioritize improvement across time. People say they do, but what does management do and say when things go wrong?

Yes, network automation is a bit of a journey. But hopefully over time you can build something that is valuable and that endures.

As the owner of Twin Bridges Technology, a bootstrapped technology business in San Francisco, Kirk teaches Python courses for network engineers and writes about network automation at pynet.twb-tech.com. He is a long-time network engineer himself (CCIE #6243), has extensive ... View Full Bio
Comment  | 
Print  | 
More Insights
Comments
Newest First  |  Oldest First  |  Threaded View
aditshar1
50%
50%
aditshar1,
User Rank: Ninja
12/22/2015 | 8:34:23 AM
Re: Tough Road
Thank You @Virsingh: Actually we have very new project coming in and customer is expecting us to implement some kind automation for furture use so that they can stay up to date for KPI and compliance tracking. As if now even i am not sure about all the stuff, we just need to prepare some documentation stuff for him.
virsingh211
50%
50%
virsingh211,
User Rank: Ninja
12/21/2015 | 10:42:43 AM
Re: Tough Road
I haven't seen or observed any practical implementation as if now, but yes i am sure automation can suffice your requirement provided what all parameters or KPI you want to include.
aditshar1
50%
50%
aditshar1,
User Rank: Ninja
12/21/2015 | 12:12:59 AM
Re: Tough Road
Can we use Automation to pass audit and compliance requirements easily with proactive policy enforcement and audit and compliance reports. If yes how exactly is the process.
virsingh211
50%
50%
virsingh211,
User Rank: Ninja
12/14/2015 | 12:17:27 AM
Tough Road
If i account on Automation, i have to consider some key points before start, i.e. Planning, Deployment, Assurance and Troubleshooting. During all this i should understand desired outcome with procedure. All required input locally available on the device, and actions to take effect locally on the device.
Slideshows
Cartoon
White Papers
Register for Network Computing Newsletters
Current Issue
2014 Private Cloud Survey
2014 Private Cloud Survey
Respondents are on a roll: 53% brought their private clouds from concept to production in less than one year, and 60% ­extend their clouds across multiple datacenters. But expertise is scarce, with 51% saying acquiring skilled employees is a roadblock.
Video
Twitter Feed