Junos OS Evolved Overview
Junos OS Evolved is next generation Junos OS. It is used just like Junos OS—the same CLI user interface, the same applications and features, the same management and automation tools—but its infrastructure is entirely modernized which enables higher availability, accelerated deployment, greater innovation and improved operational efficiencies.
The development of Junos OS Evolved provides several benefits to Juniper Networks customers:
Nearly all of the CLI and user interfaces are identical to those provided in Junos OS. This means there is virtually no learning curve in using Junos OS Evolved.
It runs natively on Linux, providing direct access to all the Linux utilities and operations.
All statistics and states are modeled and all states can be uniformly accessed. There is a central database which are used by not only Junos native applications but also external applications (using APIs).
It has a fully distributed general-purpose software infrastructure that leverages all the compute resources on the network element, for example, CPUs in the Routing Engines, CPUs in the line cards, and potentially other x86 CPUs attached.
Native Linux Base
Whereas Junos OS runs over an instance of the FreeBSD operating system on a specific hardware element (for example, the CPU on the Routing Engine), Junos OS Evolved runs over a native Linux system. Having Linux as a base leverages a much wider, dynamic, and active development community. The Linux system also contains multiple third-party applications and tools developed for Linux that Junos OS Evolved can integrate with minimal effort.
The Junos OS Evolved infrastructure is a horizontal software layer that decouples the application processes from the hardware on which they run. Effectively, this creates a general-purpose software infrastructure spanning all the different compute resources on the system (Routing Engine CPUs, line card CPUs, and possibly others). Application processes (protocols, services, and so on) run on top of this infrastructure and communicate with each other by publishing and consuming (that is, subscribing to) state.
Central Database for State
State is the retained information or status about physical or logical entities that is preserved, shared across the system, and supplied during restarts. State includes both operational and configuration state, including committed configuration, and interface state, routes, and hardware state. In Junos OS Evolved, all state is held in a central database called the Distributed Data Store (DDS).
The DDS does not interpret state. Its only job is to hold state received from subscribers and propagate state to consumers. It implements the publish-subscribe messaging pattern for communicating state between applications that are originators of a state to applications that are consumers of that state (see Figure 1). Each application publishes state to and subscribes to state from the DDS directly, making applications independent of each other.
Decoupling applications in this manner isolates the failure of one application from others. The failing application can restart using the last known state of the system held in the state database.
Junos OS Evolved is composed of components with well-defined interfaces. This modular design means you replace at a component level, resulting in flexible packaging and faster upgrades. You can upgrade the system using an application-level restart, which, depending on the changes, in many instances will not require a system reboot. The system determines which modules have changed, and only changed modules are upgraded and restarted. Restarted applications reload the state that is preserved in the DDS.
In Junos OS Evolved, a node is an entity composed of a physical compute resource such as a Routing Engine CPU or Line Card CPU or other x86 compute resource. Each node runs base Linux OS, state distribution pub-sub infrastructure, and applications that use this infrastructure.
The Junos OS Evolved infrastructure brings together multiple nodes into a single resource pool (that is. a distributed OS) wherein a Junos application can run on any node it is assigned to run on. This capability enables optimal resource utilization within an Junos Evolved system, and opens the door to new paradigms. Traditionally, the Routing Engines have x86 CPUs where Junos OS runs, and line cards, like FPCs or MPCs, have a general-purpose processor where the Junos Microkernel runs for Packet Forwarding Engine related functions. But in newer generations of x86 based line cards, a complete Linux operating system (OS) instance can be executed. Such line cards offer a more flexible framework and are capable of running processes and applications.