deployment automation on openstack with tosca and cloudify

35
Nati Shalom @natishalo m Deployment Automation on OpenStack with TOSCA and Cloudify Uri Cohen @uri1803

Upload: uri-cohen

Post on 15-Jan-2015

1.741 views

Category:

Technology


0 download

DESCRIPTION

TOSCA (Topology and Orchestration Specification for Cloud Applications) is an emerging standard for modeling complete application stacks and automating their deployment and management. It’s been discussed in the context of OpenStack for quite some time, mostly around Heat. In this slide deck discusses what TOSCA is all about, why it makes sense in the context of OpenStack, and how we can take it farther up the stack to handle complete applications, both during and after deployment, on top of OpenStack.

TRANSCRIPT

Page 1: Deployment Automation on OpenStack with TOSCA and Cloudify

Nati Shalom @natishalom

Deployment Automation on OpenStack with TOSCA and Cloudify

Uri Cohen @uri1803

Page 2: Deployment Automation on OpenStack with TOSCA and Cloudify

What It Really Takes to

Deploy and Manage Apps

Provision

Install

Configure

Deploy

Monitor

Scale

Page 3: Deployment Automation on OpenStack with TOSCA and Cloudify

Large Parts Are Mostly Manual

Real Time Analytics

Correlate with

Historical Events

Feedback

Execute Policy

Send Metrics

Setup Monitoring and Alerts

Deploy and Configure Applications

Setup Machine, Network, Storage

Push updates

Collect and Analyze Logs

Troubleshoot

Measure performance against expected SLA’s

Set and tune Alerts thresholds

Match Policy to Incident

Page 4: Deployment Automation on OpenStack with TOSCA and Cloudify

The Impact of Human

Errors

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

Page 5: Deployment Automation on OpenStack with TOSCA and Cloudify

The Cost of Downtime Up by 60%

Page 6: Deployment Automation on OpenStack with TOSCA and Cloudify

61% ARE HERE

83%WANT TO BE HERE

TIME

EFFE

CTIV

ENE

SSThe Current Reality..

Page 7: Deployment Automation on OpenStack with TOSCA and Cloudify

Challenges

•80% of outages impacting mission-critical services will be caused by people and process

•83% are facing

significant roadblock keeping them from moving to the next phase (Politics, Budget, Time, Stuff)

Solution: Automation & Orchestration

• Remove Manual Intervention out of the application deployment process

• Reduce Complexity and Dynamically align to the business needs

The Solution

Page 8: Deployment Automation on OpenStack with TOSCA and Cloudify

Automating The Application Deployment

Deploy

Fail-over

Scale

Cloud Infrastructure

Intelligent OrchestrationHistorical data

Real Time Analytics Real Time Analytics

Correlate with

Historical Events

Feedback

Execute Policy

Send Metrics

Page 9: Deployment Automation on OpenStack with TOSCA and Cloudify

TOSCA – The Glue for

Putting all This

Together

TOSCA

Page 10: Deployment Automation on OpenStack with TOSCA and Cloudify

What is TOSCA?

• Topology & Orchestration Specification of Cloud Application

• By OASIS – Sponsored by IBM, CA, Rackspace, RedHat, Huawei and others

Page 11: Deployment Automation on OpenStack with TOSCA and Cloudify

What is TOSCA?

• Goal: cross cloud, cross tools orchestration of applications on the Cloud

• Status: – Version 1 approved (XML ) – Version 2 (YAML!) in design

Page 12: Deployment Automation on OpenStack with TOSCA and Cloudify

Why TOSCA?

• Standard• Can Describe– Any Topology– Any Automation

Process

• Portable between Clouds and Tools

Page 13: Deployment Automation on OpenStack with TOSCA and Cloudify

The TOSCA Building Blocks

Application Topologies

Workflows

Policies

Page 14: Deployment Automation on OpenStack with TOSCA and Cloudify

What do we see here?

Page 15: Deployment Automation on OpenStack with TOSCA and Cloudify

What do we see here?

Host

Middleware

App module

connection

Page 16: Deployment Automation on OpenStack with TOSCA and Cloudify

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

Page 17: Deployment Automation on OpenStack with TOSCA and Cloudify

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

Page 18: Deployment Automation on OpenStack with TOSCA and Cloudify

Topology

Host Network RouterInfrastructure

Middleware Apache Tomcat MySQL

Application Mod_proxy WAR Schema

Page 19: Deployment Automation on OpenStack with TOSCA and Cloudify

Types and Nodes

Node in Topology

Abstract Type

Instance of

