@@ -160,13 +160,16 @@ algorithm to provide a rich set of programming primitives that ONOS
160160uses to manage the distributed state and make it easy for control apps
161161to access.
162162
163- This is a common design paradigm. What’s unique about ONOS—or any
164- Network OS, for that matter—is the set of maps it defines: the
165- semantics of the keys it stores and the types of the values associated
166- with those keys. It is this data model that makes a Network OS a
167- Network OS (and not a ride-share application or a social network).
168- This section mostly focuses on this set of data models and the
169- corresponding services built around them, although we start with a
163+ This is a common design paradigm, which results in a system that is
164+ both scalable (runs on enough virtualized instances to handle the
165+ request workload) and highly available (run on enough instances to
166+ continue offering service in the face of failure). What’s unique about
167+ ONOS—or any Network OS, for that matter—is the set of maps it defines:
168+ the semantics of the keys it stores and the types of the values
169+ associated with those keys. It is this data model that makes a Network
170+ OS a Network OS (and not a ride-share application or a social
171+ network). This section mostly focuses on this set of data models and
172+ the corresponding services built around them, although we start with a
170173brief introduction to the primitives that Atomix supports.
171174
1721756.2.1 Atomix Primitives
@@ -196,8 +199,13 @@ map.
196199
197200Maps are the workhorse primitive used by ONOS, as we will see in the
198201next subsection. We conclude this section by looking at another role
199- that Atomix plays in ONOS: coordinating all the ONOS instances. There
200- are two aspects to this coordination.
202+ that Atomix plays in ONOS: coordinating all the ONOS instances.\ [# ]_
203+ There are two aspects to this coordination.
204+
205+ .. [# ] For the purpose of this discussion, assume ONOS is packaged as
206+ a whole, and then scaled across multiple virtualized instances.
207+ An alternative partitioning of ONOS functionality into
208+ independently scaled microservices is discussed in Section 6.5.
201209
202210 First, as a horizontally scalable service, the number of ONOS
203211instances running at any given time depends on the workload and the
@@ -656,11 +664,15 @@ rest of ONOS.
656664A refactoring of ONOS to more closely adhere to a microservice
657665architecture is also underway. The new version, called µONOS,
658666leverages ONOS’s existing modularity, but packages and scales
659- different subsystems independently. This includes encapsulating Atomix
660- in its own microservice, as well as running each control application
661- and southbound adaptor as a separate microservice. It also means
662- partitioning the core into distinct microservices corresponding to
663- Topology Management (exporting a Network Graph API), Control
664- Management (exporting a P4Runtime API), Configuration Management
665- (exporting a gNMI API), and Operations Management (exporting a gNOI
666- API).
667+ different subsystems independently. Although in principle each ONOS
668+ service introduced in this chapter could be packaged as an independent
669+ microservice, doing so is much too fine-grain to be
670+ practical. Instead, µONOS adopts the following approach. First, it
671+ encapsulates Atomix in its own microservice. Second, it runs each each
672+ control application and southbound adaptor as a separate
673+ microservice. Third, it partitions the core into four distinct
674+ microservices: (1) a *Topology Management * microservice that exports a
675+ Network Graph API; (2) a *Control Management * microservice that
676+ exports a P4Runtime API; (3) a *Configuration Management * microservice
677+ that exports a gNMI API; and (4) an *Operations Management *
678+ microservice that exports a gNOI API.
0 commit comments