Juniper has all sorts of tools and products that you can use to automate your network operations and orchestrate complex processes. Having all those resources at your disposal is great, but trying to find information about them all can be a little bit difficult at times. To make things a little easier, I've created a list of all of Juniper's automation tools and products below. I've included a quick description of each as well as all the links you need to learn and use each of them. I hope it helps! (As Juniper adds more products, I'll try to update this list accordingly.)
Quick note if you're using the Junos SDK: This has reached EOL. Juniper still supports it, but is encouraging customers to start using the Juniper Extension Toolkit (JET) instead. More details below.
(For a list of updates and corrections to this page, see the list at the end of this article.)
Network Automation and Orchestration
Automation and orchestration simplify network operations that involve complex configurations. They also lower configuration and provisioning errors, improving network availability.
Ansible for Junos
Ansible is open-source software used for infrastructure configuration management. With Juniper's Ansible library, you can perform operational and configuration tasks on devices running Junos. With Ansible version 2.1, Junos is natively supported via network modules.
Chef for Junos
Chef software automates the provisioning and management of compute, networking, and storage resources, whether these resources are on-site, in the cloud, or both.
Cloud Analytics Engine
Cloud Analytics Engine uses network data analysis to improve application performance and availability. It includes data collection, analysis, correlation, and visualization, to help you better understand the behavior of workloads and applications across the physical and virtual infrastructure.
Contrail is an open, standards-based software that delivers network virtualization and service automation for federated cloud networks. It provides self-service provisioning, improves network troubleshooting and diagnostics, and enables service chaining for dynamic application environments.
Cloud CPE -- Including NFV and Contrail Service Orchestration
Contrail Service Orchestration is a suite of products that you use to design and deploy network services. It includes a RESTful API to connect with service providers’ operational support systems and business support systems applications.
Juniper Extension Toolkit (JET) enables you to develop applications that run on any device running Junos OS and use Service APIs to interact with that device. Built-in Python support allows you to run the applications on the device.
Junos PyEZ is a microframework for Python that enables you to remotely manage and automate devices running Junos OS.
Junos SDK (Legacy)
Legacy product used to develop Junos OS applications. The SDK has reached end of life. The last release of the SDK was 14.2, which reaches end of support in May 2018.
Junos Snapshot Administrator/JSNAPy
Use Junos Snapshot Administrator to capture and validate the operational status of a device, review operational changes to the device, create configuration files that define the scope of snapshots, and customize the evaluation criteria for the snapshot data.
JSNAPy is the Python version of Junos Snapshot Administrator and available on Github.
Junos Space SDK
Use the Junos Space SDK to create Space applications tailored for analytic and management needs, gain better access to network information, deliver better QoS to your customers, and orchestrate services.
Junos Space Application APIs
Individual APIs are available for many of the Junos Space applications, including:
The NETCONF XML management protocol is an XML-based protocol that client applications use to request and change configuration information on routing, switching, and security devices. It uses an Extensible Markup Language (XML)-based data encoding for the configuration data and remote procedure calls.
Open source Perl Net::Netconf module. The NETCONF API provides mechanisms to install, manipulate, and delete the configuration of network devices. The NETCONF API uses an Extensible markup Language (XML) based data encoding for the configuration data as well as operations and messages defined in the API. The Net::Netconf module can be installed via CPAN or using source code.
Network Service Activator
Network Service Activator uses a distributed architecture to support remote devices. You install Network Service Activator on one central activation server and multiple regional activation servers. A device communicates directly with its assigned regional activation server. The distributed architecture optimizes the efficiency of the initial provisioning process, contributing to high performance and scaling of the network.
The NorthStar Controller is an SDN controller that enables granular visibility and control of IP/MPLS tunnels in large service provider and enterprise networks. The NorthStar RESTful APIs enable access over HTTP to most of the same data and analytics available from the NorthStar GUI and CLI.
OpenConfig is an informal working group of network operators who share the goal of moving our networks toward a more dynamic, programmic infrastructure by adopting software-defined networking principles such as declarative configuration and model-driven management and operations. Juniper’s approach to OpenConfig gives maximum agility to customers by decoupling the OpenConfig package release from the Junos releases.
Juniper's Center for Innovation serves as a global resource for innovators who want to build new software solutions that harness network intelligence and automation capabilities offered by Juniper’s products. For 3rd parties/start-ups, OpenLab offers the Solutions Incubation Program which provides qualified companies access to lab and technical consultative resources to facilitate the development of new proof-of-concept automation solutions. This is an innovation program aimed at bringing new, innovative capabilities to our customers to help them maximize their network as a true strategic asset.
OpenNTI is a container packaged with all tools needed to collect and visualize time series data from network devices. Data can be collected from different sources:
Puppet for Junos OS
Puppet provides an efficient and scalable solution for managing the configurations of large numbers of devices. System administrators take advantage of Puppet to manage compute resources such as physical and virtual servers.
WANDL IP/MPLS View
WANDL IP/MPLSView is a network planning solution that provides concise and in-depth views of a router network. It helps managers optimize time, network bandwidth, and network resources; as well as anticipate the impact of network growth or realignment. WANDL IP/MPLSView includes a REST API interface to enable northbound systems to receive various sets of data through standard HTTP requests.
YANG is a data modeling language used to model configuration, state data, and notification messages of a network device. The YANG standard has taken lot of inputs from Juniper’s data modeling language (e.g. DDL). More and more network equipment makers are adopting YANG as a data modeling language.
Thanks for the links.
Don't forget the NAPALM automation framework: https://github.com/napalm-automation/napalm
Very useful stuff.