paas on openstack

Post on 14-May-2015

5.054 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

SINGLE PLATFORM. COMPLETE SCALABILITY.

PaaS on OpenStack@natishalomCTO & Founder GigaSpaces

Agenda

Defining the PaaS

Different paths to PaaS

PaaS on OpenStack

Demo (Optional)

® Copyright 2011 Gigaspaces Ltd. All Rights Reserved 2

Defining the PaaS

There is a difference between knowing the PaaS (path), and walking the PaaS (path).

Morpheus in “The Matrix”

Quiz: What do you

expect from a PaaS?

® Copyright 2011 Gigaspaces Ltd. All Rights Reserved 3

Agenda

Defining the PaaS

Different paths to PaaS

PaaS on OpenStack

Demo (Optional)

® Copyright 2011 Gigaspaces Ltd. All Rights Reserved 4

Different Paths to PaaS

Productivity vs. Control tradeoffs

® Copyright 2011 Gigaspaces Ltd. All Rights Reserved 5

Google App Engine Architecture

® Copyright 2011 Gigaspaces Ltd. All Rights Reserved 6

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

Heroku Architecture

® Copyright 2011 Gigaspaces Ltd. All Rights Reserved 8

Routing Mesh

Dyno Grid

SQL Database

Memory Cache

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

Elastic BeanstalkApplication

Elastic Beanstalk Architecture

AutoScaling

http://myapp-staging.elasticbeanstalk.com/

Elastic Load Balancer

Apache

Tomcat

Amazon Linux AMI

Your Running Application

EC2 Instances

EC2 Instances

EC2 Instances

VersionVersion

VersionEnvironment

Ela

stic

Be

an

sta

lkH

ost

Ma

na

ge

r

® Copyright 2011 Gigaspaces Ltd. All Rights Reserved 10

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

Productivity Myths

• You have to give up control for more simplicity– Not always…

• Less code = more productivity– 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.”

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

Agenda

Defining the PaaS

Different paths to PaaS

PaaS on OpenStack

Demo (Optional)

® Copyright 2011 Gigaspaces Ltd. All Rights Reserved 14

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

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

Service Orchestration Layer

® Copyright 2011 Gigaspaces Ltd. All Rights Reserved 17

Grid Service ManagerAgent

Grid Service Container

GigaSpaces Application Cluster

Agent

Grid Service Container

Agent

Grid Service Container

Public Cloud Private CloudBare metal

Scale-out

Scale-in

DeployControl

Data Center/Cloud

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

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"  }

20

Service Recipe Monitors & SLA

® Copyright 2011 GigaSpaces Ltd. All Rights Reserved

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()))      }      //    }

  }

 

Agenda

Defining the PaaS

Different paths to PaaS

PaaS on OpenStack

Demo (Optional)

® Copyright 2011 Gigaspaces Ltd. All Rights Reserved 21

You take the control seat.

How does it work?

® Copyright 2011 Gigaspaces Ltd. All Rights Reserved

23

The Demo

• Use Cassandra as a private case for a service

• Demonstrate what it takes to– Deploy– Manage– Handle failure– Scale– Monitor

The Deployment Process

® Copyright 2011 Gigaspaces Ltd. All Rights Reserved 24

CassandraInstallation

CassandraInstallation

Agent

Grid Service Container

4) Provision a Machine and installGigaSpaces

5) Start containers

6) Start cassandra

CassandraInstances

Agent

Grid Service Container

CassandraInstances

7) Add instance

3) Deploy

2) Pack

1) Deploy Cassandra

DevOps CLIElastic Service

Manager

Continuous Availability

® Copyright 2011 Gigaspaces Ltd. All Rights Reserved 25

Agent

Grid Service Container

CassandraInstances

Grid Service Container

USM starts new instance

Machine failure

Agent

Grid Service Container

CassandraInstances

Elastic ServiceManager

Instance failure

Elastic manager starts a new instance on another machine

Continuous Scalability

® Copyright 2011 Gigaspaces Ltd. All Rights Reserved 26

Agent

Grid Service Container

CassandraInstances

Agent

Grid Service Container

CassandraInstances

Elastic ServiceManager

Agent

Grid Service Container

CassandraInstances

Agent

Grid Service Container

CassandraInstances

Monitor

Not enough resources to meet the SLA

Add resources to meet the SLA

Multi-Tenancy

® Copyright 2011 Gigaspaces Ltd. All Rights Reserved 27

Agent

Grid Service Container

Tenant A

Elastic ServiceManager

Tenant B

Agent

Grid Service Container

Tenant C

Add shared tenant

Add private tenant

® Copyright 2011 Gigaspaces Ltd. All Rights Reserved

28

Composite Application

Agent

Grid Service Container

Apache

Elastic ServiceManager

Agent

Grid Service Container

Tomcat

Agent

Grid Service Container

Cassandra

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

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

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.com

• Learn more..– natishalom.typepad.com– blog.gigaspaces.com

® Copyright 2011 Gigaspaces Ltd. All Rights Reserved 31

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

GigaSpaces Cloud Enabled Platform gigaspaces.com/paas-enablement

gigaspaces.com/saas-enablement

GigaSpaces XAP Product Overview:http://www.gigaspaces.com/wiki/

top related