Upload
agnes-poole
View
214
Download
0
Embed Size (px)
Citation preview
OpenStack Summit
May 18-22, 2015Vancouver, Canada
TOSCA Workloads with OpenStack Heat-TranslatorThursday, May 21 @ 11:00am
Sahdev ZalaIBM Advisory Software Developer, OpenStack PTL Heat-Translator
Matt RutkowskiIBM STSM, Open Technologies & StandardsChair OASIS TOSCA Simple Profile WG, Simple Profile Lead Editor
2© 2015 IBM Corporation
Kilo: Heat-Translator now part of Heat Project!
OpenStack projectStatus changed from Stackforge to OpenStack under Heat programhttps://github.com/openstack/heat-translatorhttp://docs.openstack.org/developer/heat-translator/
• Implementation of new TOSCA features – networking, block storage, object storage, capabilities etc.
• Availability to use on command line• Support for user input parameters• Growing TOSCA ecosystem• Implementation of TOSCA relationship templates, custom types
TOSCA Types
TOSCA Template
or CSAR
TOSCA Nodes
Validation Tests
Map Generate
Validation Tests
TOSCA Parser HOT Generator
Heat Orchestration
Template (HOT)
Heat
Deploy
3© 2015 IBM Corporation
Kilo: Heat-Translator in Action!• Clone the project• heat_translator.py --template-file=translator/toscalib/tests/data/tosca_helloworld.yaml
--template-type=tosca• Can provide input parameters per template need as, --parameters="purpose=test“
TOSCA YAML HOT YAML
Liberty plan: o Implement CLIFF framework to build friendlier CLIo Make Heat-Translator available to use in python-openstackclient (OSC) via plugin
4© 2015 IBM Corporation
Database TierApplication Tier
nodejsnodejsWebServer
Artifacts• Create
Requirements
ContainerContainer
app_serverapp_server
Compute
Capabilities
ContainerContainer
HostedOn
Capabilities
ContainerContainer
paypal_pizzastorepaypal_pizzastoreWebApplication
Artifacts• Config• Start Requirements
ContainerContainer
HostedOn mongo_dbmsmongo_dbms
DBMS
Artifacts• Create• Config• Start
Requirements
ContainerContainer
HostedOn
Capabilities
ContainerContainer
mongo_dbmongo_db
Database
Artifacts• Create DB
Requirements
ContainerContainer
HostedOn
Capabilities
Endpoint.DBEndpoint.DB
Endpoint.DBEndpoint.DB
mongo_servermongo_server
Compute
Capabilities
ContainerContainer
Kilo: Heat-Translator supports Multi-Tier TOSCA use cases
ConnectsTo
MongoDBPayPalSample
App
MongoDBMSNodejs
Part1
5© 2015 IBM Corporation
Logging/Monitoring Tier (ELK)
Application Tier
nodejsnodejs
WebServer
app_serverapp_server
Compute
paypal_pizzastore
paypal_pizzastore
WebApplication
Kilo: Heat-Translator supports Multi-Tier TOSCA use cases
collectd
logstashlogstash
SoftwareComponent
Artifacts• Create• Config• Start
Requirements
ContainerContainer
Capabilities
log_endpointlog_endpoint
logstash_serverlogstash_server
Compute
Capabilities
ContainerContainer
elasticsearchelasticsearch
SoftwareComponent
Artifacts• Create• Config• Start
Requirements
ContainerContainer
Capabilities
search_endpointsearch_endpoint
elasticsearch _server
elasticsearch _server
Compute
Capabilities
kibanakibana
SoftwareComponent
Artifacts• Create• Config• Start
Requirements
ContainerContainer
kibana_serverkibana_server
Compute
Capabilities
search_endpointsearch_endpoint
ConnectsTo
HostedOn HostedOn HostedOn
ConnectsTo
Database Tier
mongo_dbmsmongo_dbms
DBMS
mongo_servermongo_server
Compute
mongo_dbmongo_db
Database
rsyslog
ConnectsTo
Part2
search_endpointsearch_endpoint
ContainerContainerContainerContainer
6© 2015 IBM Corporation
• my_web_server_2 (Compute)• storage_attach_2 (AttachesTo)
• volume_id for my_storage• location: /another_location
storage_attach_2
Properties• location: /another_location
AttachesTo
my_web_server_2my_web_server_2
Compute
Attributes• private_address• public_address• networks• ports
Capabilities
ContainerContainer
OperatingSystemOperatingSystem
Requirements
AttachmentAttachment
...
• my_web_server_1 (Compute)• storage_attach_1 (AttachesTo)
• location: /some_location• my_storage (BlockStorage)
storage_attach_1
Properties• location: /some_location
AttachesTo
my_storagemy_storage
BlockStorage
Capabilities
AttachmentAttachment
Properties• size• volume_id• snapshot_id
my_web_server_1my_web_server_1
Compute
Attributes• private_address• public_address• networks• ports
Capabilities
ContainerContainer
OperatingSystemOperatingSystem
Requirements
AttachmentAttachment
...
Kilo: Block and ObjectStorage (Cinder, Swift)
7© 2015 IBM Corporation
BindsTo
BindsTo
my_app_1my_app_1
Compute
Attributes• private_address• public_address• networks• ports
Capabilities
ContainerContainer
...
BindableBindable
LinksTo
port_2port_2
Port
Capabilities
LinkableLinkable
Requirements
BindableBindable
public_net_1public_net_1
Network
Capabilities
LinkableLinkable
LinksTo
port_1port_1
Port
Capabilities
LinkableLinkable
Requirements
BindableBindable
private_net_1private_net_1
Network
Capabilities
LinkableLinkable
Kilo: Network Modeling (Neutron)
• Application Model separate from Network Model• Allows developers to Model JUST the application and
bind to existing tenant networks
• Supports a Plurality of Logical Public & Private Networks• Connected via logical Ports nodes (via LinksTo and BindsTo)
8© 2015 IBM Corporation
Liberty Plans: Containers & Repositories
Hosted On
PaaS Subsystem (hidden)
PaaS Modeling• Template author chooses to
expose or hide runtime topology & implementation
Container Application Modeling• Agnostic of PaaS Cloud Provider
• PaaS on OpenStack, Cloud Foundry, Azure, etc.
Docker Hub(Repository)
Docker Image for mysql
docker_mysqldocker_mysql
Container.App.Docker
Artifacts- my_image: type: Image.Docker URI: mysql repository: docker
Requirements
...Runtime.DockerRuntime.Docker
ContainerContainer
my_PaaS_platformmy_PaaS_platform
Container.Runtime
Capabilities
Runtime.DockerRuntime.Docker
ContainerContainer
Runtime.NodejsRuntime.Nodejs
Runtime.J2EERuntime.J2EE
...
PaaS Layer exposes “runtimes” as TOSCA Capabilities
• Docker, Nodejs, JSP, J2EE, etc.
Heat-Translator could automatically retrieve and deploy a Docker image from a declared Repository
• TOSCA Templates can model their repositories (e.g., Docker Hub)
• Heat could dynamically “pull” templates, definitions, scripts, configuration files, etc. from multiple repos.
9© 2015 IBM Corporation
TOSCA v1.0 intends to support policies in the areas of : Placement (Affinity), Scaling and Performance
‒ with Rules that are evaluated to execute Automatic and Imperative Triggers
Liberty Plans: Policies
Policies be modeled as Requirements using TOSCA Capability Types1. That can be attached to Interfaces or specific Operations, 2. Nodes and 3. Groups of Nodes
my_app_1my_app_1
Compute
Capabilities
ContainerContainer
...Lifecycle
createcreate
configureconfigure
...
Policy• Type• Rule• Trigger
my_scaling_group
backend_appbackend_app
Compute
Policy• Type• Rule• Trigger
my_databasemy_database
Computeweb-appweb-app
ComputePolicy
• Type• Rule• Trigger
1
2
3
10© 2015 IBM Corporation
Future Plans: Network Functions Virtualization (NFV)Plan: Heat-Translator working with Neutron related OpenNFV projects
• TOSCA liaising with ETSI NFV and OpenNFV standards work groups
Support for NFV graph constructs:
TOSCA Profile Drafts model Software Defined Networks (SDN) on OpenStack
• Support Network Service Descriptors (NSD)• Virtual Network Function Descriptors (VNFD)• Forwarding Graphs as sequences of Connection Points (CPs)
(In-Progress)
11© 2015 IBM Corporation
Please join us as a contributor on the Heat-Translator project:
https://launchpad.net/heat-translator