Traditional networking applications, and more broadly, network operating systems (NOS) are monolithic. This lack of software modularity has led to siloed software solutions from the incumbent vendors. As a result, similar functionality is simply repeated multiple times throughout the system without proper and sufficient code sharing. This form of “code bloat” negatively impacts software quality and the lack of flexibility limits extensibility to new environments.
As businesses adopt cloud paradigms and 5G-driven distributed architectures become a reality, it is critical to deploy and manage applications in a seamless, scalable manner across the data center, the cloud, and the edge. In order to meet these requirements, businesses need a modern, scale-up, scale-out networking software that is agile, elastic, and cognitive.
Building Composable Software
At Arrcus, we purpose-built ArcOS® as a modern, microservices-based, composable networking software from first principles. Composable software is comprised of modular building blocks with well-defined, efficient APIs designed to accomplish specific functions, with built-in debuggability and telemetry support where applicable. The modular building blocks could either be processes or libraries and represent a higher level of abstraction of functions. By implementing the building blocks using multiple threads, ArcOS is able to take advantage of multi-core CPU system and deliver scale-out performance (such as BGP 100M+ path scale).
In some composable software implementations, multiple translations are required for data transfer from one building block to another, which has a negative impact on performance. In ArcOS, translation is done only once, at the time the data is received, to create an efficient generic representation. The representation is shared across multiple building blocks, so no further translations are needed when the data traverses the system. Moreover, the communication channel between building blocks is optimized, resulting in maximum data throughput.
The composability of ArcOS enables maximum code sharing while allowing microservices to achieve high performance, scalability, reliability, and high availability and support easy data sharing, debuggability, and telemetry.
The ArcOS Advantage
With ArcOS, customers can “pick and choose” only the microservices needed for a particular deployment. Given that each deployed microservice is an individual multi-threaded process, ArcOS can fully utilize multiple CPU cores of the underlying hardware to drive massive, scale-out performance. In addition, microservices such as routing protocols, RIB, and FIB can be restarted independently, resulting in a highly available (HA) system.
There are multiple northbound management interfaces supported in ArcOS. The management microservice fully resolves of all the northbound interaction with the outside world whether it be NETCONF/RESTCONF, SNMP, CLI, or RPC. Other microservices such as routing protocols, RIB, and FIB just communicate with the management microservice through a unified set of APIs to receive configuration state and provide operation state. When a new management protocol is added, only the management microservice needs to be updated, thereby resulting in a more stable software.
ArcOS supports two IPCs: one for datastore and the other for message library. The datastore provides a PUBSUB service to microservices to perform one-to-many communications. It is also key to telemetry support in ArcOS – microservices publish their state to the datastore and the telemetry agent microservice subscribes to this data and streams it out to the interested parties. On the other hand, the message library provides an optimized one-to-one communication channel. Although there are two IPC mechanisms, they share the same encoding, so the encoded message could be built once and sent to both data store and message library to achieve different goals, say telemetry and forwarding state route installation, efficiently.
ArcOS enables a wide range of platforms including multiple merchant silicon options for forwarding. This is achieved through the composition of forwarding layer building blocks with pluggable codes specific to each networking silicon. This modularity allows for rapid portability and scalability of ArcOS to any new silicon. For example, this enables ArcOS to be the industry’s first independent NOS to support Broadcom’s Trident 3, Jericho+, Tomahawk 3, and now Jericho2.
ArcOS is a purpose-built, modern, microservices-based, composable best-in-class networking software that enables the following benefits:
- Flexible deployment due to independent runtime environment for each service
- Superior software quality and reliability due to reduced code bloat
- Massive Scale-up/Scale-out performance through multi-threading
- Software feature velocity through adding new features to common building blocks