XOS - Open Networking Foundation€¦ · XOS Operationalizes CORD Workflow Protobuf (xproto) Models...

30
XOS The Service Composition and Management Layer for CORD and SEBA Scott Baker

Transcript of XOS - Open Networking Foundation€¦ · XOS Operationalizes CORD Workflow Protobuf (xproto) Models...

Page 1: XOS - Open Networking Foundation€¦ · XOS Operationalizes CORD Workflow Protobuf (xproto) Models TOSCA Workflows – Provision & Configure Services – Runtime Operation – Schema

XOSThe Service Composition and Management Layer

for CORD and SEBA

Scott Baker

Page 2: XOS - Open Networking Foundation€¦ · XOS Operationalizes CORD Workflow Protobuf (xproto) Models TOSCA Workflows – Provision & Configure Services – Runtime Operation – Schema

Managing the service stack is a big space...

• Container lifecycle management• Deploy on hardware• Scheduling• Redeploy/migrate if hardware fails

• Service coordination• Service A needs to work with Service B• Abstractions may span A and B

2

Page 3: XOS - Open Networking Foundation€¦ · XOS Operationalizes CORD Workflow Protobuf (xproto) Models TOSCA Workflows – Provision & Configure Services – Runtime Operation – Schema

Other tools handle container lifecycles

Docker• Enforces compute isolation between services

Kubernetes• Deploys containers

• Schedules containers to compute resources

Helm• “The Kubernetes Package Manager”

• Manage dependencies between services

• Chart A is comprised of charts B, C, and D...

3

Page 4: XOS - Open Networking Foundation€¦ · XOS Operationalizes CORD Workflow Protobuf (xproto) Models TOSCA Workflows – Provision & Configure Services – Runtime Operation – Schema

XOS manages and coordinates services

Unify• Provide coherent interface to collection of disaggregated components

• Tools to avoid NxM scenario (N northside masters and M components)

Coordinate (East/West)• Support low-latency/fine-grain interaction among internal components

• State needed to coordinate interdependent/adjacent components

Synchronize (North/South)• Provide rendez-vous point for north-side directives / component activity

• State needed to synchronize both top-down and bottom-up workflows

4

Page 5: XOS - Open Networking Foundation€¦ · XOS Operationalizes CORD Workflow Protobuf (xproto) Models TOSCA Workflows – Provision & Configure Services – Runtime Operation – Schema

Why invent our own?

Create service meshes that span multiple disparate technologies and security domains:

5

XOS

K8s #1(local)

K8s #2(Google Cloud)

OpenStack

Kafka

Kibana

ONOS

Page 6: XOS - Open Networking Foundation€¦ · XOS Operationalizes CORD Workflow Protobuf (xproto) Models TOSCA Workflows – Provision & Configure Services – Runtime Operation – Schema

CORD

Use Cases(Trials)

ExtensiblePlatform

Building Blocks

Unify – Integrate Across Components

VOLTHA xRAN Fabric vEPC vRouter …

Page 7: XOS - Open Networking Foundation€¦ · XOS Operationalizes CORD Workflow Protobuf (xproto) Models TOSCA Workflows – Provision & Configure Services – Runtime Operation – Schema

Lifecycle Management

CORD Controller (XOS)

CtrlApp

CtrlApp

CtrlApp

CtrlApp

CtrlApp

CtrlApp

CtrlApp

CtrlApp

CtrlApp

CtrlApp

CtrlApp

VNF

OCPHardware

ONOSKubernetes(OpenStack)

XOS Operationalizes CORD

Workflow

Protobuf (xproto) Models

TOSCA Workflows – Provision & Configure Services – Runtime Operation

– Schema that Model Services – Core set Loaded at Boot Time – Dynamically Updated at Runtime

Helm Charts – Containers that Implement Services – Core set Loaded at Boot Time – Dynamically Updated at Runtime

