XOS service on board Concept.

XOS service note

Nick Ho 2018 3
nick133371@gmail.com

some useful guide

step by step ExampleService Tutorial

collateral

public note

1
2
3
github: open-cloud/xos/

xos/configurations/cord-pod/README-Tutorial.md

Basic Knowledge

Django

Rest API

Ansible

Lifecycle Management

Design Time Framework

Organized as a graph of Multi-Tenant Cloud Services

On-boarding Services is a Dstinct step

  • Service Developer provides Service Elements
  • Operator Configures Service Graph

Runtime framework

  • Interface to Provision and Scale Services
  • Interface to Instantiate adn Control Service Instances
  • Interface to Monitor Service Performance & Behavior

Cord Software Architecture

Key Takeaway

  • Service controllers consolidate all configuration and control
  • CORD Controller mediates all inter-service dependencies
  • CORD Controller provides a uniform interface to set of Service Controller

CORD controller

Contain the following components, running on the head node.

  • XOS DB container
    • contains the state of the dbn ata model
  • XOS container
    • Rest API (North-bound application enter, can do also copnfigure)
    • Admin GUI (Operator)
    • TOSCA (Config)
    • Data model (Django)
  • per synchronizer container per service
    activating that state to affect the backend system.
    • Openstack synchronizer
    • ONOS synchronizer
    • VNF synchronizer
  • Openstack
  • ONOS
  • VNF (Image)

Service Elements

  • REST Extension
  • GUI Extension
  • Tosca Extension
  • Model Definition
  • Synchronizer

all the above implement a service controller

  • VNF (image)

Synchronizer and State Management

|| PHASE 1 - Django Data Model (REST API)
||
|| (1) change notification
||
|| PHASE 2 - Synchronizer Framework (Activates data model)
||
|| (2) sync request
||
|| PHASE 3 - Sync plugin + Ansible Template
||
|| (3) generate recipe
||
|| PHASE 4 - Ansible
||
|| (4) operate on resources
||
|| PHASE 5 Backend Resources (Operational State)
V

Service Elements

Component Source code for service X
Django Model xos/services/X/model.py
synchronizer xos/synchronizers/X/X-synchronizer.py
xos/synchronizers/X/X_config
xos/synchronizers/X/steps/sync_X.py
xos/synchronizers/X/steps/X_playbook.yml
Admin GUI xos/services/X/admin.py
REST API xos/api/service/X.py
xos/api/tenant/Xtenant.py
TOSCA MODEL xos/api/service/X.py
Test/Documentation xos/tests/api/hooks.py
xos/tests/api/source/service/X.md
xos/tests/api/source/service/Xtenant.md

Onboard a service

  • Upload Add files to github repository
  • Register
    • Edit xos/setting.py
    • Edit tools/xos-manage
  • Configure
    • cd xos/configurations/cord-pod
    • Edit TOSCA (*.yaml) files
  • Build make containers
  • Instantiate
    • Create Service via admin GUI
    • Bind Service to slice via Admin GUI
    • Bind slice to VNF image