Network Infrastructure as Code

Articles » Technology Resources » Network Infrastructure as Code

Infrastructure as Code (IaC) is "the process of managing and provisioning computer data centers through machine-readable definition files, rather than physical hardware configuration or interactive configuration tools" (source: Wikipedia). Network Infrastructure as Code (NIAC) applies IaC principles to network device configuration and management.

Using NIAC principles you describe the desired state of networking infrastructure (your intent) in text files that can be managed with traditional source code control tools like Git. You could use NIAC to manage traditional device configurations (which would be a very-low-level intent) or as part of a solution that uses abstract high-level data model. These blog posts cover NIAC principles:

Other blog posts dived deeper into implementation details and related tools:

You might also enjoy a few rants on the topic:

Single Source of Truth

Single source of truth (single repository of all information relevant to your networking infrastructure) is mandatory for a successful NIAC implementation. You'll find more information in these blog posts:

We covered numerous NIAC implementation details in Building Network Automation Solutions online course:

Low-level device configuration management with Git is described in Ansible for Networking Engineers online course; source code is available in our Github repository.

Finally, you might enjoy these automation wins: