What is ONOS?
Open Network Operating System (ONOS) is an OS designed to help network service providers build carrier-grade software-defined networks architected for high scalability, availability and performance.
Although specifically designed to address the needs of service providers, ONOS can also act as a software-defined networking (SDN) control plane for enterprise campus local area networks (LANs) and data center networks.
The Open Networking Lab (ON.Lab) released the ONOS source code, written in Java, to the open source community in December 2014. In October 2015, the ONOS project joined the Linux Foundation as a collaborative open source Linux project.
New releases of ONOS come out quarterly, in February, May, August and November, and are alphabetically named after a bird, which is also the ONOS logo. Releases include Avocet, Loon, Woodpecker and Velociraptor. As with most open source projects, ONOS has a GitHub page where collaborators can contribute changes to the code.
Among the service providers contributing to the ONOS initiative are AT&T, NTT Communications and SK Telecom. Vendors contributing to ONOS include Cisco, Ericsson, Intel, NEC, Ciena and Huawei.
ON.Lab and ONOS partners have found multiple use cases for the OS. One of the most well-known is ON.Lab's Central Office Re-architected as a Datacenter (CORD). CORD was created to transform telecom carrier central offices into more scalable and agile environments, similar to next-generation data centers. It accomplishes this transformation through virtual network functions and customer premises equipment, for example. ONOS is one of the open source software systems used to manage CORD.
How ONOS works
The ONOS core is based on a modular architecture, as opposed to an integrated system that blurs the division between its components. This modularity keeps north-south workflows separated from east-west workflows while also permitting easier customization for the entire system.
Because service providers require the ability to scale their networks, the ONOS controller can scale out to accommodate a physically distributed system of devices. This scalability enables service providers to add new switches or components without disturbing the rest of the system. Additionally, the distributed architecture reduces network failure, as identical instances can pick up where another fails. This, in turn, results in high availability.
While the ONOS core is distributed to provide reachability to each network switching device, the ONOS controller remains logically centralized and the separate subdivisions or instances in the complete ONOS architecture can be viewed and accessed as a single system. For overall system visibility and management, ONOS provides a relatively straightforward GUI.
ONOS features northbound and southbound application program interfaces (APIs) grounded in abstraction to prevent configuration and protocol lock-in for applications and devices, respectively.
For northbound interactions, ONOS uses its Intent Framework subsystem that enables applications to specify what they need from the system -- if an application needs more bandwidth, for example. Once an application declares what it needs, the system works to configure accordingly. ONOS is architected to support an influx of an estimated one million application intent requests each second. This capability upholds the system's high performance for application requests and low latency that service providers need.
Each ONOS instance interacts with the network environment and devices through a southbound API that communicates with lower-level components. The core discovers which protocols can be used to interact with the device, and the southbound API uses that protocol to interact with the device. This API is abstracted, so ONOS remains unaffected by specific protocols like OpenFlow, NETCONF or command-line interfaces.
ONOS vs. OpenDaylight
OpenDaylight (ODL) is a similar open source project created by the Linux Foundation. Both ONOS and ODL have modular designs and similar goals to advance SDN.
The two projects take separate approaches, however, and have different backers and partners. While ONOS is primarily for service provider networks, ODL focuses on data center networks. The goal of ONOS is to provide better overall network performance, while ODL is designed to merge legacy networks with SDN.