Kubernetes (Optionally MaaS)

CORD POD

Page 8: XOS - Open Networking Foundation€¦ · XOS Operationalizes CORD Workflow Protobuf (xproto) Models TOSCA Workflows – Provision & Configure Services – Runtime Operation – Schema

Unification using the XOS data model

8

Base Models (stuff you get for free)• Users and Permissions

• Compute and Network Resources

• Services, Tenancy, and Dependencies

• Chains

Extensibility (value you can add)• Any service can add new models

• Service models can inherit from base models

Page 9: XOS - Open Networking Foundation€¦ · XOS Operationalizes CORD Workflow Protobuf (xproto) Models TOSCA Workflows – Provision & Configure Services – Runtime Operation – Schema

VOLT service example

9

VOLTService

VOLTServiceInstance OLT

Device

PON Port

NNI Port

ONU Device

UNI Port

RCORD Service

Fabric XC Service

Fabric XC ServiceInstance

RCORDSubscriber

Page 10: XOS - Open Networking Foundation€¦ · XOS Operationalizes CORD Workflow Protobuf (xproto) Models TOSCA Workflows – Provision & Configure Services – Runtime Operation – Schema

Unification facilitates consistency

10

"xproto", the XOS data modeling language• Based on protobuf, extended with relational features

• Used to autogenerate various targets (REST, GUI, etc)

• Make a change in one place, not six different places

gRPC APIgRPC API

volt.xproto xosgenxgRPC API REST API

DataModel

GUI

CLI

Page 11: XOS - Open Networking Foundation€¦ · XOS Operationalizes CORD Workflow Protobuf (xproto) Models TOSCA Workflows – Provision & Configure Services – Runtime Operation – Schema

xproto example

11

message ONUDevice (XOSBase){ option verbose_name = "ONU Device"; option description = "Represents a physical ONU device";

required manytoone pon_port->PONPort:onu_devices = 1:1001 [db_index = True]; required string serial_number = 2 [max_length = 254, db_index = False, tosca_key=True, unique = True]; required string vendor = 3 [max_length = 254, db_index = False]; required string device_type = 4 [help_text = "Device Type", default = "asfvolt16_olt", max_length = 254, db_index = False];

optional string device_id = 5 [max_length = 254, db_index = False, feedback_state = True]; optional string admin_state = 6 [choices = "(('DISABLED', 'DISABLED'), ('ENABLED', 'ENABLED'))", default="ENABLED", help_text = "admin_state", db_index = False]; optional string oper_status = 7 [help_text = "oper_status", db_index = False, feedback_state = True]; optional string connect_status = 8 [help_text = "connect_status", db_index = False, feedback_state = True];}

Page 12: XOS - Open Networking Foundation€¦ · XOS Operationalizes CORD Workflow Protobuf (xproto) Models TOSCA Workflows – Provision & Configure Services – Runtime Operation – Schema

From unification to coordination

12

Since we have a single unifying data model, services can use it to as a point of inter-service coordination…

Page 13: XOS - Open Networking Foundation€¦ · XOS Operationalizes CORD Workflow Protobuf (xproto) Models TOSCA Workflows – Provision & Configure Services – Runtime Operation – Schema

Coordinate – East/West

13

BackendComponents

Top-DownDirectives

Bottom-Up Activity

Inter-Component State

Page 14: XOS - Open Networking Foundation€¦ · XOS Operationalizes CORD Workflow Protobuf (xproto) Models TOSCA Workflows – Provision & Configure Services – Runtime Operation – Schema

Coordination Example

14

Authoritative state is held by different services• RCORD Subscriber Service

• Subscriber -> c_tag, s_tag, onu serial #, ip, mac, ...

• OLT Service

• OLTDevice -> name, switch_datapath_id, switch_port, set of ONUs, …

• ONUDevice -> onu serial #, admin_state, ...

