tosca - Oasis

TOSCA
Topology and Orchestration Specification
for Cloud Applications (TOSCA) Standard
How TOSCA Adds Value and Portability in a
Container-Centric World
Agenda
▪ What and why TOSCA?
• Definition
• Addressing critical Cloud challenges for different roles,
e.g., Cloud provider/platform, developer/modeler (DevOps), etc.
• TOSCA eco-system and status
▪ How: a use case driven technical walk-thru of TOSCA
▪ Q&A and open discussion
2
2
What is TOSCA?
• TOSCA is an important new open cloud standard, that is
enabling a unique eco-system, supported by a large and
growing number of international industry leaders…
TOSCA is a machine and human readable, domain specific language, that
defines the interoperable description of applications; including their
components, relationships, dependencies, requirements, and
capabilities….
…thereby enabling portability and automated management across
cloud providers regardless of underlying platform or infrastructure thus
expanding customer choice, improving reliability, and reducing cost
and time-to-value.
3
Containment
The collective knowledge of application and infrastructure experts are
captured as reusable TOSCA models
Web Server
Tier
TOSCA Application
Model
Database Server
Tier
Web Server
DB Server
Web App
Database
PHP Script
Module
Connectivity
Containment and Connectivity concepts support Composition & Reuse
These concepts lead to an application-centric, holistic, unified model
• Reusable models extend investments by making it easy to compose
more valuable and complex apps from existing apps
• Models can be validated by automation to ensure app-aware,
policy-aligned configuration, deployment and operational semantics
4
TOSCA enables an eco-system where service providers
can Compete and Differentiate to add value to Your Applications
TOSCA supports automated matching of
application requirements to provider
capabilities
Cloud
Provider B
Best Fit
Choice
TOSCA
App
Choice of Provider that
“best fits” your application
Portable
Cloud
Provider A
• TOSCA Apps can be designed to be
portable to any cloud (including
hybrid) that meets the application’s
requirements
Cloud
Provider C
• Avoid the “lowest-common
denominator” approach…
Each cloud provider competes by offering their “best fit” of unique capabilities,
features, and services that match the application’s requirements
5
External
Influences
TOSCA enables holistic application lifecycle automation while
ensuring integrity, security and compliance
Architects
Business
Conditions
Strategic
Requests
Model services,
policies &
requirements
TOSCA
TOSCA
Template
Template
Cloud
Provider A
Operational
Requests
Hot Packs
Operations
Deploy, manage
& monitor
application
lifecycle
Development
Teams
Cloud Application Lifecycle with TOSCA
Develop, unit test
scripts, plans &
artifacts for
planned releases,
patches, fixes
Cloud
Provider B
Cloud
Provider C
TOSCA
QA Teams
TOSCA
Template
Template
Build & Test
releases,
updates &
configurations
TOSCA
Template
Infrastructure
Changes
TOSCA Templates Agnostic to Cloud Infrastructure Changes
TOSCA templates communicate and drive app-centric Dev-Ops and continuous delivery
6
TOSCA reduces application complexity
by expressing
application requirements…
TOSCA
Portable
Cloud
Application
TOSCA Service Template
Ap
p
DB
Scaling
Policy
independently from
cloud provider
Capabilities…
Comput
e2
Compute
1
Net
wo
rk
Stor
age
Application Requirements
Automatic Matching
TOSCA
Orchestration
Infrastructure Capabilities
X86 VM
10 Gb
Networ
k
X86 VM
PowerVM
PowerVM
X86 VM
Cloud
Provider A
HDD
RDMA
Networ
k
HDD
Cloud
Provider B
& Optimization
PowerVM
SSD
PowerVM
SSD
PowerVM
SSD
PowerVM
SSD
KVM
KVM
KVM
KVM
Ring
Networ
k
KVM
KVM
Cloud
Provider C
Enabling TOSCA applications to be portable to different infrastructures
7
•
•
TOSCA eco-system is rapidly growing with support from industry leaders
… and open source partners
TOSCA Version 1.0 Specification approved as an OASIS
Standard (Nov 2013)
Associated Companies
Government and Corporate Awareness:
– OASIS: 600+ participant organizations.
5000+ participants spanning 65+ countries
– TOSCA Committee: 170+ people 45+ companies/orgs
– International Standards & Research: ETSI NFV liaison,
EU FP7, etc.
– Industry Analysts: Forrester names TOSCA as a top
four cloud open standard (Mar 2014)
•
Multi-company Interoperability Demonstrated:
– EuroCloud 2013 (Oct 2013): IBM, SAP, Fujitsu, Huawei, HP,
Vnomic, Zenoss and others
– Open Data Center Alliance: TOSCA Application Portability
in the Enterprise Cloud PoC (Jan 2014)
•
Open Source Projects
Open Source:
– OpenStack, Eclipse, getcloudify.org, celar
8
We Covered the What and Why…
How: A Use Case Driven
Technical Walk-Thru of TOSCA
TOSCA Abstraction describing Application, Container & Infrastructure
Relationship
ConnectsTo
can be
orchestrated
inNode
parallel
PayPal
Sample App
Node
Node.js
Database Tier
Application Tier
mongo_db
paypal_pizzastore
Database
WebApplication
ConnectsTo
Requirements
Endpoint.DB
Container
nodejs
HostedOn
Capabilities
Container
Requirements
Container
Compute
Node
MongoDB
Capabilities
Endpoint.DB
WebServer
app_server
Requirements
Container
mongo_dbms
DBMS
HostedOn
Capabilities
Container
Requirements
Container
HostedOn
mongo_server
Compute
HostedOn
Capabilities
Endpoint DB
Node
Mongo DBMS
Capabilities
Capabilities
Relationship
Capabilities
Requirements
Container
Container
HostedOn
Container
Endpoint DB
Container
Example: Java Web Application using Node.js and Mongo Database
Enabled by: TOSCA Nodes, Relationships, Requirements, and Capabilities
TOSCA Model for a Complex Multi-Tier Cloud Service
Database Tier
mongo_db
Database
Application
Tier
Logging/Monitoring Tier (ELK)
paypal_pizza
store
WebApplication
elasticsearch
kibana
SoftwareComponent
SoftwareComponent
SoftwareComponent
Capabilities
log_endpoint
Capabilities
search_endpoint
ConnectsTo
Requirements
search_endpoint
Requirements
Container
Container
Container
DBMS
ConnectsTo
logstash_server
app_server
Compute
mongo_server
ConnectsTo
Requirements
search_endpoint
WebServer
Artifacts
• Create
• Config
• Start
Artifacts
• Create
• Config
• Start
Artifacts
• Create
• Config
• Start
nodejs
mongo_dbms
logstash
Compute
Capabilities
collectd
Container
HostedOn
elasticsearch
_server
HostedOn
kibana_server
Compute
Compute
Capabilities
Capabilities
Container
HostedOn
Container
Compute
rsyslog
Example: Logging/Monitoring Service for the Webshop using Kibana
11
TOSCA Model for Block & Object Cloud Storage
my_web_server_1
Compute
Attributes
•
•
•
•
private_address
public_address
networks
ports
Capabilities
Container
OperatingSystem
...
Requirements
Attachment
storage_attach_1
AttachesTo
Properties
• location:
/some_location
Create new volume and attach to server_1
• my_web_server_1 (Compute)
• storage_attach_1 (AttachesTo)
• location: /some_location
• my_storage (BlockStorage)
my_storage
BlockStorage
Capabilities
Attachment
my_web_server_2
storage_attach_2
Compute
Attributes
•
•
•
•
private_address
public_address
networks
ports
AttachesTo
Capabilities
Container
OperatingSystem
...
Requirements
Attachment
Properties
• location:
/another_location
Properties
• size
• volume_id
• snapshot_id
Attach same volume to server_2
• my_web_server_2 (Compute)
• storage_attach_2
(AttachesTo)
• volume_id for my_storage
• location: /another_location
Scenario: different servers use the same storage at different mount points
12
TOSCA Model for Logical Public & Private Cloud Networks
my_app_1
Compute
Attributes
• private_address
• public_address
• networks
• ports
port_1
Capabilities
Container
...
• Connected via logical Ports nodes
(via LinksTo and BindsTo)
Port
BindsTo
Requirements
Bindable
Bindable
Capabilities
Linkable
LinksTo
private_net_1
Network
Capabilities
Linkable
port_2
Port
• Application Model separate
from Network Model
BindsTo
Requirements
Bindable
Capabilities
Linkable
LinksTo
public_net_1
Network
Capabilities
Linkable
Allows developers to model JUST the application bind to existing tenant networks13
TOSCA Model for Containers leveraging Repositories
PaaS Modeling
Container Application Modeling
• Template author chooses to expose or
hide runtime topology & implementation
• Agnostic of PaaS Cloud Provider
– PaaS on OpenStack, Cloud Foundry, Azure, etc.
PaaS Subsystem (hidden)
docker_mysql
my_PaaS_platform
Container.App.Docker
Artifacts
Container.Runtime
- my_image:
Capabilities
Container
Runtime.Docker
Runtime.Nodejs
Hosted
On
type: Image.Docker
URI: mysql
repository: docker
Requirements
Container
...
Runtime.Docker
Runtime.J2EE
...
PaaS Layer exposes “runtimes”
as TOSCA Capabilities
• Docker, Nodejs, JSP, J2EE, etc.
Docker Hub
(Repository)
Docker
Image
for mysql
Orchestrators could automatically retrieve and deploy
a Docker image from a declared Repository
• TOSCA Templates can model repositories
• Orchestrators could dynamically “pull” from multiple repositories
14
TOSCA Direction to model Policies
Supported areas: Placement (Affinity), Scaling and Performance
‒ with Rules that are evaluated to execute Automatic and Imperative Triggers
2
Policy
• Type
• Rule
• Trigger
1
Policy
• Type
• Rule
• Trigger
my_app_1
my_scaling_group
backend_app
Compute
Compute
Capabilities
Container
Lifecycle
create
configure
...
...
3
Policy
• Type
• Rule
• Trigger
web-app
my_database
Compute
Compute
Policies modeled as Requirements using Capability Types that can be attached to
‒ Interfaces or specific Operations
‒ Nodes and
‒ Groups of Nodes
15
TOSCA Direction to model Network Functions Virtualization
Planning work with OpenStack Neutron related OpenNFV projects
• TOSCA liaising with ETSI NFV and OpenNFV standards work groups
Support for NFV
graph constructs:
TOSCA Profile Drafts model SDN on OpenStack
– Network Service Descriptors (NSD)
– Virtual Network Function Descriptors (VNFD)
– Forwarding Graphs as sequences of Connection Points (CPs)
16
Automated TOSCA-based Orchestration Now Part of OpenStack
TOSCA
Template
TOSCA
Types
TOSCA
Nodes
Map
Generate
Validation
Tests
Validation
Tests
TOSCA Parser
HOT Generator
● TOSCA-to-Heat-Translator now part of OpenStack Heat
o Latest TOSCA features integrated: Networking,
Block & Object Storage, etc.
HOT - Heat
Orchestration
Template
Deploy
Heat
Orch
o Implemented TOSCA relationship templates, custom types
o Availability to use on command line & user input param support
OpenStack
Services
KB: plan to add status update &
outlook for Heat Translator
17
TOSCA templates rendered in YAML
•
•
•
•
Both TOSCA Templates and Heat HOT Templates use YAML as DSL
Human readable and crisp
Popular in open source projects
Easy to integrate
TOSCA YAML
HOT YAML
18
TOSCA Benefits Summary
• Human readable and easy to integrate Domain Specific Language
• An Open Standard that models the right application abstractions
• Manipulate the language orchestration declaratively instead of dealing
with disparate cloud APIs (leave that to the TOSCA Orchestrator)
• Covers the full complexity of applications
• All levels and tiers: Application, Middleware, Container, Infrastructure
• Group software components and attach TOSCA policies to convey
important QoS & placement requirements
• Aligns with future work on monitoring
• Leverage pre-built TOSCA Templates, models, and definitions from
distributed repositories
• Portable automatic orchestration (works with OpenStack now)
19
•
•
TOSCA Resources – Learn More
TOSCA Technical Committee Public Page (latest documents, updates, and more)
– https://www.oasis-open.org/committees/tc_home.php?wg_abbrev=tosca
OASIS Channel (all standards) or TOSCA YouTube Playlist
•
•
•
•
https://www.youtube.com/user/OASISopen or http://bit.ly/1BQGGHm
TOSCA Simple Profile in YAML v1.0 (latest committee approved draft)
•
•
KB: Update
PL: updated 7/7
http://docs.oasis-open.org/tosca/TOSCA-Simple-Profile-YAML/v1.0/TOSCA-Simple-ProfileYAML-v1.0.pdf
TOSCA Simple Profile for NFV v1.0 (latest committee approved draft)
– http://docs.oasis-open.org/tosca/tosca-nfv/v1.0/csd01/tosca-nfv-v1.0-csd01.pdf
TOSCA v1.0 Specification (2013)
– http://docs.oasis-open.org/tosca/TOSCA/v1.0/TOSCA-v1.0.pdf
TOSCA v1.0 Primer
– http://docs.oasis-open.org/tosca/tosca-primer/v1.0/tosca-primer-v1.0.pdf
•
Contact the Technical Committee Co-Chairs:
– Paul Lipton, [email protected]
– Simon Moser, [email protected]
20
TOSCA
An Open Standard for Business Application
Agility and Portability in the Cloud
Q&A
Start Blueprinting Your Cloud Apps in TOSCA now!
21
21