onap tosca orchestration with cloudify

21
TOSCA Native Service Orchestration Design DeWayne Filppi, Cloudify

Upload: cloudify-community

Post on 22-Jan-2018

189 views

Category:

Technology


4 download

TRANSCRIPT

Page 1: ONAP TOSCA Orchestration with Cloudify

TOSCA Native Service Orchestration DesignDeWayne Filppi, Cloudify

Page 2: ONAP TOSCA Orchestration with Cloudify

2

Agenda

• Declarative vs Imperative Approaches• Brief TOSCA Concept Review• Service Orchestration Modeling• ONAP Service Orchestration Modeling• R1 Review• R2 and Beyond

Page 3: ONAP TOSCA Orchestration with Cloudify

3

Declarative vs Imperative : The false choice

• Declarative separates what from how• Declarative defines a model (what) and an orchestrator (how)• Model provides enough info for orchestrator to remain generic• Pros

- The allure of no coding- Orchestrator implementation hidden- Simple versionable artifact(s)- Designer focus on value/solution

• Examples: HOT, CloudFormation, TOSCA, Kubernetes, Docker Compose, etc...

Page 4: ONAP TOSCA Orchestration with Cloudify

4

TOSCA Concepts

• Defines modeler and orchestrator roles• Object modeling basis ( Java like )• Binds models to implementations (APIs)• Imperative workflows in orchestrator interpret runtime model instance

VM

Port

Net

Generic Install Workflow

1

3

2

Page 5: ONAP TOSCA Orchestration with Cloudify

5

TOSCA Concepts - Types

• Types can be viewed as OO classes• Concrete instances are called nodes• Service templates/models consists of nodes and relationships• Types are defined by:

- A name- Optional properties- Runtime properties (attributes)- Interfaces (the connection to type

specific imperative processing)- Requirements & Capabilities /

Relationships

web_app: type: WebApp properties: port: 9090 requirements: - host: web_server interfaces: Standard: configure: scripts/configure.sh start: scripts/start.sh stop: scripts/stop.sh

Page 6: ONAP TOSCA Orchestration with Cloudify

6

TOSCA Concepts - Interfaces & Operations

• Nodes can have behavior ( imperative )• Interfaces are the means. Interfaces have:

- Names (e.g. tosca.interfaces.Standard )- Operations, which have

• An operation name• A code reference (e.g. path to script)

• Workflows recognize interfaces

VM

Port

Net

Generic Install Workflow

1

3

2

Recognizes implemented interface tosca.interfaces.Standard

Page 7: ONAP TOSCA Orchestration with Cloudify

7

TOSCA Concepts - Relationships

• Relationships can be implicit or explicit• Types in their own right• Used by workflows to order operations• Used to execute arbitrary code

VM

Port

Net

Generic Install Workflow

1

3

2

Order operation execution based on relationships

Page 8: ONAP TOSCA Orchestration with Cloudify

8

TOSCA Concepts - Service Templates

• Service templates are node graphs ( DAGs)

• Service templates can define inputs/parameters

• Service instances are created from the combination of inputs and service templates

• Service instances have runtime state (attributes)

Inputs

Service Template

Service+

Page 9: ONAP TOSCA Orchestration with Cloudify

9

TOSCA Service Orchestration Modeling

• Higher level than VNF modeling• “Plane” thinking meets traversal orientation

- Data plane- Control plane- Infrastructure “plane”- Networking “plane”- App “plane”

• Critical consideration for ONAP

Page 10: ONAP TOSCA Orchestration with Cloudify

10

TOSCA Service Orchestration Modeling

• TOSCA implicitly defines a designer role

• Opposing pressures: what is visible to designer vs what does platform supply

• TOSCA capable of modeling arbitrary level

• Long running processes

Designer

TypesTemplate

Horizon

Hidden System Internals

Page 11: ONAP TOSCA Orchestration with Cloudify

11

TOSCA Service Orchestration in ONAP

• TOSCA typically models APIs as components- Nouns are types- Adjectives are properties- Verbs are operations

• ONAP has many APIs, and many potential types/components- SNDC, OF, MultiVIM, APPC, AAI,

etc…• Naive approach: TOSCA types

for everything

Designer

AAI SDNC

APPC

OF

MultiVIM

IAAS

DCAE

Page 12: ONAP TOSCA Orchestration with Cloudify

12

TOSCA Service Orchestration in ONAP

Naive Approach Problems• Exposes internals

- Knowledge problem- Binding problem

• AAI connected to all• SDNC & OF need entire

template as input

Page 13: ONAP TOSCA Orchestration with Cloudify

