TOSCA workflows. Default workflow is declarative (generated from nodes and relationships) install at the beginning of install workflow all instances are.

Slides:



Advertisements
Similar presentations
Why Do We Need a (Plan) Portability API? Gerd Breiter Frank Leymann Thomas Spatzier.
Advertisements

TOSCA SugarCRM Deployment
TOSCA Workloads with OpenStack Heat-Translator
IBM Proof of Technology Discovering the Value of SOA with WebSphere Process Integration © 2005 IBM Corporation SOA on your terms and our expertise WebSphere.
TOSCA Interoperability Demonstration
Copyright © 2006 Pilothouse Consulting Inc. All rights reserved. Workflow Development Overview Architecture Requirements Types of workflows Stages of workflow.
Oracle Data Integrator Procedures, Advanced Workflows.
TOSCA Name Used by (Roles)Modeling conceptDistinguishing traitsNotes Node TypeType Developers Experts that fully understand, package an constrain, properties,
Objective: Enable portability and semi-automatic management of applications across clouds regardless of provider platform or infrastructure thus expanding.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
TOSCA Workflows Use Cases.
Design and implementation Chapter 7 – Lecture 1. Design and implementation Software design and implementation is the stage in the software engineering.
Copyright 2007, Information Builders. Slide 1 iWay Web Services and WebFOCUS Consumption Michael Florkowski Information Builders.
Introduction to OOAD and UML
Instance Model Considerations Instance Model Objectives Provide complete representation of the state of a TOSCA service template deployment.
1 Team Skill 3 Defining the System Part 1: Use Case Modeling Noureddine Abbadeni Al-Ain University of Science and Technology College of Engineering and.
Use Cases Discuss the what and how of use cases: Basics Examples Benefits Parts Stages Guidelines.
SDN-O LCM for Mercury Release Key Points and Overview
Joy Rathnayake Senior Architect – Virtusa Pvt. Ltd.
TOSCA Workflow Proposal
Graphical Data Engineering
Introduction to UML.
Lesson # 9 HP UCMDB 8.0 Essentials
Essentials of UrbanCode Deploy v6.1 QQ147
Service Delivery and Governance
Provisioning of RAC Database on configured Stack
Unified Modeling Language
Behavioral Design Patterns
Service Delivery and Governance
Activity and State Transition Diagram
Abstract Major Cloud computing companies have started to integrate frameworks for parallel data processing in their product portfolio, making it easy for.
Use Case Model Use case description.
DF design as a node type.
OASIS TOSCA Report for December ONAP Modeling Workshop
Usecase 1 – Upgrade Image
TOSCA Matching Or how the orchestrator provides implementation for abstract nodes or dangling requirements.
Cloud Application Marketplaces
DF design as a node type (output by Chris and shitao)
DF design as a node type (output by Chris and shitao)
Enhancements for Simple YAML Profile v1.2
TOSCA Workflow Proposal
20409A 7: Installing and Configuring System Center 2012 R2 Virtual Machine Manager Module 7 Installing and Configuring System Center 2012 R2 Virtual.
Weaving Abstractions into Workflows
Cloud Application Marketplaces
Instance Model Structure
Service Model Monitoring Cloud Application Marketplaces
TOSCA workflows.
Cloud Application Marketplaces
Cloud Application Marketplaces
Cloud Application Marketplaces
Systems Analysis and Design in a Changing World, 6th Edition
Service Delivery and Governance
Presented By - Avinash Pawar
DF design as a node type (output by Chris and shitao)
Module 01 ETICS Overview ETICS Online Tutorials
Analysis models and design models
Cloud Application Marketplaces
Chapter 7 –Implementation Issues
Visual Modeling Using Rational Rose
Lifecycle Management Automation through TOSCA
Overview of Workflows: Why Use Them?
Applying Use Cases (Chapters 25,26)
TOSCA v1.3 Enhancements February 21, 2019.
Cloud Application Marketplaces
Controller Design Studio – Architecture & Design
Lab 8: GUI testing Software Testing LTAT
Frieda meets Pegasus-WMS
WP3: BPaaS Research Execution Environment
Task 55 Scope – TOSCA Profile
TOSCA Orchestration Paradigm
Presentation transcript:

TOSCA workflows

Default workflow is declarative (generated from nodes and relationships) install at the beginning of install workflow all instances are in initial state. at the end of install workflow all planned instances must be in started state uninstall at the end of uninstall workflow all instances must be in deleted state Multiple solutions to allow users customize workflows Imperative Full override Partial override Declarative improvements Various solutions are not exclusive 2

Full workflow override Upsides Simple from orchestrator perspective User has a full-vision and understanding of the workflow No doubt on TOSCA default workflow weaving (dependencies and sequencing between related nodes). Downsides Can be fastidious to write without tools Workflow is specific to a given topology template 3

Full workflow override Inspired by mistral Adapted for TOSCA Simplified declaration Simplification, no need for inputs and outputs that are already defined on operations and using get_operation_output 4

Full workflow override topology_template: workflows: description: inputs: # (can be used from operations using get_input as in standard topology template) steps: # map of steps : node: requirement: # name of the requirement/relationship of the node activities: # sequence of activities to be executed in a sequential way - : on-success: - 5 topology_template: workflows: description: inputs: # (can be used from operations using get_input as in standard topology template) steps: # map of steps : node: requirement: # name of the requirement/relationship of the node activity: # sequence of activities to be executed in a sequential way : on-success: - Single activity per step Or allow multiple sequential activities per step ?

