introduction to cloudify - workshop 2013
DESCRIPTION
An introduction to Cloudify, the problems it tries to solve and the basic conceptsTRANSCRIPT
Introduction to Cloudify
Barak MerimovichCloudify Team Leader@barakmer
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
400+ customers worldwideLeverage GigaSpaces technology
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..
Managing Big Data on the Cloud
Current Approachesfor Migrating Apps to the Cloud
Migrating Apps – IaaS First
Migrating Apps – IaaS First
It’s the apps, stupid!
Credit: sdarchitect
Migrating Apps – PaaS
Good for new, relatively simple apps
Migrating Apps – CM Tools
Setup Only, but apps are a living organism!
Cloudify provide the equivalent of Amazon OpsWork on OpenStack
Amazon Stack for App Deployment
• 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
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
Reducing Complexity
13
Consistent ManagementTypical Enterprise / Big Data System
Reducing Infrastructure Costs
14
Consistent ManagementTypical Enterprise / Big Data System
Dev Testing QA Prod
Reducing Lock-In Risks
Existing Data Center OpenStack Cloud
Cloud Driver
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
Built in support for Big Data stacksReal Time Relational DB
ClustersNoSQL Clusters Hadoop
Storm MySQL MongoDB Hadoop
GigaSpaces XAP PostgreSQL Cassandra ZooKeeper
Couchbase
ElasticSearch
100s More of Ready-Made Recipes
Leverage Puppet Templates
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!
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
® 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"]
}}
® 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"
...}
® 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
} } )]
® 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) }
® 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}
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
Thank You!