Portable Blueprint Concrete Types

Concrete TypeImplements

Concrete Plugin

Uses

Lifecycle Interface

defines

Implements

Lifecycle:create:start:stop:delete:

Node Implementation

Instance of

Page 20: Deployment Automation on OpenStack with TOSCA and Cloudify

Types and Nodes

Frontend_host

Host

Instance of

Portable Blueprint

OpenStack HostImplementing

Nova Plugin

Uses

Lifecycle Interface

defines

Implementing

Lifecycle:create: nova_provisioner.createstart: nova_provisioner.startstop: nova_provisioner.stopdelete: nova_provisioner.delete

Lifecycle:create:start:stop:delete:

Concrete Types

My_OpenStack_Host

Instance of

Page 21: Deployment Automation on OpenStack with TOSCA and Cloudify

Relationships

Node in Topology

Node in Topology

Node in Topology

Connnected_to

Hosted_on RelationshipInterface

defines

source_interfaces: cloudify.interfaces.relationship_lifecycle: - preconfigure - postconfigure - establish - unlinktarget_interfaces: cloudify.interfaces.relationship_lifecycle: - preconfigure - postconfigure - establish - unlink

Page 22: Deployment Automation on OpenStack with TOSCA and Cloudify

Relationships

Host Network

Tomcat

Connnected_to

Hosted_on RelationshipInterface

defines

source_interfaces: cloudify.interfaces.relationship_lifecycle: - preconfigure - postconfigure - establish - unlinktarget_interfaces: cloudify.interfaces.relationship_lifecycle: - preconfigure - postconfigure - establish - unlink

Page 23: Deployment Automation on OpenStack with TOSCA and Cloudify

Translated to TOSCA

Node

Node

Node

Connected_to relationship

Hosted_onrelationship

Page 24: Deployment Automation on OpenStack with TOSCA and Cloudify

Properties

Frontend_host

Host

Instance of

Portable Blueprint

OpenStack HostImplementing

Concrete Types

My_OpenStack_Host

Instance of

Memory Size

Memory size = 2GBImage_Id=1235

Propertiesschema

Property values

Generic Properties Schema

Image Id

Page 25: Deployment Automation on OpenStack with TOSCA and Cloudify

Policies

• TOSCA 1.0 didn’t elaborate much on policies

• TOSCA 2.0 (draft) discusses specific DSL for specific policies such as SLA of a Node

• Out take:– Policies are imperative– Policies are NOT in YAML and are

tool dependent (we’re using Riemann.io)

Page 26: Deployment Automation on OpenStack with TOSCA and Cloudify

Workflows

• TOSCA 1.0 – Workflows (Plans) are in any WF language. – Strong preference for BPMN 2.0

• TOSCA 2.0 – No change• Cloudify 3.0 take –

Workflows are also tool specific, currently we use Radial (Ruby based DSL) but seeking an alternative for future versions

Page 27: Deployment Automation on OpenStack with TOSCA and Cloudify

Putting It All Together

• TOSCA Template (Blueprint in Cloudify) contains:– Application Topology• Nodes

– Interfaces– Properties– Artifacts (Plugins in Cloudify)

• Relationships– Interfaces

– Workflows– Policies

Page 28: Deployment Automation on OpenStack with TOSCA and Cloudify

Portable Blueprint

Page 29: Deployment Automation on OpenStack with TOSCA and Cloudify

Openstack_host type

Page 30: Deployment Automation on OpenStack with TOSCA and Cloudify

Type implementation

Page 31: Deployment Automation on OpenStack with TOSCA and Cloudify

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

Remote Agents

AgentAgent

Agent

Architecture

Page 32: Deployment Automation on OpenStack with TOSCA and Cloudify

HOW IT FITS INTO THE OPENSTACK UNIVERSE

Page 33: Deployment Automation on OpenStack with TOSCA and Cloudify

The AWS Stack

Page 34: Deployment Automation on OpenStack with TOSCA and Cloudify

The OpenStack Equivalents

OpenShift/ CloudFoundry

**Solum**Heat Nova, Cinder,

Neutron etc..?

Page 35: Deployment Automation on OpenStack with TOSCA and Cloudify

References

• OASIS TOSCA https://www.oasis-open.org/committees/tosca/

• TOSCA Session from the HK Summit https://wiki.openstack.org/w/images/a/a1/TOSCA_in_Heat_-_20130415.pdf

• Cloudify 3.0 (AKA Cosmo) on githubhttps://github.com/cloudifysource/cosmo-manager https://github.com/cloudifysource/cosmo-cli