42
www.devoxx.com Dynamic Deployment and Scalability for the Cloud Jerome Bernard Director, EMEA Operations Elastic Grid, LLC.

Elastic Grid BoF talk at Devoxx 08 (Antwerp, Belgium)

Embed Size (px)

Citation preview

Page 1: Elastic Grid BoF talk at Devoxx 08 (Antwerp, Belgium)

www.devoxx.com

Dynamic Deployment and Scalability for the Cloud

Jerome BernardDirector, EMEA OperationsElastic Grid, LLC.

Page 2: Elastic Grid BoF talk at Devoxx 08 (Antwerp, Belgium)

www.devoxx.com

Overall Presentation Goals

Learn what Cloud Computing is about

Learn how to deploy and scale applications on any Cloud Platform

Page 3: Elastic Grid BoF talk at Devoxx 08 (Antwerp, Belgium)

www.devoxx.com

Speaker’s qualificationsJerome Bernard is a committer on Rio, Typica, JiBX and co-founder of Elastic Grid, LLC.

Jerome Bernard speaks frequently on Cloud Computing

Recently: JavaOne, JavaZone and the Open World Forum

Jerome Bernard is working with many clients using EC2, from TV channels to specialized media processing companies.

Cloud Computing event in the work for early ‘09 in Paris, France. You’re invited!

3

Page 4: Elastic Grid BoF talk at Devoxx 08 (Antwerp, Belgium)

www.devoxx.com

Agenda

Introduction to the Cloud ComputingIntroduction to Amazon EC2Introduction to Elastic Grid

Sample DeploymentsDemo

Page 5: Elastic Grid BoF talk at Devoxx 08 (Antwerp, Belgium)

www.devoxx.com

Why Cloud Computing?

Next logical step after virtualization

We want to use resources to their best usage, nothing more, nothing less, and be able to scale hardware too

Can your traditional hosting scale to thousands of machines in a week?

Can you afford spending huge amounts buying hardware if you only need it for a week?

5

Intro to the Cloud Computing

Page 6: Elastic Grid BoF talk at Devoxx 08 (Antwerp, Belgium)

www.devoxx.com

Which Cloud Computing flavor?

Software as a Service (SaaS)

Platform as a Service (PaaS)

Infrastructure as a Service (IaaS)

References

SaaS : SalesForce, Facebook, LinkedIn

PaaS : SalesForce (EC2), Google App Engine, Microsoft Azure

IaaS : Amazon EC2, GoGrid, Flexiscale6

Intro to the Cloud Computing

Page 7: Elastic Grid BoF talk at Devoxx 08 (Antwerp, Belgium)

www.devoxx.com

Google App Engine

Make use of BigTable and Memcache

Integrate with Google Accounts

But in Python only...

Microsoft Azure

Mostly thought for Windows and .Net solutions

Pricing model yet unclear

7

Platform as a Service

Page 8: Elastic Grid BoF talk at Devoxx 08 (Antwerp, Belgium)

www.devoxx.com

PaaS Pros

Usually easier to use than IaaS

Integrate with specific environments (Google, Microsoft Live, etc.)

PaaS Cons

Less/No control over the Infrastructure

Languages/Services chosen by the provider

Vendor Lock-in

8

PaaS vs IaaS

Page 9: Elastic Grid BoF talk at Devoxx 08 (Antwerp, Belgium)

www.devoxx.com

Amazon EC2 is Infrastructure as a Service (IaaS)

Rent a server on a per hour base (from $.10 to $.80)

Many Operating Systems (Linux, Solaris, Windows)

EC2 Amazon Machine Image (AMI)

Operating and system stack

Deployed to Amazon S3 (cheap storage)

EC2 instances

Virtual machines that run AMI

9

Introduction to Amazon EC2

Page 10: Elastic Grid BoF talk at Devoxx 08 (Antwerp, Belgium)

www.devoxx.com

Typical Architecture Taxonomy

10

Introduction to Amazon EC2

Enterprise Containers, JEE, Spring, ESBs, OSGi, ...

