Automation & Programmability
Showing results for 
Search instead for 
Do you mean 

An Intro to Juniper’s JET Automation framework and how to use it

by Juniper Employee ‎12-08-2015 04:00 AM - edited ‎12-08-2015 06:22 AM

Automation is a game changer. Network and IT Operators are widely deploying automated solutions to save money and make money -- by improving service quality, time to market and introduce new services. This is nothing new. Our Service Provider and Enterprise customers are using automation to enhance DevOps methodologies they are adopting in their network and IT infrastructures. Whether these are Service Providers with large cloud or telco operations, or Enterprises with private and hybrid clouds, DevOps helps them Plan, Build and Run (PBR) customized service oriented solutions with consistent quality and reliability, meeting the demands of the strict service level agreements (SLAs) demanded by their end users. 


There are multiple ways to integrate the network into automated solutions. There are vendor specific tools as well as third party frameworks that either run independently on a service platform and/or require client applications on the devices – Chef, Puppet, Ansible to name a few. Then there are vendor specific toolkits. Juniper’s latest addition to these automation tool kits, the Juniper Extension Toolkit (JET) is a good one. JET for Junos OS makes Junos more Open and Programmable in a simple, flexible and extensible fashion. JET enables 3rd party network application development with access to program the Junos Control Plane and the ability for developers to create customized controls (or knobs) for the network, with ease.


JET is based on four fundamental components – Python, JSON, the JET APIs and Fast Programmatic Configuration database.

  • Now with native support for Python in Junos OS, users can develop and execute Python scripts for operational, event, and configuration commit scripts on any specific device. Existing support for SLAX/XSLT to continues, but the modified Python EZ (PyEZ) for on-box programmability which enables Python scripts to perform network configuration operations on the device.
  • Since JSON has emerged as a popular data exchange format it has become a standard for simple and light weight communications between some devices and applications. To enrich native support in several programming languages, Junos OS operational commands can now emit output in JSON format, while Junos OS configuration input can also now be provided in JSON format.
  • A fast programmatic configuration database residing on Junos OS with ultra-low latency is useful for programmatic changes verified and monitored externally. Software Defined Networking (SDN) controllers and external applications alike can benefit from this fast channel to make configuration changes on the control and data planes of devices running Junos OS. With this database change Junos OS can process 1000s of configuration changes per second, with no configuration validation - assuming that the application or controller sending these configuration changes are capable of validating the integration of these configuration changes externally. This model also enables multiple instances of configuration databases to reside inside a device with simultaneous database access without contention and support for various persistency models.
  • Last but not least, JET offers a set of APIs that are consistent across any Junos OS supporting JET. JET APIs language agnostic – and can be accessed by any Language. Applications developed using JET APIs are also binary compatible and can be executed across any platform running Junos OS release supporting JET. This consistent API support across platforms is extended internally as well. All APIs exposed externally by JET are in fact used internally - they are the same.

With JET being based on Apache Thrift, any integrated Development Platform (IDE) of choice can be used for development for external application development. Extensive Documentation on JET as well as Apache Thrift is available.


A quick and easy way to get started with Automation scripting on Junos OS today is by installing Junos PyEZ as described here.

Juniper Networks Technical Books
About the Author
  • Ben has been working with service providers around the world for the last 15 years developing business cases for a variety of product concepts and new ventures. Ben holds an MBA from MIT and a BS & MS in Mechanical Engineering from Johns Hopkins University.
  • Part of Juniper PS EMEA since 2005 Primarily interested in making technology do the boring repetitive work so I can do fun new work.
  • Donyel Jones-Williams is the Director of Service Provider Product Marketing Management overseeing all of Juniper's Service Provider Products for Juniper Networks. In this role, he leads all of the internal and external marketing activities for Juniper with respect to routing, automation, SDN and NFV. Prior to joining Juniper Networks in January 2014, Donyel was a Senior Product Line Manager for Cisco Systems with in the High End Optical Routing Group managing product lifecycle for multiple products lines helping telecom providers operate efficiently and effectively including; ONS 155xx Product Family, ONS 15216, ONS 15454 MSTP, Carrier Packet Transport Product Family, ME 2600x, & ASR 9000v. He also negotiated favorable agreements with 3rd-party vendors furnishing components and parts and conducted both outbound and inbound marketing (webinars, case study-development, developed and delivered both business & technical at Cisco Live 2005-2012). Donyel graduated from California Polytechnic State University-San Luis Obispo with a Bachelor of Science in Computer Science. While attending Cal Poly SLO he was a collegiate student athlete playing football as a wide receiver and a key member of the National Society of Black Engineers. Donyel is now an active volunteer for V Foundation.
  • Dwayne loves everything related to automation and enjoys talking about it: Automation benefits outweigh any associated disruption.
  • Ebben Aries is a Principal Engineer for Junos Manageability in the Juniper Development and Innovation Division.
  • Michael Pergament, JNCIE-SP #510, JNCIE-ENT #23, JNCIE-DC #3
  • Marcel Wiget is a member of the Routing TME team. His career within Juniper started back in 2009 as a Senior Systems Engineer driving one of the first MX based Broadband Edge deployment to success. Prior to Juniper, Marcel held various positions in pre-sales, professional services and development at Chantry Networks, Spring Tide, Nortel Networks and Wellfleet.
  • Surya Nimmagadda is a Distinguished Engineer working on packet forwarding software for Juniper Networks routing and switching platforms.
  • Pallavi Mahajan is Vice President Engineering, Junos Engineering, and leads the Junos Programmability & Automation teams
  • Product Manager, JUNOS Automation