TOSCA Normative Types Proposal Internal Working Draft v0.5 Submitter: Matt Rutkowski.

Slides:



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

Mapping Service Templates to Concrete Network Semantics Some Ideas.
Proposal by CA Technologies, IBM, SAP, Vnomic
TOSCA Normative Types Proposal Internal Working Draft v0.3 Submitter: Matt Rutkowski.
Docker Container Modeling Goals Goals (not requirements) Not proliferate Node Types for “Docker” 1.Consider modeling “Docker” as an (explicit) runtime.
TOSCA SugarCRM Deployment
FI-WARE – Future Internet Core Platform FI-WARE Cloud Hosting July 2011 High-level description.
Software Component (Container + Containee) Software Component (Container + Containee) WebServer HostedOn Compute (Container) Compute (Container) Exploring.
Software Component (Container + Containee) Software Component (Container + Containee) WebServer HostedOn Compute (Container) Compute (Container) Exploring.
Topology and Orchestration Specification for Cloud Applications (TOSCA) Standard TOSCA Interoperability Demonstration Join the TOSCA Technical Committee.
Chapter 2 Database System Concepts and Architecture
TOSCA Workloads with OpenStack Heat-Translator
Software Component (Container + Containee) Software Component (Container + Containee) WebServer HostedOn Compute (Container) Compute (Container) Exploring.
Additional SugarCRM details for complete, functional, and portable deployment.
TOSCA Interoperability Demonstration
Cloud Computing Why is it called the cloud?.
Cloud Computing for the Enterprise November 18th, This work is licensed under a Creative Commons.
Database System Concepts and Architecture Lecture # 3 22 June 2012 National University of Computer and Emerging Sciences.
Hybrid-Cloud App Consuming External Services Sketches of Hybrid Cloud Apps using On-Premise Services…
PHP With Oracle 11g XE By Shyam Gurram Eastern Illinois University.
M.A.Doman Short video intro Model for enabling the delivery of computing as a SERVICE.
Proposal by CA Technologies, IBM, SAP, Vnomic
Architecting Web Services Unit – II – PART - III.
SugarCRM LAMP App Deployment Usecase IBM Vnomic. 2 Objective Using an application which is simple, but also presents the most fundamental deployment challenges,
Topology and Orchestration Specification for Cloud Applications (TOSCA) Standard TOSCA Interoperability Demonstration Join the TOSCA Technical Committee.
TOSCA Monitoring Working Group Status Roger Dev June 17, 2015.
Software Component (Container + Containee) Software Component (Container + Containee) WebServer HostedOn Compute (Container) Compute (Container) Exploring.
Kind: “Pod” (i.e. Type) kind: “Pod” (i.e. Type) Kubernetes Analysis: 2 types of containers “Dumb” (no HA, no Autoscale) = Pod Template kind: “ReplicationController”
TOSCA Name Used by (Roles)Modeling conceptDistinguishing traitsNotes Node TypeType Developers Experts that fully understand, package an constrain, properties,
SugarCRM Use Case: Plans 1. Reminder When a service template is deployed, its implementation artifacts are deployed – From that time on, the operations.
Objective Propose a simple and concise set of “Core” Entities and Relations for TOSCA useful for any application deployment in a cloud Enable users to.
Elmasri and Navathe, Fundamentals of Database Systems, Fourth Edition Copyright © 2004 Pearson Education, Inc. Slide 2-1 Data Models Data Model: A set.
Chapter 2 Database System Concepts and Architecture Dr. Bernard Chen Ph.D. University of Central Arkansas.
Demos Components Resources Generic Command Execution SQL Profiles Application Hosts Service Settings Lifecycle Create Template Customize Deploy Service.
Visual Studio Windows Azure Portal Rest APIs / PS Cmdlets US-North Central Region FC TOR PDU Servers TOR PDU Servers TOR PDU Servers TOR PDU.
SugarCRM Service Template
© Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice. TOSCA 115 Capability Interfaces.
Windows Azure Virtual Machines Anton Boyko. A Continuous Offering From Private to Public Cloud.
Block Storage 1: Using the normative AttachesTo Relationship Type my_server Compute Attributes private_address public_address networks ports Requirements.
Normative Types & connectsTo The RelationshipType base type of “connectsTo” in the current draft on Normative Types in Tosca seems to be incomplete. In.
Kind: “Pod” (i.e. Type) kind: “Pod” (i.e. Type) Kubernetes Analysis: 2 types of containers “Dumb” (no HA, no Autoscale) = Pod Template kind: “ReplicationController”
Hybrid-Cloud App Consuming External Services Sketches of Hybrid Cloud Apps using On-Premise Services…
TOSCA Interoperability Demonstration
2) Database System Concepts and Architecture. Slide 2- 2 Outline Data Models and Their Categories Schemas, Instances, and States Three-Schema Architecture.
Topology and Orchestration Specification for Cloud Applications (TOSCA) Standard TOSCA Interoperability Demonstration Join the TOSCA Technical Committee.
© Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice. TOSCA 115 Capability Interfaces.
Objective Propose a simple and concise set of “Core” Entities and Relations for TOSCA useful for any application deployment in a cloud Enable users to.
ISC321 Database Systems I Chapter 2: Overview of Database Languages and Architectures Fall 2015 Dr. Abdullah Almutairi.
TOSCA Interop SC – Proposed Timeline for Discussion Revised Sept 10, 2012 Matt Rutkowski.
Instance Model Considerations Instance Model Objectives Provide complete representation of the state of a TOSCA service template deployment.
Evaluate container lifecycle support in TOSCA TOSCA – 174 Adhoc TC.
Databases (CS507) CHAPTER 2.
TOSCA Workflow Proposal
Mapping between NFV model and TOSCA
Chapter 2 Database System Concepts and Architecture
Kubernetes Analysis: 2 types of containers
TOSCA Interoperability Demonstration
TOSCA Matching Or how the orchestrator provides implementation for abstract nodes or dangling requirements.
Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 2 Database System Concepts and Architecture.
Managing Clouds with VMM
Chapter 2 Database Environment Pearson Education © 2009.
TOSCA Workflow Proposal
Cloud computing mechanisms
Managing Services with VMM and App Controller
* Introduction to Cloud computing * Introduction to OpenStack * OpenStack Design & Architecture * Demonstration of OpenStack Cloud.
Lifecycle Management Automation through TOSCA
Chapter 2 Database Environment Pearson Education © 2009.
Chapter 2 Database Environment Pearson Education © 2009.
06 | SQL Server and the Cloud
Presentation transcript:

