Download presentation
Presentation is loading. Please wait.
Published byJosephine Goodman Modified over 8 years ago
1
SINGLE PLATFORM. COMPLETE SCALABILITY. PaaS on OpenStack @natishalom CTO & Founder GigaSpaces
2
Agenda Defining the PaaS Different paths to PaaS PaaS on OpenStack Demo (Optional) ® Copyright 2011 Gigaspaces Ltd. All Rights Reserved 2
3
Defining the PaaS ® Copyright 2011 Gigaspaces Ltd. All Rights Reserved 3
4
Agenda Defining the PaaS Different paths to PaaS PaaS on OpenStack Demo (Optional) ® Copyright 2011 Gigaspaces Ltd. All Rights Reserved 4
5
Different Paths to PaaS Productivity vs. Control tradeoffs ® Copyright 2011 Gigaspaces Ltd. All Rights Reserved 5
6
Google App Engine Architecture ® Copyright 2011 Gigaspaces Ltd. All Rights Reserved 6
7
Control assumptions ® Copyright 2011 Gigaspaces Ltd. All Rights Reserved 7 HW configuration Operating system Language (Java/Paython) Middleware stack (data- base, messaging,…) Architecture Performance (Quota : CPU, Mem, Net,..) Data center location Application Code Selecting the middleware stack from a predefined list. You
8
Heroku Architecture ® Copyright 2011 Gigaspaces Ltd. All Rights Reserved 8 Routing Mesh Dyno Grid SQL Database Memory Cache
9
Control assumptions ® Copyright 2011 Gigaspaces Ltd. All Rights Reserved 9 HW configuration Operating system Language (Ruby) Middleware stack (data- base, messaging…) –Flexibility of choices Architecture Performance (dyno) Data center location Application Code Selecting the middleware stack from a predefined list You
10
Elastic Beanstalk Application Elastic Beanstalk Architecture Auto Scaling http://myapp-staging.elasticbeanstalk.com/ Apache Tomcat Amazon Linux AMI Your Running Application Version Environment Elastic Beanstalk Host Manager Elastic Beanstalk Host Manager ® Copyright 2011 Gigaspaces Ltd. All Rights Reserved 10
11
Control assumptions Amazon Operating system Language (Java) Middleware stack (tomcat, RDS…) –Can be easily extended Architecture (Web) Storage Data center You Application Code Selecting the middleware stack (anything beyond tomcat) HW configuration Performance Limited control over the OS using linux tools JVM tuning/configuration ® Copyright 2011 Gigaspaces Ltd. All Rights Reserved 11
12
Productivity Myths You have to give up control for more simplicity –N–Not always… Less code = more productivity –P–Productivity is measured by units of features being delivered (not lines of code) Opinionated architecture (Rails/Grails) is extremely productive ® Copyright 2011 Gigaspaces Ltd. All Rights Reserved 12 Carlos Ble's post Goodbye Google App Engine “..developing on GAE introduced such a design complexity that working around it pushes us 5 months behind schedule.”
13
So Who’s Better? Google/Heroku Top-down sandbox approach Highly opinionated Designed for extreme simplicity at expense of user control Amazon Bottom-up approach Designed for extreme simplicity with a significantly higher degree of control ® Copyright 2011 Gigaspaces Ltd. All Rights Reserved 13 Fits a small subset of apps Fits a larger spectrum of apps
14
Agenda Defining the PaaS Different paths to PaaS PaaS on OpenStack Demo (Optional) ® Copyright 2011 Gigaspaces Ltd. All Rights Reserved 14
15
PaaS on OpenStack – Aim Higher Anyone should be able to: –Build their own PaaS in a snap –Run on any cloud (public/private) –Gain multi-tenancy, elasticity… Without code changes. Provide a significantly higher degree of control without substantial complexity –Language choice –OS –Middleware stack Should come pre-integrated with popular stack –Spring,Tomcat, DevOps, NoSQL, Hadoop… Designed to run the most demanding mission- critical apps ® Copyright 2011 Gigaspaces Ltd. All Rights Reserved 15
16
The Building Blocks.. Service Orchestration Recipe Service Provision Automation Multi-tenancy Management/Monitoring Package Configuration Life cycle Any process or group of processes DB, Web, NoSQL ® Copyright 2011 Gigaspaces Ltd. All Rights Reserved 16
17
Service Orchestration Layer ® Copyright 2011 Gigaspaces Ltd. All Rights Reserved 17 Grid Service Manager Agent Grid Service Container GigaSpaces Application Cluster Agent Grid Service Container Agent Grid Service Container Public Cloud Private Cloud Bare metal Scale-out Scale-in Deploy Control Data Center/Cloud
18
Agent Grid Service Container Life cycle Provisioning Monitoring Statistics Zoom-In… ® Copyright 2011 Gigaspaces Ltd. All Rights Reserved 18
19
Service Recipe (Proposal) ® Copyright 2011 GigaSpaces Ltd. All Rights Reserved 19 service { name "cassandra-service" icon new File("icon.png") defaultScalingUnit "small" IpRange "*.*.*.*" lifecycle { //life cycle events can be shell scripts or groovy closures that receive the admin as a parameter //here you can implement logic to download binaries from any repository or file server install {ServiceContext serviceContext -> myCalculatedParam = serviceContext.serviceInstance.localHostAddress.hostName; masterNodeIp = serviceContext.getServiceInstanceMatching(name("cassandra- master")).localHostAddress.hostName serviceContext.environmentParameters["localHostName"] = myCalculatedParam; port = serviceContext.portLocator.nextAvailablePort serviceContext.environmentParameters["port"] = port //inject runtime parameters to a config file / script using a utility class serviceContext.templateReplacer.replace("cassandra.yaml", serviceContext.environmentParameters) "install.sh".execute(); } uninstall "install.sh" relocate "relocate.sh" preStart "pre-start.sh" start "start.sh" postStart "post-start.sh" preShutdown "pre-shutdown.sh" shutdown "shutdown.sh" postShutdown "post-shutdown.sh" }newFileexecutestart
20
Service Recipe Monitors & SLA ® Copyright 2011 GigaSpaces Ltd. All Rights Reserved 20 monitoring { pluginClass "org.openspaces.usm.JmxMetricsCollector" config { jmxOperations["org.apache.cassandra.db:CompactionManager:CompletedTasks:Cassandra": "Completed Tasks", "org.apache.cassandra.db:CompactionManager:PendingTasks:Cassandra": "Pending Tasks", "org.apache.cassandra.db:CompactionManager:ColumnFamilyInProgress:Cassandra": "Column Family In Progress"]; jmxHost "127.0.0.1"; jmxPort 8080; } } sla { deploymentConstraints { scalingUnit small } scalingRules { rule { priority 1 when {thisSerice().anyInstace."Disk Space".lessThan(30.MB) } add 2.ScalingUnits } rule { priority 2 when {thisSerice().anyInstace."CPU Utilization".lessThan(30.Percent).for(5.Minutes)} remove 1.ScalingUnit } rule { when (alertOfType("CPU Utilization").raisedFor(anyServiceNode())) } // } } for
21
Agenda Defining the PaaS Different paths to PaaS PaaS on OpenStack Demo (Optional) ® Copyright 2011 Gigaspaces Ltd. All Rights Reserved 21
22
How does it work?
23
The Demo Use Cassandra as a private case for a service Demonstrate what it takes to –Deploy –Manage –Handle failure –Scale –Monitor ® Copyright 2011 Gigaspaces Ltd. All Rights Reserved 23
24
The Deployment Process ® Copyright 2011 Gigaspaces Ltd. All Rights Reserved 24 Cassandra Installation Cassandra Installation Agent Grid Service Container 4) Provision a Machine and install GigaSpaces 5) Start containers 6) Start cassandra Cassandra Instances Agent Grid Service Container Cassandra Instances 7) Add instance 3) Deploy 2) Pack 1) Deploy Cassandra DevOps CLI Elastic Service Manager
25
Continuous Availability ® Copyright 2011 Gigaspaces Ltd. All Rights Reserved 25 Agent Grid Service Container Cassandra Instances Grid Service Container USM starts new instance Machine failure Agent Grid Service Container Cassandra Instances Elastic Service Manager Instance failure Elastic manager starts a new instance on another machine
26
Continuous Scalability ® Copyright 2011 Gigaspaces Ltd. All Rights Reserved 26 Agent Grid Service Container Cassandra Instances Agent Grid Service Container Cassandra Instances Elastic Service Manager Agent Grid Service Container Cassandra Instances Agent Grid Service Container Cassandra Instances Monitor Not enough resources to meet the SLA Add resources to meet the SLA
27
Multi-Tenancy ® Copyright 2011 Gigaspaces Ltd. All Rights Reserved 27 Agent Grid Service Container Tenant A Elastic Service Manager Tenant B Agent Grid Service Container Tenant C Add shared tenant Add private tenant
28
Composite Application ® Copyright 2011 Gigaspaces Ltd. All Rights Reserved 28 Agent Grid Service Container Apache Elastic Service Manager Agent Grid Service Container Tomcat Agent Grid Service Container Cassandra
29
Monitoring Redirect console output Monitor statistics through JMX Pluggable monitoring Management console: –Web –CLI –API (REST, Groovy, Java) Alerts ® Copyright 2011 Gigaspaces Ltd. All Rights Reserved 29
30
Current Status JClouds provider for OpenStack is ready –Developed in Collaboration with GridDynamics & Adrian Cole –Integrated with OpenStack/Cactus build –Required a few patch updates to OpenStack code base Continuous collaboration with Citrix –Integrate the platform with the underlying IaaS stack Better performance/utilization –Full stack (pre-engineered) enterprise-ready solution ® Copyright 2011 Gigaspaces Ltd. All Rights Reserved 30
31
Join the Effort Call for action –Try out the provider jclouds –Establish a PaaS working group to drive PaaS within OpenStack community Register now for the beta program –www.gigaspaces.comwww.gigaspaces.com Learn more.. –natishalom.typepad.com –blog.gigaspaces.com ® Copyright 2011 Gigaspaces Ltd. All Rights Reserved 31
32
Summary Curving out complexity, opinionated architecture, relying on someone else’s stack is only one way to achieve productivity at the expense of control With OpenStack we can aim higher and make the application infrastructure simpler and better suited for the cloud in the first place ® Copyright 2011 Gigaspaces Ltd. All Rights Reserved 32
33
GigaSpaces Cloud Enabled Platform gigaspaces.com/paas-enablement gigaspaces.com/saas-enablement GigaSpaces XAP Product Overview: http://www.gigaspaces.com/wiki/
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.