Fabric Crossconnect Service needs to connect a subscriber to the Internet, uses information from RCORD Subscriber Service and OLT Service

(s_tag, switch_datapath_id, src_port, dest_port)

Page 15: XOS - Open Networking Foundation€¦ · XOS Operationalizes CORD Workflow Protobuf (xproto) Models TOSCA Workflows – Provision & Configure Services – Runtime Operation – Schema

Coordination Example

15

Authoritative state is held by different services

• RCORD Subscriber Service• Subscriber -> c_tag, s_tag, onu serial #, ip, mac, ...

• OLT Service

• OLTDevice -> name, switch_datapath_id, switch_port, set of ONUs, …

• ONUDevice -> onu serial #, admin_state, ...

Fabric Crossconnect Service needs to connect a subscriber to the Internet, uses information from RCORD Subscriber Service and OLT Service

(s_tag, switch_datapath_id, src_port, dest_port)

Page 16: XOS - Open Networking Foundation€¦ · XOS Operationalizes CORD Workflow Protobuf (xproto) Models TOSCA Workflows – Provision & Configure Services – Runtime Operation – Schema

Coordination often occurs in Model Policies

16

Properties of model policies• Triggered when models are created, updated, or deleted

• Causes changes to occur elsewhere in the data model

• Does not directly cause changes to occur in underlying services

Policy code resides in service-specific synchronizers

Page 17: XOS - Open Networking Foundation€¦ · XOS Operationalizes CORD Workflow Protobuf (xproto) Models TOSCA Workflows – Provision & Configure Services – Runtime Operation – Schema

Model Policies live in Synchronizer Containers

17

Policy

XOS CoreContainer

Foo SynchronizerContainer

"Foo Changed" "Update Bar"

Foo Bar

Page 18: XOS - Open Networking Foundation€¦ · XOS Operationalizes CORD Workflow Protobuf (xproto) Models TOSCA Workflows – Provision & Configure Services – Runtime Operation – Schema

Example: VOLT Service

18

Western neighbors• RCORD Service - Manages subscriber state

Eastern neighbors• Fabric Crossconnect Service - Connects OLT to BNG via switch

VOLTService

RCORD Service

Fabric XC Service

Page 19: XOS - Open Networking Foundation€¦ · XOS Operationalizes CORD Workflow Protobuf (xproto) Models TOSCA Workflows – Provision & Configure Services – Runtime Operation – Schema

VOLTServiceInstance Create/Update Policy

19

1. VOLTServiceInstance created

VOLTServiceInstance

ONU Device

RCORDSubscriber

(1) Create

Page 20: XOS - Open Networking Foundation€¦ · XOS Operationalizes CORD Workflow Protobuf (xproto) Models TOSCA Workflows – Provision & Configure Services – Runtime Operation – Schema

VOLTServiceInstance Create/Update Policy

20

1. VOLTServiceInstance created

2. FabricCrossconnectServiceInstance created and linked

VOLTServiceInstance

ONU Device

Fabric XC ServiceInstance

RCORDSubscriber

(1) Create (2a) Create

(2b) Link

Page 21: XOS - Open Networking Foundation€¦ · XOS Operationalizes CORD Workflow Protobuf (xproto) Models TOSCA Workflows – Provision & Configure Services – Runtime Operation – Schema

VOLTServiceInstance Create/Update Policy

21

1. VOLTServiceInstance created

2. FabricCrossconnectServiceInstance created and linked

3. Retrieve serial number from Subscriber

VOLTServiceInstance

ONU Device

Fabric XC ServiceInstance

RCORDSubscriber

(1) Create (2a) Create

(3) Query (2b) Link

Page 22: XOS - Open Networking Foundation€¦ · XOS Operationalizes CORD Workflow Protobuf (xproto) Models TOSCA Workflows – Provision & Configure Services – Runtime Operation – Schema

VOLTServiceInstance Create/Update Policy

22

1. VOLTServiceInstance created

