XOS is a model-based platform for assembling, controlling, and composing services. It defines a service control plane that is layered on top of a diverse collection of back-end service implementations, including VM-hosted VNFs, container-based micro-services, and SDN-based control programs that embed functionality in white-box switches. XOS is designed around the principle of Everything-as-a-Services (XaaS), making it an integral part of CORD™.The CORD (Central Office Re-architected as a Datacenter) platform leverages SDN, NFV and Cloud technologies to build agile datacenters for the network edge. Integrating multiple open source projects, CORD delivers a cloud-native, open, programmable, agile platform for network operators to create innovative services.
XOS defines CORD’s architecture programmatically, with a set of models and invariants serving as a specification of the architecture, plus a generative toolchain that translates the declarative specification into executable code. Moreover, as operators and developers gain experience with CORD, they are able to codify that experience in the models and invariants, making it possible to evolve the architecture over time.
Use cases of XOS include:
OpenCloud – An operational cloud that uses XOS to innovate both above and below the IaaS interfaces offered by commercial clouds.
CORD – A platform that combines NFV, SDN, and the elasticity of commodity clouds to bring datacenter economics and cloud agility to the Telco Central Office
XOS implements the CORD Controller. It is organized as a collection of micro-services.
XOS is logically organized into three layers:
- A Data Model records the authoritative state for CORD. It includes an event bus, a persistent store, and the XOS Core.
- A set of Views define the lens through with operators interact with the Data Model. It includes GUI, RESTful, and TOSCA-based interfaces.
- A set of Synchronizers keep the backend resources and services in sync with the Data Model. Each includes an Ansible playbook for a backend component.
The XOS Core at the center of the CORD control plane implements a modeling framework that includes a language for specifying both models and invariants on those models (xproto) and a toolchain that generates code to enforce those models and invariants (xosgen).