13

Realistic TOSCA Service Orchestration in ONAP

• Need orchestrations that are correct but designable• Designer shouldn’t have to care about ONAP internals• Hiding places:

- Base types- TOSCA Orchestrator Workflows- Behind the scenes BPMN- Other ONAP internal code (e.g. adapters)

Page 14: ONAP TOSCA Orchestration with Cloudify

14

Realistic TOSCA Service Orchestration in ONAP

• AAI Hiding- AAI interactions are ubiquitous- Service instance creation

• First step in SO service orchestration• Adapter, BPMN, or TOSCA workflow hiding

- MultiVIM interactions• Either in MultiVIM, or in TOSCA base types

• SDNC/OF Hiding- Requires complete TOSCA model as input- Adapter, BPMN, or TOSCA workflow hiding

• MultiVIM : TOSCA base types• APPC & others: TOSCA base types

Page 15: ONAP TOSCA Orchestration with Cloudify

15

Realistic TOSCA Service Orchestration in ONAP

TOSCA ONAP base types in depth• A base type provides interfaces workflows recognize

- An interface for AAI related components might include operations• register• unregister• with default implementations

• A base type provides common properties- A base type for APPC might include connection information (with defaults)

• A VNF base type would have properties common to all VNFs- User supplied config via template inputs

• MultiVIM types include IAAS basics (image, instance, network, etc..)

Page 16: ONAP TOSCA Orchestration with Cloudify

16

Realistic TOSCA Service Orchestration in ONAP

Potential flow:

SDC

ONAP TOSCA Types

ONAP TOSCA Types

ONAP TOSCA Types

Template/CSAR

SO

VID

User Inputs

BPMN

Get assgns

Get assgns

TOSCA Orch.

SDNC OF

AAI MultiVIM

APPC

DCAE

Page 17: ONAP TOSCA Orchestration with Cloudify

17

TOSCA Orchestrator in SO: ARIA

ARIA Parser

TOSCA Simple Profile 1.0

ARIA Workflow Engine

Graph Declarative Workflows

Imperative Workflows

ARIA Plugins

Execution Plugins

ARIA Command Line Interface

IaaSPlugins

ARIA TOSCA App Developer SDK

CSAR Packager

TOSCA Reference Example Templates

TOSCA App Development Guide

TOSCA for NFV Profile 1.0(csd03)

Built-in DeclarativeWorkflows

SDNPlugins

NFVPlugins

ARIA Store

Models Store

Artifacts Store

Storage Driver(sqlalchemy)

Page 18: ONAP TOSCA Orchestration with Cloudify

18

ONAP R1 SO TOSCA

▪○ https://gerrit.onap.org/r/gitweb?p=so.git;a=tree;f=aria/aria-rest-server

○https://gerrit.onap.org/r/gitweb?p=so.git;a=tree;f=aria/aria-rest-java-client

▪○

https://gerrit.onap.org/r/gitweb?p=so.git;a=blob;f=packages/docker/src/main/docker/docker-files/Dockerfile.aria

▪○

https://gerrit.onap.org/r/gitweb?p=so.git;a=tree;f=aria/multivim-plugin

▪○

https://gerrit.onap.org/r/gitweb?p=demo.git;a=blob;f=tosca/vCPE/infra/base_vcpe_infra_rackspace_tosca.yaml

Requirements and R1 Contributions

Page 19: ONAP TOSCA Orchestration with Cloudify

19

ONAP R2 SO TOSCA

Full Integration With Core BPMN• Approach: Post SDNC/OF fork• Implications:

- ONAP Base types for AAI, MultiVIM, APPC- Python APPC/DMaaP API- SDC ONAP Base type integration (potentially)- SDNC & OF ONAP types recognition/compatibility- SO/ARIA BPMN recognition and handoff (via inputs)

• includes mapping tenant info to ARIA template names & processing outputs- ONAP aware workflows (at least install/uninstall)- DCAE init ( BPMN or TOSCA workflow )- Enhance/complete ARIA REST API, improve microservice impl

• Minimum proof of work: pure TOSCA vCPE install/uninstall

Page 20: ONAP TOSCA Orchestration with Cloudify

20

ONAP SO TOSCA Trajectory

• Validate/explore via other use/edge cases• Track MultiVIM enhancements to true multi-cloud• Enhance ARIA container for use as Kubernetes service• Enhance ARIA availability/failure recovery• Healing/Scaling/CLAMP integration• Day 2+ custom workflow support• Downstream/southbound BPMN operation invocation

Page 21: ONAP TOSCA Orchestration with Cloudify

THANK YOU