Hardware Platform

Applications

Provisioning, Management, Monitoring & Metering

Middleware Support, JDBC, JMS, …

Page 11: Elastic Grid BoF talk at Devoxx 08 (Antwerp, Belgium)

www.devoxx.com

Typical Architecture Taxonomy

11

Introduction to Amazon EC2

Enterprise Containers, JEE, Spring, ESBs, OSGi, ...

Hardware Platform

Applications

Provisioning, Management, Monitoring & Metering

Middleware Support, JDBC, JMS, …

Page 12: Elastic Grid BoF talk at Devoxx 08 (Antwerp, Belgium)

www.devoxx.com

Typical Architecture Taxonomy

11

Introduction to Amazon EC2

Enterprise Containers, JEE, Spring, ESBs, OSGi, ...

Hardware Platform

Applications

Virtualized

Provisioning, Management, Monitoring & Metering

Middleware Support, JDBC, JMS, …

AMI

Page 13: Elastic Grid BoF talk at Devoxx 08 (Antwerp, Belgium)

www.devoxx.com

EC2 AMI Challenges

The EC2 AMI is a boot image, requires substantial system administrator knowledge

As application code changes, AMIs typically need to change / be re-bundled

12

Amazon EC2 pitfalls

Copy private key and certificate (for bundling

image)

Install and configure requisite software

Upload to S3

Boot base AMI

Page 14: Elastic Grid BoF talk at Devoxx 08 (Antwerp, Belgium)

www.devoxx.com

Infrastructure challenges

Networking: no multicast but this is what most Java framework uses for clustering (JGroups, Shoal, etc.)

Backup: the local filesystem has no durability guarantee

From the time you ask for an EC2 instance to boot and the time it is ready, you can expect a few minutes...

Failures: you have to design your application to be resilient to EC2 instance failures. Anyway you should always do so :-)

13

Amazon EC2 pitfalls (cont.)

Page 15: Elastic Grid BoF talk at Devoxx 08 (Antwerp, Belgium)

www.devoxx.com

Some few AWS advices

I/O: prefer an than Elastic Block Storage (EBS) volume to a local filesystem

Snapshot EBS volumes periodically (incremental backup) but export to S3 for complete backups

Choose the right instance type

Don’t use Small for production!

Don’t choose based on disk space (think EBS)

Choose based on available memory and CPU cores

14

Amazon EC2 advices

Page 16: Elastic Grid BoF talk at Devoxx 08 (Antwerp, Belgium)

www.devoxx.com

Elastic Grid (abbreviated as EG)

Project initiated in early ’08

AGPLv3 license

Part of the OW2 community

Elastic Grid, LLC. founded in May ‘08

Dennis Reedy: Director US Operations, founder of the Rio OSS project, old VP Advanced Technology at Gigaspaces, old Principal Engineer at Sun

Jerome Bernard: we already went through this :-)

15

Introduction to Elastic Grid

Page 17: Elastic Grid BoF talk at Devoxx 08 (Antwerp, Belgium)

www.devoxx.com

Elastic Grid (abbreviated as EG)

16

Introduction to Elastic Grid

Page 18: Elastic Grid BoF talk at Devoxx 08 (Antwerp, Belgium)

www.devoxx.com

Cloud Management Fabric

Provides an adaptive capability to dynamically instantiate, monitor & manage application components

The deployment provides context on service requirements, dependencies, associations and operational parameters

Provisioning services additionally provides pluggable download distribution and resource utilization analysis mechanisms to effectively use resources on the network

17

Introduction to Elastic Grid

Page 19: Elastic Grid BoF talk at Devoxx 08 (Antwerp, Belgium)

www.devoxx.com

Cloud Virtualization Layer

Abstracts specific Cloud Computing provider technology

Allows portability across specific implementations

You can deploy on:

Private Cloud

Amazon EC2

More to come soon...

18

Introduction to Elastic Grid

Page 20: Elastic Grid BoF talk at Devoxx 08 (Antwerp, Belgium)

www.devoxx.com

Service Level Agreements (SLAs)

