Yaron Parasol@yaronpar
Introduction to TOSCA
About Me
• Yaron – Modern Hebrew Name• Parasol – Strange
Polish Name• Lead Product
Manager of Cloudify at GigaSpaces• Member of TOSCA
TC
Many stages require manual involvement
Provision
Install
Configure
Deploy
Monitor
Scale
Application Deployment Lifecycle
The Impact of Human
Error
80% of outages impacting mission-
critical services will be caused by people and process issues
80% of outages impacting mission-
critical services will be caused by people and process issues
50% of those outages will be caused by
change/configuration/release integration and hand-off issues
61% ARE HERE
83%WANT TO BE HERE
TIME
EFFE
CTIV
ENES
S
The Path to Orchestration
What is TOSCA?
• Topology & Orchestration Specification of Cloud Application
• By OASIS – Sponsored by IBM, CA, Rackspace, RedHat, Huawei and others
What is TOSCA?
• Goal: cross cloud, cross tools orchestration of applications on the Cloud
• Status: – Version 1 approved (XML ) – Version 2 (also YAML!) in final
design
Why TOSCA?
• Standard• Can Describe– Any Topology– Any Automation
Process
• Portable between Clouds and Tools
The TOSCA Building Blocks
Application Topologies
Workflows
Policies
What do we see here?
What do we see here?
Host
Middleware
App module
connection
What We’ve Seen
• An application topology• 3 layers
– Infrastructure (Cloud or DC objects)– Platform or Middleware (App
containers)– Application modules, schemas and
configurations
• Relationships between components:– What’s hosted on what or installed
on what– What’s connected to what
What’s in a TOSCA
Topology?
• component in the topology are called Nodes
• Each Node has a Type (e.g. Host, BD, Web server). – The Type is abstract and hence
portable– The Type defines Properties and
Interfaces
• An Interface is a set of hooks (named Operations)
• Nodes are connected to one another using Relationships
Topology
Infrastructure
Middleware
Application
Host Host Network
Apache Tomcat MySQL
Mod_proxy WAR Schema
Structure &Syntax
Node Type
• Describe a Cloud or Software type (e.g. Server or Apache)• Maps the Type to the actual impl. Of
the lifecycle interface
Node Type (cont.)
• Defines properties as YAML maps• Might defines capabilities (What it
can provide to other nodes)
Node Type (cont.)
• Might Define Requirements (what it needs from other nodes)
Relationship Type
• Requirements and Capabilities are implicit way to describe relationships• Usually you need the explicit way– You need hooks to configure the source or target
node or both
• So relationships have types and interfaces as well
Relationships (cont.)
• The basic relationship types are:– dependsOn – abstract type and its sub types:– hostedOn – a node is contained within another– connectsTo – a node has a connection configured to
another
• The basic interface is configure– preconfigure_source, preconfigure_target– postconfigure_source, postconfigure_target– add_target, remove_target
Node Templates
• An instance of a type (like Object to Class)• Has specific properties• Has artifacts:– What to install– How to install (mapped to interface hooks)
• Has requirements and capabilities (or relationships)
Node Template (Examples)
Translated to TOSCA
Node
Node
Node
Connectes_to relationship
Hosted_onrelationship
Workflows
• Imperative flow algorithm• Using a workflow
engine• Timing the
invocation of operations on different node
Policies
• Brings monitoring to the orchestration as input• Ongoing evaluation
of Rules• Enforce SLA,
Health, and anything else• Can invoke more
processes
Putting it All Together
• TOSCA Template (Blueprint in Cloudify) contains:– Application Topology• Nodes
– Interfaces– Properties– Artifacts (Plugins in Cloudify)
• Relationships– Interfaces
– Workflows– Policies
Proxy
REST + File
Server
GUI
WorkflowEngine
Task Manager
Blueprint + RuntimeData
Agent
AgentApplicationStack
Cloudify Manager
App VM
InvokesReportsCreates Architecture
Proxy
REST + File
Server
GUI
WorkflowEngine
Task Manager
Blueprint + RuntimeData
Policy Engine
Agent
Monitoring Data
Agent Monitoring Agent
ApplicationStack
Cloudify Manager
App VM
InvokesReportsCreates
Metrics VM
Architecture
Proxy
REST + File
Server
GUI
WorkflowEngine
Task Manager
Blueprint + RuntimeData
Policy Engine
Agent
Monitoring Data
Agent Monitoring Agent
ApplicationStack
Cloudify Manager
App VM
InvokesReportsCreates
Metrics VM
Logs + Events
Architecture
Cloudify 3Demo
• Apache 2 OpenSource• Release – July
2014
Thank you• http://
getcloudify.org