Network Implementation and Test Automation (NITA) is Juniper’s extensible framework that delivers network automation solutions like automated lab testing and deployment. While automation yields several benefits from a business perspective, the focus of this article will be on NITA’s technical aspects, covering its use-cases and software architecture.
Where does NITA come into play?
NITA has been designed with several use cases in mind. The main offerings available with NITA are:
Given NITA’s versatility, it’s possible to utilize it for Test Driven Development (TDD), which consists of software projects where tests are the fundamental indicator of quality and progress. With the TDD thought process, test case libraries are built to validate the network and business solutions, ensuring conformity.
What lies under the hood of NITA?
NITA combines best of breed open source software with networking best practices. Each phase of the network life cycle is guided with the appropriate tools including but not limited to:
Technical focus: a deeper look at NITA’s architecture
Let’s dig into NITA’s architecture to understand how it works and what makes it our ideal toolbox to capture and deliver business value.
NITA is available on several operating systems. There is native support for Mac OSX (10.12.6), Ubuntu (16.04.3 LTS), Windows and other OSes.
NITA is a Docker containerized application. It uses 8 containers as shown in the picture above, additional containers can be added as and when new services are required.
Webapp and Jenkins are always in execution on the host while Robot framework and Ansible run in ephemeral containers. The other containers are available as needed.
NITA is equipped with the same testing framework used by Juniper internal teams to validate Junos OS and perform additional testing. Adopting NITA means profiting from years of software testing experience focused on Juniper’s hardware and software products. Moreover, NITA’s open source components can be augmented with libraries that get you rapid, quality results. Built in are Juniper’s key network automation libraries, such as PyEz, Ansible Junos modules, and the hundreds of other community sourced modules for multi-vendor support.
NITA supports the entire Juniper portfolio, both physical and virtual. Connectivity to the devices is achieved via standard protocols: SSH, Telnet, Netconf, SNMP, or console. There is full compatibility of Junos OS specific functions: it is possible to log-in into sub-systems (i.e. FPC, PFE) and into satellite nodes on multi-chassis systems.
NITA supports leading traffic generators in the industry, such as IXIA and Spirent. Specific configuration files of these products can be loaded for each test case, ensuring excellent granularity during design validation. You can also configure and control the traffic generators programmatically.
Moreover, NITA supports the latest trends in the industry, such as the Infrastructure as Code paradigm. Configuration templates and tests can be created within the editor and committed to the infrastructure. Applying the configuration changes and executing the tests is done automatically. A summary of the results is generated after execution, in a format compatible with Continuous Integration pipelines. Detailed, centralized logs of the tests are available to aid in troubleshooting the network and all results are archived in NITA.
How do I get NITA?
In this article, we highlighted briefly some technical aspects related to NITA, showcasing its versatility and completeness for very diversified use cases and networks. Please get in touch with your Juniper account team to learn how NITA can be adapted for your requirements.