3 Things Infrastructure as Code is Not
Why networking is integral to DevOps processes, and how it expands on infrastructure as code thinking.
Join the DZone community and get the full member experience.Join For Free
The role of the network engineer is changing. This is not a result of DevOps, although some would claim it is. As DevOps takes center stage in organizations, it can seem like network engineers are being asked to become developers.
There have been a number of talks discussing this, some of which have surfaced at Interop Las Vegas. The shift has been Infrastructure as Code (IaC), which was fundamental to the start of the DevOps movement. So maybe you could say this is caused by DevOps.
IaC is providing an approach to employ code to the Ops infrastructure. Companies like Ansible, Chef, Puppet, and Cumulus Networks have made this shift possible. The tools provided by these companies have made the DevOps culture possible, and IaC is a large result of this. IaC has also brought DevOps tools to the network engineer. This is the basis for discussing what infrastructure as code is not.
IaC is a foundation to DevOps, but what IaC is not is:
Replacement for Learning Networking Principles
Networking uses IaC to automate repetitive tasks. What it does not do is allow software to take the place of understanding core networking principles. Having an understanding of how network traffic is routed, network architecture, and how to configure a network are essential. There cannot be a replicable system implemented if the principles are not understood.
White-box switches and migration to the cloud is what makes infrastructure as code in networking possible. In order to implement White-Box switches, or migrate to the cloud, the networking team will need their knowledge of networks to lead the set up. Then code can be applied and utilized for automation.
Requiring Ops to Become Devs
Infrastructure as code is not turning the Ops team into developers, and turning network engineers into developers as a result. What IaC does is allow a network engineer to use code to replicate processes that work well on one server onto multiple servers.
As Matt Oswalt stated at Interop Las Vegas, it's “…writing a Python script to automate the most redundant part of a job, which allows a networking pro to take better control of the infrastructure.”
Networking has previously had to manually configure servers and infrastructure, as well as write one off configuration scripts. IaC is not just taking your existing configuration management and trying to adapt a DevOps approach.
IaC is a different discipline, which requires thinking in terms of automating the one off scripts. Also, being able to employ a replicable and scalable system, which can be configured through the application of code.
IaC is just a piece of the puzzle for the network engineer. The more encompassing process is NetDevOps. This is the shift.
Infrastructure as Code Gives Rise to NetDevOps
NetDevOps brings a DevOps mindset to the networking space. It is bridging the gap between DevOps and Networking. The foundation already exists with IaC, but there has not been a concrete philosophy around the principles.
With more companies adopting a DevOps culture, there needs to be the same culture and movement applied to networking. This comes as there is more cloud adoption, as well as the increased use of White-box switches.
NetDevOps is bringing networking to DevOps and a DevOps mindset to Networking. Bridging the gap and expanding the concept of infrastructure as code.
Opinions expressed by DZone contributors are their own.