2. FabricCrossconnectServiceInstance created and linked

3. Retrieve serial number from Subscriber

4. Attach ONUDevice matching serial number to VOLTServiceInstance

VOLTServiceInstance

ONU Device

Fabric XC ServiceInstance

RCORDSubscriber

(1) Create (2a) Create

(3) Query (2b) Link

(4) Link

Page 23: XOS - Open Networking Foundation€¦ · XOS Operationalizes CORD Workflow Protobuf (xproto) Models TOSCA Workflows – Provision & Configure Services – Runtime Operation – Schema

From coordination to Synchronization

23

Model policies operate within the data model.

Synchronizer containers also handle coordinating state between the data model and external services.

Page 24: XOS - Open Networking Foundation€¦ · XOS Operationalizes CORD Workflow Protobuf (xproto) Models TOSCA Workflows – Provision & Configure Services – Runtime Operation – Schema

Synchronize – North/South

24

BackendComponents

Top-DownDirectives

Bottom-Up Activity

Rendez-Vous State

Page 25: XOS - Open Networking Foundation€¦ · XOS Operationalizes CORD Workflow Protobuf (xproto) Models TOSCA Workflows – Provision & Configure Services – Runtime Operation – Schema

Example - Authorize an ONU

25

Operator uses API to add an ONU Serial number to whitelist• Create AttWorkflowDriverWhiteListEntry in data model

• Check to see if ONU is on the wrong PONPort:

• Set onu_state="DISABLED", authentication_state="AWAITING"

• Make REST call to Voltha to disable ONU

• Else:

• Make REST call to Voltha to enable ONU

• Wait for ONU activate event

• Wait for ONU authenticate event

• Set authentication_state="APPROVED", subscriber.status="ENABLED"

• … move on to DHCP state machine ...

Page 26: XOS - Open Networking Foundation€¦ · XOS Operationalizes CORD Workflow Protobuf (xproto) Models TOSCA Workflows – Provision & Configure Services – Runtime Operation – Schema

Example - Authorize an ONU

26

Page 27: XOS - Open Networking Foundation€¦ · XOS Operationalizes CORD Workflow Protobuf (xproto) Models TOSCA Workflows – Provision & Configure Services – Runtime Operation – Schema

Types of Synchronizer "Steps"

27

Sync Step• Apply data model state to an underlying service

• Keeps running until the job is done

• Example: OLTDevice has been created in XOS, so make REST call to create the OLT in Voltha

Delete Step• Delete an object in an underlying service

• Example: OLTDevice has been deleted in XOS, so make REST call to delete the OLT in Voltha

Page 28: XOS - Open Networking Foundation€¦ · XOS Operationalizes CORD Workflow Protobuf (xproto) Models TOSCA Workflows – Provision & Configure Services – Runtime Operation – Schema

Types of Synchronizer "Steps"

28

Pull Step• Poll and underlying service for state, apply to data model

• Example: Query Voltha via REST for ONUs, create ONUDevices in XOS

Event Step• Watch kafka for events

• Example: ONU connectivity status has changed, update ONUDevice in XOS

Page 29: XOS - Open Networking Foundation€¦ · XOS Operationalizes CORD Workflow Protobuf (xproto) Models TOSCA Workflows – Provision & Configure Services – Runtime Operation – Schema

Steps Also live in Synchronizer Containers

29

Sync Step

XOS CoreContainer

VOLT SynchronizerContainer

"OLTDevice Changed"

VOLT

VOLTHA

"UpdateOLT"

Page 30: XOS - Open Networking Foundation€¦ · XOS Operationalizes CORD Workflow Protobuf (xproto) Models TOSCA Workflows – Provision & Configure Services – Runtime Operation – Schema

Ways to get involved

30

• Integrate existing services• Cassandra• Nagios• CDN• ...

• Invent new services• Firewall VNF• Parental control VNF• ...