introduction to cloudify - workshop 2013

27
Introduction to Cloudify Barak Merimovich Cloudify Team Leader @barakmer

Upload: barakme

Post on 15-Jan-2015

423 views

Category:

Technology


1 download

DESCRIPTION

An introduction to Cloudify, the problems it tries to solve and the basic concepts

TRANSCRIPT

Page 1: Introduction to cloudify - workshop 2013

Introduction to Cloudify

Barak MerimovichCloudify Team Leader@barakmer

Page 2: Introduction to cloudify - workshop 2013

GigaSpaces Business Card

Two main product lines: - Cloudify - designed to provide organizations with application lifecycle

automation (deployment, configuration management, high-availability, fail-over, scaling, monitoring) on any cloud environment

- XAP - designed to handle extreme data processing

Products

Offices Offices in New York, San Jose, London. R&D center in Herzliya

Description GigaSpaces provides software middleware for Deployment, Management

and Scaling of Mission-Critical applications on cloud environments

Customers Over 400 Tier 1 enterprises and ISV’s worldwide

Main verticals: Financial Services, Telco, eCommerce, Healthcare

Page 3: Introduction to cloudify - workshop 2013

400+ customers worldwideLeverage GigaSpaces technology

Page 4: Introduction to cloudify - workshop 2013

Enterprises are moving to Cloud

In 2 years

in 5 years

in Saving

5% able to migrate successfully

26%

44%

16.B$

So far only

BUT..

Page 5: Introduction to cloudify - workshop 2013

Managing Big Data on the Cloud

Current Approachesfor Migrating Apps to the Cloud

Page 6: Introduction to cloudify - workshop 2013

Migrating Apps – IaaS First

Page 7: Introduction to cloudify - workshop 2013

Migrating Apps – IaaS First

It’s the apps, stupid!

Credit: sdarchitect

Page 8: Introduction to cloudify - workshop 2013

Migrating Apps – PaaS

Good for new, relatively simple apps

Page 9: Introduction to cloudify - workshop 2013

Migrating Apps – CM Tools

Setup Only, but apps are a living organism!

Page 10: Introduction to cloudify - workshop 2013

Cloudify provide the equivalent of Amazon OpsWork on OpenStack

Amazon Stack for App Deployment

Page 11: Introduction to cloudify - workshop 2013

• Deploy, Manage and Scale Enterprise Grade Applications on OpenStack Clouds, with no code changes – Using well known tools and best practices– Allow users to choose what fits best for them – Allow users to leverage existing assets

Cloudify’s Mission Statement

Page 12: Introduction to cloudify - workshop 2013

Migrating apps – the Cloudify way…1 Upload your recipe

2 Cloudify creates VMs & installs agents

3 Agents install and manage your app

4 Cloudify automates monitoring, healing and scaling

Page 13: Introduction to cloudify - workshop 2013

Reducing Complexity

13

Consistent ManagementTypical Enterprise / Big Data System

Page 14: Introduction to cloudify - workshop 2013

Reducing Infrastructure Costs

14

Consistent ManagementTypical Enterprise / Big Data System

Dev Testing QA Prod

Page 15: Introduction to cloudify - workshop 2013

Reducing Lock-In Risks

Existing Data Center OpenStack Cloud

Cloud Driver

Page 16: Introduction to cloudify - workshop 2013

Geared for Mission Critical Apps• Critical Apps are Data

Centric• Moving data is hard• Cloudify has built-in data

services:– Replication over the WAN– Elastic caching– Built in support for big data

Page 17: Introduction to cloudify - workshop 2013

Built in support for Big Data stacksReal Time Relational DB

ClustersNoSQL Clusters Hadoop

Storm MySQL MongoDB Hadoop

GigaSpaces XAP PostgreSQL Cassandra ZooKeeper

Couchbase

ElasticSearch

Page 18: Introduction to cloudify - workshop 2013

100s More of Ready-Made Recipes

Leverage Puppet Templates

Page 19: Introduction to cloudify - workshop 2013

One Click Deployment

• Deploying the most complex apps in one click

• Smooth transition from trial to real production

• Patent pending technology