TOSCA Normative Types Proposal Internal Working Draft v0.5 Submitter: Matt Rutkowski

Proposed Normative (Base) Node Types – Viewed as “layers”

Structural Types

: RootNodeType – Part 1 Properties nametypePrescription default description name (component name) stringoptionalN/AComponent or service common name This is different than the Node’s “name” attribute or its “ID”. It is a property that can be matched via a requirement. (e.g. for MySQL Community Edition, name=“MySQL CE”) version (component version) stringoptionalN/AComponent or service’s version. (e.g. for “MySQL”, version might be “5.0.9” Definition: The fundamental type that all TOSCA NodeTypes derive from. Interfaces namedescription InstallFormerly “create” configure- start- stop- uninstallFormerly “delete” suspendCIMI, OpenStack pauseCIMI, OpenStack captureCIMI restoreCIMI Requirements namerequirementTypelowerboundupperboundconstraints N/A---- Capabilities namecapabilityTypelowerboundupperboundconstraints N/A--- * Cells shaded in blue indicate suggested new interfaces (operations that correspond to “compute” and “storage”

: RootNodeType – Part 2 Definition: The fundamental type that all TOSCA NodeTypes derive from. InstanceStates state Allowed operations description installinguninstallBeing installed. startingstop, uninstallBeing started. startedstop, uninstall (pause, suspend, capture, restore, restart) Available and ready for use. configuring?Should “configure” be assumed to be part of “starting”? stoppingstart, stop, uninstall (restart)Being stopped. stoppedstart, uninstall (capture, restore, restart) Powered off; no saved CPU or memory state. uninstallingBeing uninstalled. Note this applies to a CIMI Machine, CIMI Volume, CIMI Network restartIFF this is justifiable different than a “stop” followed by a “start” pausingBeing paused. Allowable actions : start, restart, and delete. pausedResources remain instantiated ; processing stopped; not enabled for tasks. Allowable actions: start, restart, backup, restore, delete. (sleep) suspendingMachine being suspended. Allowable actions when in this state are: start, restart, and delete. suspendedmachine and its virtual resources are stored on non-volatile storage. (hibernate) errorCIMI Machine, CIMI Volume, CIMI Network capturingCIMI Volume (snapshot), could apply to VMs? availableCIMI Volume (perhaps use started instead?) Notes: If lifecycle operations are sequential (i.e. rely upon script completion) then perhaps allowing operations for “transitional” states do not make sense. Seems to help “imperative” models more so than declarative The set of Potential InstanceState values available for any node:

RootNodeType: Tier (this is a “grouping” type) Definition A tier is a topological concept used to describe sets of nodes (or sub-topologies) that can be deployed and managed as a single logical processing element with specific scalability, availability and other group-wise semantics while supporting a specific kind of application processing (sometimes referred to as “roles”). Tiers that support the same kind of application processing are substitutable. The application processing capability of a tier is a function of the kinds of application components which are hosted by its constituent compute elements. The tier’s scaling discipline defines how and when the capacity of the tier is adjusted. Requirements namerequirementTypelowerboundupperboundconstraints N/A---- Capabilities namecapabilityTypelowerboundupperboundconstraints nodesServerContainerCapability0unboundedTBD – It seems that “tiers” should capable of containing any type of nodes not just servers. InstanceStates statedescription N/A- Interfaces nameparmsdescription N/A-- Properties nametypePrescription default description minInstancesintegerRequired1Minimum number of instances for scaling tier (range 1 - N). maxInstancesintegerRequired1Maximum number of instances for scaling tier (range 1 - N). * This is primarily a grouping concept for scaling. Is there a better way?

IaaS Types

RootNodeType : Compute (formerly Server) Definition An instantiated compute resource that encapsulates both CPU and Memory. Ideally, this would support a “built-in” host OS (or platform API), as many typical / common use cases assume one. Interfaces nameparmsdescription N/A Requirements namerequirementTypelowerboundupperbounddescription containerServerContainerRequirement01Optional. Capabilities namecapabilityTypelowerboundupperbounddescription osOperatingSystemContainerCapability01Optional Runtime Capability VMCapability Properties (ServerProperties) NametypePrescription default descriptionrestriction cpuArchstringOptionalN/A numCpusintegerRequired1Number of CPUs: Number of CPUs (for the virtual machine). How does this value factor with “Tier” for scaling? Note: These could be “virtual” CPUs Restricted only by provider capability? memoryintegerRequiredN/A?Memory (in MB): Amount of memory (for the virtual machine) - Same as above? diskintegerRequiredN/A?Disk (in GB): Amount of disk space to allow execution of the application (e.g. for the Virtual Machine) Perhaps define a type based on “integer” that represents “storage size” Megabytes to be used by both memory and disk properties (and elsewhere) -same as above?

RootNodeType : Storage Definition TBD Requirements namerequirementTypelowerboundupperboundconstraints TBD Capabilities namecapabilityTypelowerboundupperboundconstraints TBD InstanceStates statedescription N/A- Interfaces nameparmsdescription N/A Properties nametypePrescription default description TBD

RootNodeType : Network Definition TBD Requirements namerequirementTypelowerboundupperboundconstraints TBD Capabilities namecapabilityTypelowerboundupperboundconstraints TBD InstanceStates statedescription N/A- Interfaces nameparmsdescription N/A Properties nametypePrescription default description logicalNamestringLogical network name

RootNodeType : OperatingSystem (Optionally merge as a property of “Compute” Node Type) Definition TBD – This is typically a guest OS. Ideally, if indeed for 99% of use cases it is simply an OSType and version would like to flatten this conceptually as properties on Server/VM Requirements namerequirementTypelowerboundupperboundconstraints containerOperatingSystemContainerRequirement11 Capabilities namecapabilityTypelowerboundupperboundconstraints softwareSoftwareContainerCapability0unbounded InstanceStates statedescription N/A- Interfaces nameparmsdescription N/A Properties nametypePrescription default description OSstringOptionalN/AOpeerating System name (e.g. “Ubuntu”). Note: Still an option to to model OS independently. OSVersionstringOptionalN/AOperationg System version (e.g. “12.04)”. Still an option al to model OS independently.

Runtime (PaaS) Types

RootNodeType : WebServer Definition TBD – Ideally, would like to move towards an “Application Runtime” (indicates additive APIs / language to the OS) since that is its primary purpose. Requirements namerequirementTypelowerboundupperboundconstraints containerSoftwareContainerRequirement11 Capabilities namecapabilityTypelowerboundupperboundconstraints webappsWebApplicationContainerCapability0unbounded InstanceStates statedescription N/A- Interfaces nameparmsdescription N/A Properties nametypePrescription default description N/A

RootNodeType : DBMS Definition TBD Requirements namerequirementTypelowerboundupperboundconstraints containerSoftwareContainerRequirement11 Capabilities namecapabilityTypelowerboundupperboundconstraints databasesDatabaseContainerCapability0unbounded InstanceStates statedescription N/A- Interfaces nameparmsdescription N/A Properties nametypePrescription default description N/A

Application (Software) Types

RootNodeType : SoftwareComponent Definition Provides a simple means to define a generic software component to be modeled and referenced while allowing scripts to be invoked, etc. (Chef cookbooks run etc.) as part of the topology. Requirements namerequirementTypelowerboundupperboundconstraints Capabilities namecapabilityTypelowerboundupperboundconstraints InstanceStates statedescription N/A- Interfaces nameparmsdescription Properties nametypePrescription default description TBD

RootNodeType : WebApplication Definition TBD – “Web” is unecessary, any “Application” with exported endpoints is valid, perhaps just use “Application” Requirements namerequirementTypelowerboundupperboundconstraints containerSoftwareContainerRequirement11 Capabilities namecapabilityTypelowerboundupperboundconstraints N/A InstanceStates statedescription N/A- Interfaces nameparmsdescription N/A Properties nametypePrescription default description N/A

RootNodeType : Database Definition TBD Requirements namerequirementTypelowerboundupperboundconstraints containerDatabaseContainerRequirement11 Capabilities namecapabilityTypelowerboundupperboundconstraints clientsDatabaseEndpointCapability (ConnectionTarget?) 0unbounded InstanceStates statedescription N/A- Interfaces nameparmsdescription N/A Properties nametypePrescription default description TBD DBNameLogical DB Name DBUserAdmin only? DBPasswordAdmin only? DBPortCould this be supplied by “connection” along with IP?

Composite Node Types (Need mechanism for compositing nodes for substitution)

AppLayer (Composite NodeType) (as a Service Template) AppLayer (Composite NodeType) (as a Service Template) PaaSLayer (Composite NodeType) (as a Service Template) -At its simplest a, “ApplicationRuntime” environment PaaSLayer (Composite NodeType) (as a Service Template) -At its simplest a, “ApplicationRuntime” environment IaaSLayer (Composite NodeType) (as a Service Template) IaaSLayer (Composite NodeType) (as a Service Template) Public (Quantum) Network Public (Quantum) Network SugarCRM with abstract Layers (Node Types) allowing substitution VM (Nova) Compute VM (Nova) Compute Apache WebServer Apache WebServer SugarCRMApp Web Application SugarCRMApp Web Application Linux Operating System Linux Operating System 1..n IaaSLayer Layer IaaSLayer Layer PaaSLayer Layer PaaSLayer Layer Storage (Cinder) Storage Storage (Cinder) Storage == hostedOn PHPModule Apache Module PHPModule Apache Module DependsOn hostedOn DependsOn SugarCRMApp Web Application SugarCRMApp Web Application hostedOn DependsOn

RootNodeType : ApplicationRuntime (Composite Runtime Environment) Definition Implies a WebServer + one or more LangaugeRuntimes (e.g. PHP, Java, etc.)? Requirements namerequirementTypelowerboundupperboundconstraints Capabilities namecapabilityTypelowerboundupperboundconstraints InstanceStates statedescription N/A- Interfaces nameparmsdescription RuntimesDictionary of language runtimes/versions? (e.g. “Java” “6.0”, “Python” “2.6”, etc.) TBD Properties nametypePrescription default description TBD

RelationshipTypes

: RootRelationshipType Abstract Interfaces nameparmsdescription preConfigureOptionalTBDNodes on either end of any relationship should support a “pre- configuration” operation (e.g. “preConnect”) configureOptionalTBDNodes on either end of any relationship should support a “configuration” operation (e.g. “connect”) postConfigureOptionalTBDNodes on either end of any relationship should support a “post- configuration” operation. (e.g. “postConnect”) Properties nametypePrescription default description Definition The fundamental type that all TOSCA RelationshipTypes derive from. InstanceStates statedescription N/A-

RootRelationshipType : HostedOn ValidSource typeRefdescription ContainerRequirementRootRequirementType ValidTarget namedescription ContainerCapabilityRootCapabilityType Interfaces nameparmsdescription TBD Properties nametypePrescription default description TBD Definition Relationship that indicates a node can “host” or contain another node of a specified type. For example: a Database node is “hostedOn” a DBMS (Database Management System) node a WebServer node is “hostedOn” a n OperatingSystem node. InstanceStates statedescription N/A-

RootRelationshipType : ConnectsTo ValidSource typeRefdescription EndpointRequirementRootRequirementType ValidTarget namedescription EndpointCapabilityRootCapabilityType Interfaces nameparmsdescription TBD Properties nametypePrescription default description TBD Definition Relationship that indicates a node can “connect” to another node of a specified type. For example: A WebApplication node “connectsTo” a Database node. Known Subclasses IPEndpointRequreiment, HTTPEndpointRequirement, IPEndpointCapability, HTTPEndpointCapability Can we not flatten??? Using properties such as “protocol” (or protocol list?) InstanceStates statedescription N/A-

RootRelationshipType : DependsOn ValidSource typeRefdescription FeatureRequirementRootRequirementType ValidTarget namedescription FeatureCapabilityRootCapabilityType Interfaces nameparmsdescription TBD Properties nametypePrescription default description TBD Definition Relationship that indicates a node is “dependent” on another node of a specified type. For example: A PHP runtime “dependsOn”an Apache web server InstanceStates statedescription N/A-

ArtifactTypes

: RootArtifactType Definition The fundamental type that all TOSCA Artifact Types derive from. Known Subclasses name="ScriptArtifact" PropertiesDefinition element="tns:ScriptArtifactProperties" name="FileArtifact“ None name="ArchiveArtifact“ PropertiesDefinition element="tns:ArchiveArtifactProperties" name="OsPackageArtifact“ PropertiesDefinition element="tns:OsPackageArtifactProperties“ name="UserContentArtifact“ PropertiesDefinition element="tns:UserContentArtifactProperties“ name="RPMGroupArtifact“ PropertiesDefinition element="tns:RPMGroupArtifactProperties"

SugarCRM Variant Use Cases

WebTier ScalableTier WebTier ScalableTier ApacheVM Compute ApacheVM Compute Apache WebServer Apache WebServer SugarCRMApp Web Application SugarCRMApp Web Application DBTier Tier DBTier Tier MySqlVM Server MySqlVM Server MySQL DBMS MySQL DBMS SugarCRM Database SugarCRM Database ApacheLinuxOS Operating System ApacheLinuxOS Operating System MySqlLinuxOS Operating System MySqlLinuxOS Operating System Advanced SugarCRM Scenario: SugarCRM with Networking 1..n 1 1 Public Network Public Network Private Network Private Network hostedOn PHPModule Apache Module PHPModule Apache Module DependsOn hostedOn ConnectsTo

WebTier ScalableTier WebTier ScalableTier ApacheVM Compute ApacheVM Compute Apache WebServer Apache WebServer SugarCRMApp Web Application SugarCRMApp Web Application DBTier Tier DBTier Tier MySqlVM Server MySqlVM Server MySQL DBMS MySQL DBMS SugarCRM Database SugarCRM Database ApacheLinuxOS Operating System ApacheLinuxOS Operating System MySqlLinuxOS Operating System MySqlLinuxOS Operating System Advanced SugarCRM Scenario: SugarCRM with Storage 1..n 1 1 Public Storage Public Storage Private Strorage Private Strorage hostedOn PHPModule Apache Module PHPModule Apache Module DependsOn hostedOn ConnectsTo

Reference Slides Follow

... ? ? … ? + ?... ? ? ( XML fragment ? … ? + XML fragment ? … ? ? + XML fragment ?... ? ? artifact specific content ? + ? | … ) + TOSCA Service Template schema

XML fragment + ? <PropertyConstraint property="...“ constraintType="xs:anyURI"> + constraint ? ? + ? + ? policy specific content ? + ? ( | | ) + ? ? TOSCA Boundary Definitions Schema

<NodeType name="xs:NCName" targetNamespace="xs:anyURI"? abstract="yes|no"? final="yes|no"?> + ? ? ? <RequirementDefinition name="..." requirementType="..." lowerBound="xs:integer"? upperBound="xs:integer |..."?> constraint type specific content + ? + ? <CapabilityDefinition name="..." capabilityType="..." lowerBound="xs:integer"? upperBound="xs:integer |..."?> constraint type specific content + ? + + ? <InputParameter name="..." type="..." required="yes|no"?/> + ? <OutputParameter name="..." type="..." required="yes|no"?/> + ? + ? NodeType XML schema

<RelationshipType name="xs:NCName" targetNamespace="xs:anyURI"? abstract="yes|no"? final="yes|no"?> + + ? ? ? + ?... + ?... + ? ? ? + RelationshipType

WebTier Service Template WebTier Service Template DBTier Service Template DBTier Service Template WebTier ScalableTier WebTier ScalableTier ApacheVM Server ApacheVM Server Apache WebServer Apache WebServer SugarCRMApp Web Application SugarCRMApp Web Application DBTier Tier DBTier Tier MySqlVM Server MySqlVM Server MySQL DBMS MySQL DBMS SugarCRM Database SugarCRM Database ApacheLinuxOS Operating System ApacheLinuxOS Operating System MySqlLinuxOS Operating System MySqlLinuxOS Operating System Advanced Scenarios: “Scalable SugarCRM Web Application” ApacheLB LoadBalancer ApacheLB LoadBalancer “Tier” Node Types convey scalability The “Web Application Tier” is declared Scalable with upper bounds “n” instances  Note: the “Database Tier” remains a single instance A Load Balancer node is added to the previous template to route requests among “Web Application Tier” instances Both tiers are packaged into their own service templates permitting Substitution 1..n 1 1 The range of instances would be a property of the “Tier” Node Type Components grouped into composable service templates. Scalability