Home > OASIS TOSCA

OASIS TOSCA

Page 1
OASIS TOSCA
�� and how it could fit into OpenStack Heat OpenStack Design Summit, April 15th 2013
Thomas Spatzier, IBM (thomas.spatzier@de.ibm.com)

Page 2
Agenda
• TOSCA Overview and Examples • TOSCA Concepts Explained • About Encoding �� • Discussion: TOSCA and Heat
2

Page 3
Definition of building blocks for services �� along with the implementation artifacts for manageability operations �� and the definition of deployment artifacts for components �� including the definition of plans for orchestrating the application
What is TOSCA?
Service Template
Properties Interfaces Node Types Requirements Capabilities
Topology and Orchestration Specification for Cloud Applications
Topology Template Relationship Template Node Template type for
Cloud Service ARchive (CSAR)
----- ----- ----- ----- ----- ----- ----- -----
Scripts Installables Images
A language for defining Service Templates �� �� including a Topology Template describing the structure of a service Packaging format (CSAR) for packaging models and all related artifacts.
3
Interfaces Properties Relationship Types Plans
Definition of possible links between components
type for

Page 4
TOSCA TC Members
4
3M ActiveState Axway CA Technologies CenturyLink Cisco Citrix Cloudsoft EMC Fujitsu Google HP IBM Huawei Jericho Systems NetApp Nokia Siemens Pricewaterhouse Primeton Red Hat SAP Software AG VCE Vnomic WSO2 Zenoss

Page 5
1st Interop Example: SugarCRM
5
SugarCRMApp
[WebApplication]
SugarCRMDB
[MySQLDatabase]
PHPModule
[ApacheModule]
Apache
[ApacheWebServer]
MySQL
[MySQL]
connects to hosted on hosted on hosted on hosted on installed on depends on
Server4WebTier
[Server]
Server4DBTier
[Server]
hosted on hosted on
LinuxOS4Web
[OperatingSystem]
LinuxOS4DB
[OperatingSystem]

Page 6
Using TOSCA to model Applications
6
Deployment Artifact Node Type R C Implementation Artifact
Lan gu age TOSCA v1.0 spec
Relationship Type
��
��Orchestrator��
Deployed Instances
SugarCRMDB
[MySQLDatabase]
R C MySQL
[MySQL]
R C SugarCRMApp
[WebApplication]
R R
Tem p lates
Properties: DB Name: ��mysqldb�� �� Properties: Admin User: myadmin �� Properties: Context root: /mycrm �� Properties: HTTP Port: 8080 ��
Apache
[ApacheWebServer]
R C
start.sh MySQL Database R C start.sh RPMs: mysql mysql-server configure.sh MySQLDBConnection
Typ es
MySQLDBContainer Req. LinuxOS Req. MySQL R C
Primary focus for users

Page 7
Role of Relationships in Model Processing
7
NodeType ��Database�� C NodeType ��Application�� R
Lifecycle operations (create, configure, start, ��) are used by an orchestrator to create and manage components Connector concept Relationship Types declare what endpoints they can connect, and which processing logic they inject to establish a link at runtime Base Relationship Types HostedOn, DependsOn and ConnectsTo define the base semantics for processing topology models
RelationshipType ��DBConnection��
NodeTemplate ��MyDB�� C NodeTemplate ��MyApp�� R
is of type is of type is of type
• Use defined lifecycle operations to deploy and manage each component • If a component is related to another component, see if relationship injects additional processing logic (e.g. pre-configure endpoint) • Use base relationship types to derive processing order • Process a host before a hosted component (HostedOn) • Process a provider before a client (DependsOn, ConnectsTo) �� a pretty mechanical process

Page 8
How is a Topology processed?
• Use base relationship types to derive component processing order
– First process a host, then process hosted component – First process a component that another component depends on, then process the dependent component – First process a component that another component connects to, then process the connecting component
• For each component
– Deploy its Deployment Artifacts – Invoke lifecycle operations in right sequence (create, configure, start ��); their can be no-ops
• If a relationship contributes logic, inject it into component operation invocations
8
Web 1 Web 2 Web 3 Web 4 Web 5 DB 1 DB 2 DB 3 DB 4
relationship injects logic
DB 1 DB 2 DB 3 DB 4 Web 1 Web 2 Web 3 Web 4
create VM perform base OS config install and configure httpd install and configure php runtime create VM perform base OS config install and configure MySQL create and configure SugarCRM database
Web 5
install and configure SugarCRM app,
configure database endpoint properties
run in parallel wait for step ��DB 4�� to complete

