Network Programmability and Automation

Network Programmability and Automation

By Edelman, Jason
O’Reilly, 2018

People who already know Git, Python, data formats and Linux may be annoyed to find them introduced here. But skip forward to the sections which explain Netconf and how to automate network configuration.

Also, people who know Continuous Integration may be annoyed, but there is a valuable discussion of company culture: management buy-in is critical.


  • Python programming basics: data types, conditionals, loops, functions, classes, and modules
  • Linux fundamentals to provide the foundation you need on your network automation journey
  • Data formats and models: JSON, XML, YAML, and YANG for networking
  • Jinja templating and its applicability for creating network device configurations
  • The role of application programming interfaces (APIs) in network automation
  • Source control with Git to manage code changes during the automation process
  • How Ansible, Salt, and StackStorm open source automation tools can be used to automate network devices
  • Key tools and technologies required for a Continuous Integration (CI) pipeline in network operations

Jenkins Essentials

Jenkins Essentials, Mitesh Soni, 2015

The Jenkins tool is used for CI (Continuous Integration). CI performs frequent builds from your source code repository, to check that the build succeeds. And that the tests pass. Then your team can know whether some source change has problems, and can learn this quickly without needing to manually build the product. Jenkins can drive a dashboard, for better visibility. CI is an important part of the DevOps process.

Jenkins is part of the Java ecosystem, though it can be used for projects in other languages.

This book is not very readable in my mind, the text does not ‘flow’. It has too many screenshots, which fill the 150 pages. I would like it better if, instead, there was more discussion, more diagrams, and code examples.