Over the past five years, the network industry has seen a rise in software-defined networking (SDN). SDN is an approach to architecture that allows for a network to be centrally controlled. One of the key components of this approach is application programming interfaces (APIs) – APIs help enable true machine to machine communication and help simplify the development process of automation and network applications, by providing structure for how data is modeled.Prior to APIs, the two primary mechanisms used to configure and manage network devices were command-line interface (CLI) and simple network management protocol (SNMP,) both of which are manual, human-to-machine approaches. With the introduction of APIs and network automation, organizations have seen an increase in speed. The have also derived a variety of other benefits including:
As it stands today, every network is unique – like a snowflake. Network engineers have traditionally taken pride in maintaining them and solved transport and application issues by making one-off network changes. While this approach works in the moment, it makes it challenging to manage the network and even harder to automate. When starting their automation journey, organizations need to consider network automation as new architecture (versus revamping their existing architecture).Key questions to take into consideration while building network automation architecture include:
- Which features work across multiple vendors?
- What type of APIs or automation tools work when using network device platforms?
- Which extensions work across platforms?
If companies take the time to thoughtfully consider the above, the resulting architecture becomes simpler, repeatable, and ultimately easier to maintain and automate. It also eliminates being tied to one specific vendor.
Imagine a team of multiple systems engineers, all of whom have their own way of making a network change. With several people involved, it becomes challenging to implement and maintain a standard method of doing things, ultimately leading to a disjointed network. Additionally, the more hands that touch the configuration, the greater the probability of human error occurring. Using proven and tested network automation creates predictable behaviour and allows the network team to reach deterministic outcomes. A deterministic outcome means alway producing the same output from a given starting condition or state. Network automation eliminates room for human error and assures the team that the task will get done correctly the first time.
Businesses are continually transforming in order to offer innovative solutions to their customers. As such, network infrastructure needs to continually evolve and IT teams are transitioning to infrastructure designs, such as cloud, hybrid, multi-cloud and edge computing, that are more agile in nature. Network automation offers speed and agility in deploying changes and retrieving data from network devices via deterministic outcomes. Automation also enables reliability. Reliability leads to predictability, and predictability is a fundamental component of the agile business. Many organizations are interested in network automation adoption but are overwhelmed with the number of tools, such as Puppet, Ansible, Chef and Saltstack, that are available. Each tool has its benefits but also comes with a learning curve for the network team.
The Network Automation Leader
The current market leader for network automation is Ansible because it is:
- Simple: Ansible is an incredibly simple automation platform that is agentless and extensible. One of the most appealing attributes of Ansible is that it does not require the user to possess unique coding skills. All instructions, or tasks to be automated, are documented in a standard human-readable data format.
- Agentless: Ansible allows users to quickly begin network automation projects without vendor support because it does not require users to load an agent on each device. This revolutionary approach is the primary reason why Ansible is the ideal network automation tool.
- Extensible: Ansible is also extremely extensible (and open source) -- allowing users to easily provide plugins or modules that extend the Ansible’s functionality. As a result of Ansible’s extensibility, integrations have been written for network vendors, including but not limited to Cisco, Arista, Juniper, F5, HP, A10, Cumulus, and Palo Alto Networks.
In addition to being simple, agentless and extensible Ansible easily integrates into existing DevOps workflow. It is already regularly used for application deployments within IT departments and by operations teams to manage the deployment, monitoring and management of various applications. By integrating Ansible with the network infrastructure, it expands what is possible when new applications are turned up or migrated. Network-centric tasks such as device provisioning, data collection and monitoring, configuration management, reporting and compliance can be automated and integrated into existing workflows within the IT department. Ansible is idempotent, meaning that the result of running a task once is the exact same as running the task repeatedly without any intervening actions. If a change is required to get the system to the desired state, the change is made once. If the device is already in the desired state then no change is made. As technologies become more complex, the value of idempotency increases because the user does not need to worry about the existing state of the network device being modified, only the desired network configuration state trying to be achieved.To learn more about network automation and how to start your journey, join MOBIA & Red Hat for our webinar “Network Automation is a No Brainer - How to Build Your Case” on Wednesday, September 16th at 10:00am PST | 1:00pm EST. Click here to register. About the Author: Ashish Aggarwal, Solutions Architect, MOBIAAshish Aggarwal is a Solutions Architect with nearly 20 years experience in the IT industry. He has extensive experience partnering with customers on technology adoption, solutions architecture and open source technology platforms. Ashish is a certified K8S administrator. In his spare time, you’ll find Ashish gardening and going on long drives in the country side in his Jeep.