• Let’s see it!

Page 20: Introduction to cloudify - workshop 2013

Cloudify Recipe Domain Model

Application

Pod

Web Server LB

DB

Service:Describe an individual tiere.g. Tomcat, Node.js, Ruby, NoSQL

Application :Describes the

application tiers and their dependencies

Page 21: Introduction to cloudify - workshop 2013

® Copyright 2012 GigaSpaces Ltd. All Rights Reserved

Application Recipeapplication {name="petclinic"service {

name = "mongod" }service {

name = "mongoConfig" }service {

name = "apacheLB" }service {

name = "mongos" dependsOn = ["mongoConfig", "mongod"]

}}

Page 22: Introduction to cloudify - workshop 2013

® Copyright 2012 GigaSpaces Ltd. All Rights Reserved

22

Service Recipe: Lifecycle

lifecycle{ install "mysql_install.groovy"

 start "mysql_start.groovy"  startDetectionTimeoutSecs 900

 startDetection "mysql_startDetection.groovy"

 stopDetection {    !ServiceUtils.isPortOccupied(jdbcPort)

  }  preStop [(       

 "Win.*":"killAllMysql.bat",                     "Linux.*":"mysql_stop.groovy"

   )]  shutdown [(                        

    "Linux.*":"mysql_uninstall.groovy"  )]

service{ name "mysql"

icon "mysql.png" type "DATABASE"

...}

Page 23: Introduction to cloudify - workshop 2013

® Copyright 2012 GigaSpaces Ltd. All Rights Reserved

23

Service Recipe: Scaling RulesscalingRules [(

scalingRule { serviceStatistics {

metric "Total Requests Count" statistics

Statistics.maximumThroughput movingTimeRangeInSeconds 20

} highThreshold {

value 1 instancesIncrease 1

} lowThreshold {

value 0.2 instancesDecrease 1

} } )]

Page 24: Introduction to cloudify - workshop 2013

® Copyright 2012 GigaSpaces Ltd. All Rights Reserved

24

Service Recipe: Custom Metricsmonitors {

def ctxPath = ("default" == context.applicationName)?"":"${context.applicationName}“

def metricNamesToMBeansNames = ["Current Http Threads Busy": ["Catalina:type=ThreadPool,name=\"http-bio-$

{currHttpPort}\"", "currentThreadsBusy"], "Current Http Thread Count": ["Catalina:type=ThreadPool,name=\"http-bio-$

{currHttpPort}\"", "currentThreadCount"],

return getJmxMetrics("127.0.0.1",currJmxPort,metricNamesToMBeansNames) }

Page 25: Introduction to cloudify - workshop 2013

® Copyright 2012 GigaSpaces Ltd. All Rights Reserved

25

Service Recipe: Machine Templates

compute{ template "SMALL_LINUX"

}

SMALL_LINUX : template imageId "us-east-1/ami-76f0061f“

remoteDirectory "/home/ec2-user/gs-files“ machineMemoryMB 1600 hardwareId "m1.small" locationId "us-east-1"

localDirectory "upload" keyFile "myKeyFile.pem"

options[( "securityGroups" : ["default"]as String,][

"keyPair" : "myKeyFile")]

overrides (["jclouds.ec2.ami-query,"":""jclouds.ec2.cc-ami-query":""])

privileged true}

SMALL_LINUX : template{ imageId "1234"

machineMemoryMB 3200 hardwareId "103"

remoteDirectory "/root/gs-files" localDirectory "upload"

keyFile "gigaPGHP.pem" options[(

"openstack.securityGroup" : "default", "openstack.keyPair" : "gigaPGHP"

)]privileged true}

Page 26: Introduction to cloudify - workshop 2013

Mission Critical•Manage data, not just processes•Built-in multi-site support•Designed for multi-tier complex apps

Proven •Field-proven •Running the most complex finance, telco’s and Big-Data apps

Open •Open Source•Open standard (OpenStack)•Open Cloud

Easy•One click deployment•Hassle-free online experience•Smooth transition from trial to production

Summary

Page 27: Introduction to cloudify - workshop 2013

Thank You!