Page 9
Some Application
Com p u te Sto rage arch = x86_64 cpus = 2 mem >= 4GB OS = Linux size >= 10GB Database provider = MySQL version >= 5.5
Requirements & Capabilities
9
Database Provider
Database Com p u te Sto rage
Requirements can be fulfilled explicitly by other components in the model Requirements can be fulfilled by the runtime Requirements/Capabilities are base for substitutability
Some Component R
Provider A
C
Provider B
C
Provider C
C
OR OR Some Application
Com p u te Sto rage arch = x86_64 cpus = 2 mem >= 4GB OS = Linux size >= 10GB Database provider = MySQL version >= 5.5

Page 10
Model Composition
10
Node Template Node Template
Service Template 1 Service Template 2 boundary definitions
Subsystems can be abstracted in some models. Other models can define details of subsystems. �� separation of concern, re-use

Page 11
Usage Scenarios for Model Composition & Substitution
11
Load Balancer VM Web Server VM
1..*
Web Server VM
Single node web tier Scalable web tier
WebApp WebTier App DB Tomcat MySQL VM VM Network Storage
Application Layer Platform Layer Infrastructure Layer
Custom workload Multiple options of middleware deployments Multiple options of infrastructure configurations
Varying deployment options Layering of models

Page 12
About Encoding ��
12
TOSCA is XML
The TOSCA TC decided to use XML and XML Schema as the normative way for defining the TOSCA language. But: The important thing about TOSCA are the concepts, not the encoding. Alternative encodings (e.g. JSON) can be defined as part of TOSCA vNext work.

Page 13
Alternative Encoding Example
13
<xs:schema ...> <xs:element name="ServerProperties" type="tServerProperties"/> <xs:complexType name="tServerProperties"> <xs:sequence> <xs:element name="NumCpus" default="1"> <xs:simpleType> <xs:restriction base="xs:int"> <xs:enumeration value="1"/> <xs:enumeration value="2"/> <xs:enumeration value="4"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="Memory" type="xs:int"/> </xs:sequence> </xs:complexType> </xs:schema> <NodeType name="Server"> <PropertiesDefinition element="tbase:ServerProperties"/> �� </NodeType> <TopologyTemplate> <NodeTemplate id=��MyServer" type="tbase:Server"> <Properties> <tbase:ServerProperties> <NumCpus>2</NumCpus> <Memory>4096</Memory> </tbase:ServerProperties> </Properties> ... </NodeTemplate> ... </TopologyTemplate> "NodeType" : { "name" : "Server", "properties" : [ { "name" : "NumpCpus", "type" : "integer", "options" : [1 ,2, 4] }, { "name" : "Memory", "type" : "integer", } ] ... } "TopologyTemplate" : { "NodeTemplates" : [ { "id" : "MyServer", "type" : "Server", "properties" : [ "NumCpus" : 2, "Memory" : 4096 ] }, ... ], ... }

Page 14
Now, how could it fit into Heat?
• It��s all about concepts: as longs as a pattern engine��s concepts and TOSCA are aligned, mapping to TOSCA as an external format is straight forward
– No need to use TOSCA as Heat��s core format
• Define a sub-set profile of TOSCA that is appropriate for use cases targeted by Heat • Define an alternative JSON rendering for TOSCA sub-set profile • Define a set of base Node- and Relationship Types for core OpenStack resources: Compute (Nova), Network (Quantum), Block Storage (Cinder), Object Storage (Swift)
– As natively supported types – Users do not have to care about defining TOSCA types, but can just start defining templates
• Use implementation to improve and refine the TOSCA standard; use standardized concepts to shape implementation
14

Page 15
Learn more about TOSCA
TOSCA Specification, Version 1.0 Committee Specification 01, 18 March November 2013,
http://docs.oasis-open.org/tosca/TOSCA/v1.0/cs01/TOSCA-v1.0-cs01.pdf
TOSCA Primer, Version 1.0 Committee Note Draft (CND) 01, Public Review Draft 01, 31 January 2013,
http://docs.oasis-open.org/tosca/tosca-primer/v1.0/cnd01/tosca-primer-v1.0-cnd01.pdf
TOSCA Implementer's Recommendations for Interoperable TOSCA Implementations, Version 1.0 Interoperability Subcommittee, Working Draft 01, Rev. 02, 14 January 2013,
http://www.oasis-open.org/committees/document.php?document_id=47888&wg_abbrev=tosca-interop
TOSCA Interoperability Subcommittee, SugarCRM Scenario Sample CSAR Preliminary Draft CSAR for Interop. Testing against TOSCA v1.0 Specification,
http://www.oasis-open.org/committees/document.php?document_id=47585&wg_abbrev=tosca-interop
15
Search more related documents:OASIS TOSCA
Download Document:OASIS TOSCA

Set Home | Add to Favorites

All Rights Reserved Powered by Free Document Search and Download

Copyright © 2011
This site does not host pdf,doc,ppt,xls,rtf,txt files all document are the property of their respective owners. complaint#nuokui.com
TOP