6 Activity typedescription delegateActivity to be used when a node is not provided by a user but should be provided by the orchestrator engine (Compute, BlockStorage etc.). For such node weaving operations of relationships that are not also provided by the orchestrator should be prohibited. set_stateChange the state of a node to a given state. call_operationCall the operation of the specified node (or one of it’s relationship). Inputs of the operation are defined on the operation element. Full workflow override Delegate activity is important for portability in some use-cases Orchestrator to provide nodes (Compute, BlockStorage etc.) where implementation can be specific Reusability of existing services (an existing Oracle DB on the cloud to be matched against an abstract DB node in the topology one one cloud vs. creating one on the fly on another cloud)

Full workflow override The on-success values are used to build the workflow graph. All steps that have a on-success defined to a given step should be executed before it (join). All steps that doesn’t have a predecessor are considered as initial step and can run in parallel. All steps that doesn’t have a successor are considered as final. The TOSCA parser/validator SHOULD ensure that all nodes MUST reach the started state at the end of the install workflow all nodes MUST reach the deleted state at the end of the uninstall workflow 7

Full workflow override 8 steps: A: on-success: - B - C B: on-success: - D C: on-success: - D D: E: on-success: - C - F F: A CB D E F

Sample: 9 compute tosca.nodes.Compute Capabilities Container HostedOn tomcat Tomcat Requirements Host mysql MySQL Requirements Host HostedOn compute started mysql creating tomcat creating mysql create mysql createdtomcat created tomcat create mysql start tomcat start mysql starting mysql started Tomcat starting Tomcat started

10 topology_template: workflows: install: description: Workflow to deploy the application steps: Compute_install: target: compute activities: - delegate: install on-success: - Mysql_initial - Tomcat_initial Tomcat_initial: target: tomcat activities: - set_state: creating - call_operation: tosca.interfaces.node.lifecycle.Standard.create - set_state: created on-success: - Tomcat_starting Mysql_initial: node: Mysql activities: - set_state: creating - call_operation: tosca.interfaces.node.lifecycle.Standard.create - set_state: created - set_state: starting - call_operation: tosca.interfaces.node.lifecycle.Standard.start - set_state: started on-success: - Tomcat_starting Tomcat_starting: target: tomcat activities: - set_state: starting - call_operation: tosca.interfaces.node.lifecycle.Standard.start - set_state: started on-success: - Tomcat_starting Sample

Partial workflow override Upsides Easier to write if a user has no tool Downsides May be prone to errors as it may be harder to understand what will be added or not by the TOSCA orchestrator (no automatic weaving should be done between steps that are defined in an implicit workflow). Only for install and uninstall workflows ? Custom workflows and other scenarios will anyway probably require a full-workflow describtion Workflow is specific to a given topology template 11 Work in progress

Partial workflow override 12 topology_template: workflows: description: inputs: # (can be used from operations using get_input as in standard topology template) partials: steps: # map of steps for the partial workflow : node: requirement: # name of the requirement/relationship of the node activities: # sequence of activities to be executed in a sequential way - : on-success: - Similar to full workflow override but you can have more than one partial workflow. Partial workflow let the orchestrator generate the workflow of nodes before the Work in progress

Declarative workflows improvements (TOSCA-219) Upsides Can onboard ‘workflow updates’ on types and make them reusable (not specific to a topology template) Downsides Less focused on reusability on a specific existing workflow for a specific topology (need to get into TOSCA declarative workflow logic) 13

Declarative workflows improvements Add elements to instruct the declarative workflows for types Node Types Relationships Types Allow to override them on templates (like interfaces) 14

Declarative workflows improvements 15 node_types: : workflows: # Defines the workflow for the given node. : steps: # map of steps (you can even do some things in parallel for a single node if that make sense) : activities: # sequence of activities to be executed in a sequential way - : on-success: - Work in progress

Declarative workflows improvements 16 Work in progress node_types: tosca.nodes.Root: workflows: install: steps: install_sequence: activities: - set_state: creating - call_operation: tosca.interfaces.node.lifecycle.Standard.create - set_state: created - set_state: configuring - call_operation: tosca.interfaces.node.lifecycle.Standard.configure - set_state: configured - set_state: starting - call_operation: tosca.interfaces.node.lifecycle.Standard.start - set_state: started uninstall: steps: uninstall_sequence: activities: - set_state: stopping - call_operation: tosca.interfaces.node.lifecycle.Standard.stop - set_state: stopped - set_state: deleting - call_operation: tosca.interfaces.node.lifecycle.Standard.delete - set_state: deleted

Declarative workflows improvements 17 relationship_types: tosca.relationships.ConnectsTo: workflow: install: # name of the workflow for wich the weaving has to be taken in account source_weaving: # Instruct how to weave some tasks on the source workflow (executed on SOURCE instance) - after: configuring # instruct that this operation should be weaved after the target reach configuring state wait_target: created # add a join from a state of the target activity: tosca.interfaces.relationships.Configure.pre_configure_source - before: configured # instruct that this operation should be weaved before the target reach configured state activity: tosca.interfaces.relationships.Configure.post_configure_source - before: starting wait_target: started # add a join from a state of the target - after: started activity: tosca.interfaces.relationships.Configure.add_target target_weaving: # Instruct how to weave some tasks on the target workflow (executed on TARGET instance) - after: configuring # instruct that this operation should be weaved after the target reach configuring state after_source: created # add a join from a state of the source activity: tosca.interfaces.relationships.Configure.pre_configure_target - before: configured # instruct that this operation should be weaved before the target reach configured state activity: tosca.interfaces.relationships.Configure.post_configure_target - after: started activity: tosca.interfaces.relationships.Configure.add_source Work in progress