Specified in Deployment Descriptors: non-intrusive with your code

Provides selection of the best machine where to deploy the services based on the requirements

Provides active monitoring of SLA with many strategies like service relocation, provisioning of additional instances, provisioning of additional services, etc.

Green Computing and Cost Savings: when the load decreases, EG un-provision your unneeded services instances and servers

19

Introduction to Elastic Grid

Page 21: Elastic Grid BoF talk at Devoxx 08 (Antwerp, Belgium)

www.devoxx.com

Elastic Grid Architecture

20

Introduction to Elastic Grid

Administrative Console S3

Monitor & Meter

Application Monitor

SLA PolicyEnforcement

Application Agents

Page 22: Elastic Grid BoF talk at Devoxx 08 (Antwerp, Belgium)

www.devoxx.com

Elastic Grid Architecture

20

Introduction to Elastic Grid

Administrative Console S3

Monitor & Meter

Application Monitor

SLA PolicyEnforcement

Application Agents

Application MonitorDeploys and manages applications (composed of services), provides failover (if service(s) fail they are re-created), and

methods to scale and relocate services

Page 23: Elastic Grid BoF talk at Devoxx 08 (Antwerp, Belgium)

www.devoxx.com

Elastic Grid Architecture

20

Introduction to Elastic Grid

Administrative Console S3

Monitor & Meter

Application Monitor

SLA PolicyEnforcement

Application Agents

Application AgentRepresents the capabilities of a virtualized compute resource,

acts as a dynamic agent instantiating application services

EG AMI

Page 24: Elastic Grid BoF talk at Devoxx 08 (Antwerp, Belgium)

www.devoxx.com

Typical Architecture Taxonomy

21

Introduction to Elastic Grid

Hardware Platform

Applications

Provisioning, Management, Monitoring & Metering

Middleware Support, JDBC, JMS, …

Enterprise Containers, JEE, Spring, ESBs, OSGi, ...

Page 25: Elastic Grid BoF talk at Devoxx 08 (Antwerp, Belgium)

www.devoxx.com

Typical Architecture Taxonomy

22

Introduction to Elastic Grid

Hardware Platform

Applications

Provisioning, Management, Monitoring & Metering

Middleware Support, JDBC, JMS, …

Enterprise Containers, JEE, Spring, ESBs, OSGi, ...

Page 26: Elastic Grid BoF talk at Devoxx 08 (Antwerp, Belgium)

www.devoxx.com

Typical Architecture Taxonomy

22

Introduction to Elastic Grid

Hardware Platform

Applications

Virtualized

Provisioning, Management, Monitoring & Metering

Middleware Support, JDBC, JMS, …

Enterprise Containers, JEE, Spring, ESBs, OSGi, ...

DynamicApplication

EG AMI

Page 27: Elastic Grid BoF talk at Devoxx 08 (Antwerp, Belgium)

www.devoxx.com

Deploy

Upload (modified) app to S3

Boot EG AMIs...

Deployments with Elastic Grid

EG AMIs are pre-set, no need to (re-)bundle

As application code changes, upload to S3 and deploy

Focuses on developer productivity

23

Introduction to Elastic Grid

Page 28: Elastic Grid BoF talk at Devoxx 08 (Antwerp, Belgium)

www.devoxx.com

Introduction to Elastic GridElastic Grid Deployments

Deploy application code to S3

Run the deploy command

All code is dynamically served and instantiated

Application is monitored and managed across EC2 instances

Deploy

Upload S3

ApplicationMonitors

Application Agents

As needed download application resources

activate

1

2

3

Page 29: Elastic Grid BoF talk at Devoxx 08 (Antwerp, Belgium)

www.devoxx.com

Introduction to Elastic GridElastic Grid Scalability on EC2

Across existing EC2 instances

25

App Agent EC2 Instance

App ServiceSLA

Policy Handler

Memory Observer

80%

• Allocate an Application Service• Create a SLA Policy Handler that registers for Memory utilization notifications• SLA has upper limit set to 80%

register

allocate

