proNX Optical Director Microservices Architecture
The proNX Optical Director application consists of a set of microservices that work together to provide the overall functionality of the controller and management system. The microservices architecture facilitates the development of complex, large scale systems by breaking an application down into smaller, self-contained, independently deployable building blocks. These building blocks or microservices run concurrently in their own processes and interact with each other through narrow, well-defined mechanisms.
When designed properly, microservices and their applications exhibit the following fundamental characteristics:
Each microservice can be deployed and removed independently from and without affecting the other microservices. This results in reduced risk when performing software upgrades. Instead of a monolithic software upgrade, only the microservices that need to be updated are redeployed. Microservices that do not have updates are not disturbed.
Fine-grained scaling can be achieved by deploying multiple instances of a particular microservice when needed. Additionally, because microservices are stateless, events can be load balanced across all instances of a particular microservice with no regard for prior affiliation when coupled with a well-designed caching strategy.
The modular nature of microservices enables new microservices to be developed and tested quickly.
Failure in one microservice does not affect the other microservices. This built-in fault tolerance enables the application to continue its operation, possibly at reduced capacity or with reduced capability, instead of failing completely when part of the system has a catastrophic failure.
The proNX Optical Director software leverages best-in-class technologies to provide an easy-to-deploy, robust, and scalable solution. Although knowledge of the underlying technologies is not required, advanced users might find the information in the following sections useful.
The proNX Optical Director application uses a Linux Docker Kubernetes (LDK) stack.
Atomic Host Linux is a stripped-down Linux distribution that is optimized to run containers within an immutable infrastructure. An immutable infrastructure is a design philosophy where components are replaced rather than upgraded in place.
Docker is a widely used container platform that enables applications to be developed as a set of independent, modular components. This modularity promotes isolation and improves robustness and scaling. Docker containers provide a lightweight virtual operating system for the contained microservices and supply all the components necessary for them to run, such as the runtime environment, environment variables, tools, and libraries. Because containers share the same kernel as the host operating system, containers provide most of the isolation benefits of virtual machines but without the overhead of a hypervisor.
You are not required to be familiar with Docker in order to install and use the proNX Optical Director.
Kubernetes is a widely used container management and orchestration platform that provides the underlying capability for proNX Optical Director components to be deployed, scheduled, and scaled, not only within a node but across nodes (such as in a server cluster). A node is a bare metal computer where you have installed the LDK stack.
A Kubernetes cluster consists of a master node and regular nodes. The master node is a regular node that has the additional responsibilities of coordinating all activity within the cluster, such as scheduling Kubernetes pods, maintaining a pod’s desired state, scaling pods, and rolling out new updates. A Kubernetes pod is the smallest unit that can be managed by Kubernetes and consists of one or more tightly coupled containers.
When you deploy the proNX Optical Director, the master schedules the pod instances to run on individual nodes in the cluster. After the pod instances are created, the master continually monitors those instances to ensure they remain in the desired state and can recreate them if necessary.
You are not required to be familiar with Kubernetes in order to install and use the proNX Optical Director.
proNX Optical Director Software Stack
Figure 1 shows an abstracted view of the proNX Optical Director software stack:
At the bottom is the LDK stack, which provides the host operating system, container runtime, and container orchestration capabilities.
The middle layer consists of a number of common utility microservices that are available for application microservices to use. These include utilities that help microservices communicate with each other, collect logs and metrics, and provide access to cached and persistent storage.
The top layer is the set of applications that define the proNX Optical Director’s functionality.
The Optical Control Layer (OCL) is responsible for controlling the optical links in the network. It processes Optical Telemetry Interface (OTI) messages from the optical devices and programs their internal amplifiers and attenuators to keep the optical links stable. OCL runs autonomously. Users do not interact with OCL directly.
FCAPS provides the fault, configuration, accounting/administration, performance management, and security functions for the management system. Included within FCAPS are the Device and Operation microservices (not shown).
The Device microservice is responsible for retrieving alarms from devices, updating system information, configuring NTP servers, and configuring interfaces and links.
The Operation microservice is responsible for providing support for the tasks in the Operations drop-down list (in the Devices tab) such as backup and restore, software upgrades, and retrieving logs and metrics. Also included are discovering and undiscovering devices and retrieving the list of tasks that have been launched.
Service Activation and Topology is responsible for understanding how the devices in the network are interconnected and for setting up optical services across that network topology. This functionality is provided through the Network microservice (not shown).
The Web User Interface is the user interface to the proNX Optical Director. For the TCX Series devices, this is the sole user interface to manage the device. There is no command line interface on TCX Series devices.