App Monitor EC2 Instance

Page 30: Elastic Grid BoF talk at Devoxx 08 (Antwerp, Belgium)

www.devoxx.com

Introduction to Elastic GridElastic Grid Scalability on EC2

Across existing EC2 instances

26

80%

App ServiceSLA

Policy Handler

• Memory utilization exceeds 80%• SLA Policy Handler is notified• App Monitor allocates another Application Service instance to appropriate App Agent Instance

notify

increment

App Agent AMI

Memory Observer

App Monitor AMI

Page 31: Elastic Grid BoF talk at Devoxx 08 (Antwerp, Belgium)

www.devoxx.com

Introduction to Elastic GridElastic Grid Scalability on EC2

Across existing EC2 instances

26

80%

App ServiceSLA

Policy Handler

• Memory utilization exceeds 80%• SLA Policy Handler is notified• App Monitor allocates another Application Service instance to appropriate App Agent Instance

notify

increment

App Agent AMI

Memory Observer

App Monitor AMI

Page 32: Elastic Grid BoF talk at Devoxx 08 (Antwerp, Belgium)

www.devoxx.com

Introduction to Elastic GridElastic Grid Scalability on EC2

New EC2 instance

27

App Agent EC2 Instance

App ServiceEC2

Policy Handler

80%

App Monitor EC2 Instance

• Allocate an Application Service• Create an EC2 Policy Handler which registers for Memory utilization notifications• SLA has upper limit set to 80%

Memory Observer

allocate

Page 33: Elastic Grid BoF talk at Devoxx 08 (Antwerp, Belgium)

www.devoxx.com

Introduction to Elastic GridElastic Grid Scalability on EC2

New EC2 instance

28

App ServiceSLA

Policy Handler

Memory Observer

80%

increment

App Monitor AMI

notify

App Agent EC2 Instance

Page 34: Elastic Grid BoF talk at Devoxx 08 (Antwerp, Belgium)

www.devoxx.com

Introduction to Elastic GridElastic Grid Scalability on EC2

New EC2 instance

28

App ServiceSLA

Policy Handler

Memory Observer

80%

increment

App Monitor AMI

notifyApp Agent EC2 Instance

App Service

Memory Observer

SLAPolicy Handler

App Agent EC2 Instance

Page 36: Elastic Grid BoF talk at Devoxx 08 (Antwerp, Belgium)

www.devoxx.com

Calculator

Made of 4 core services (add, subtract, divide, multiply)

Consumed by a Calculator, with the help of dynamic associations

30

Sample Deployments

Page 37: Elastic Grid BoF talk at Devoxx 08 (Antwerp, Belgium)

www.devoxx.com

Spring Bean Deployment

Simple tell the name of the Spring context

.. and the Bean to expose as a Service

You still benefit from SLAs, associations, etc.

31

Sample Deployments

Page 38: Elastic Grid BoF talk at Devoxx 08 (Antwerp, Belgium)

www.devoxx.com

SummarySo what does Elastic Grid for the app?

Ease development and deployment of Java applications using Amazon services

Provides automated management, fault detection and scalability for the application

To be soon available: Cloud Bursting!

Why Elastic Grid should be used?

Avoid Cloud Computing platforms pitfalls

Focus on development, not infrastructure

32

Page 39: Elastic Grid BoF talk at Devoxx 08 (Antwerp, Belgium)

www.devoxx.com

DEMO

Spring dm Server

Deployment on Amazon

Page 40: Elastic Grid BoF talk at Devoxx 08 (Antwerp, Belgium)

www.devoxx.com

Call to Action

Private Beta: come and see me at the end of the talk so that you can get an early access to Elastic Grid.

Conference with Amazon Technology Evangelist on Friday Morning

Page 42: Elastic Grid BoF talk at Devoxx 08 (Antwerp, Belgium)

www.devoxx.com

Thanks for your attention!

Elastic Grid Website: http://www.elastic-grid.comElastic Grid Blog: http://blog.elastic-grid.comElastic Grid Wiki: http://wiki.elastic-grid.com