Top Banner
Running your Java EE 6 Applications in the Cloud Arun Gupta Oracle blogs.sun.com/arungupta @arungupta
42
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Running your Java EE 6 applications in the Cloud

Running your Java EE 6 Applications in the Cloud

Arun GuptaOracle

blogs.sun.com/arungupta@arungupta

Page 2: Running your Java EE 6 applications in the Cloud

The following/preceding is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into any contract. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions.The development, release, and timing of any features or functionality described for Oracle’s products remains at the sole discretion of Oracle.

Page 3: Running your Java EE 6 applications in the Cloud

3

Agenda Introduction to Java EE 6 Java EE 6 on Amazon Java EE 6 on RightScale Java EE 6 on Elastra Java EE 6 on Joyent Multi-cloud Vendor Comparison Conclusions

Page 4: Running your Java EE 6 applications in the Cloud

4

Brief Introduction to Java EE 6

Light-weight Java EE 6 Web Profile, Pruning

Extensible Embrace open-source frameworks using web fragments

Easy-to-use CDI, Bean Validation, JAX-RS JPA 2, JSF 2, Servlets 3, EJB 3.1 Annotations-based, Optional “web.xml”/”faces-config.xml”, EJB-in-

WAR, ...

Page 5: Running your Java EE 6 applications in the Cloud

5

Java EE 6 Demo

Page 6: Running your Java EE 6 applications in the Cloud

6

Based uponresearch work ...

Page 7: Running your Java EE 6 applications in the Cloud

7

What is Amazon ?

Boot server instances, scale up/down, pay-per-use EC2: Compute capacity in the cloud S3: Storage capacity in the cloud (1b → 5 GB) RRS (reduced redundancy), RDS (database), FWS

(fulfillment), SQS (queue), SNS (notification), CloudWatch (monitoring), FPS (payment), VPC (private cloud), EBS (block storage), ...

Page 8: Running your Java EE 6 applications in the Cloud

8

Java EE 6 on Amazon

2 New AMIs based on Hardened OpenSolarisOracle GlassFish Server 3.0 (not released) Apache HTTP Server + mod_jk (not released) Pre-existing MySQL Database 5.1 AMI

Instances managed by SMFGlassFish: svcadm restart/enable/disable svc:/application/GlassFish/domain1:default

MySQL SMF: svcadm enable mysql mod_jk: svcadm restart/refresh/enable/disable svc:/network/http:apache22

Page 9: Running your Java EE 6 applications in the Cloud

9

Java EE 6 on Amazon# Define a load-balancing worker worker.list=worker1 ## Define an ajp13 worker to represent instance1 worker.instance1.type=ajp13 worker.instance1.host=ec2-67-202-51-223.compute-1.amazonaws.com worker.instance1.port=8009 ## Define an ajp13 worker to represent instance2 worker.instance2.type=ajp13 worker.instance2.host=ec2-67-202-7-236.compute-1.amazonaws.com worker.instance2.port=8009 ## Define the type of worker1 worker.worker1.type=lb # Add inst1 and inst2 to the balance_workers property of worker1 worker.worker1.balance_workers=instance1,instance2

AJP_INSTANCE_NAMEin GlassFish instances

Page 10: Running your Java EE 6 applications in the Cloud

10

Java EE 6 on Amazonmod_jk

GlassFish-1 GlassFish-2

MySQL

GlassFish-N. . .

ManagedUsing

“cladmin”

Page 11: Running your Java EE 6 applications in the Cloud

11

How to Deploy ? Launch MySQL AMI, create database, user, privileges, … Launch 1 or more GlassFish AMI

Set AJP_INSTANCE_NAME in each GlassFish

Administer multiple instances using cladmin --target instance-list OR set AS_TARGET=”...” cladmin create-jdbc-connection-pool … cladmin deploy ~/samples/hello.war

Launch mod_jk AMI Configure “worker.properties”

Page 12: Running your Java EE 6 applications in the Cloud

12

Page 13: Running your Java EE 6 applications in the Cloud

13

20,000surveys/hr

GlassFish 3.0.1 JAX-RS EJB 3.1 JPA 2

Page 14: Running your Java EE 6 applications in the Cloud

14

Pricing

http://aws.amazon.com/ec2/pricing/

Page 15: Running your Java EE 6 applications in the Cloud

15

What is RightScale ?

SaaS to manage servers in multiple IaaS Automates everything that keeps operations busy

Provides a library of pre-configured assets Design: Cloud-Ready ServerTemplates Deploy: Group of Servers, Macros Full Automation: Autoscaling, Active monitoring based on real-time

triggers, Configuration, Macros, … Best practices

Professional Services

Page 16: Running your Java EE 6 applications in the Cloud

16

RightS

cale

AmazonUS East

AmazonUS West

AmazonEU

AmazonAsia Rackspace IBM

Cloud VMWare

Cloud-ReadyS olutions

Expertise& S upport

Web Site

Grid Right

Scripts

CloudApplications

AutomationArchitecture

Page 17: Running your Java EE 6 applications in the Cloud

17

How to Deploy ?Macro Definition

Launches a new virtual server with clean install of Ubuntu

Install GlassFish Server Open Source Edition 3.0 Detects database in the deployment

Installs MySQL Connector/J Driver Creates a JDBC Connection Pool and Resource

Install samples Archives (WAR/EAR/...) stored in S3

Page 18: Running your Java EE 6 applications in the Cloud

18

High Availability DeploymentDNS Round Robin

Amazon S3

Load Balancer-1 Load Balancer-2

GlassFish-1 GlassFish-2 GlassFish-3 GlassFish-n. . .

MasterDB

SlaveDB EBS

VolEBSVol

replication

Amazon EC2

Min: 0;Max: 5

Server Array

Page 19: Running your Java EE 6 applications in the Cloud

19

RightScripts

Page 20: Running your Java EE 6 applications in the Cloud

20

Alerts

Page 21: Running your Java EE 6 applications in the Cloud

21

Page 22: Running your Java EE 6 applications in the Cloud

22

Pricing

http://www.rightscale.com/products/plans-pricing/

Page 23: Running your Java EE 6 applications in the Cloud

23

What is Elastra ?

Design, deploy, manage system designs on private/public clouds Component: A piece of software such as GlassFish or Apache Connectors: Enables components to communicate Resources: Network storage

Manage a hybrid cloud (Design → Deployment(s)) VMWare vCenter 2.5, VMWare vSphere4, AWS

Enterprise Cloud Server (ECS) or AWS Edition

Page 24: Running your Java EE 6 applications in the Cloud

24

Page 25: Running your Java EE 6 applications in the Cloud

25

GlassFish Properties

Page 26: Running your Java EE 6 applications in the Cloud

26

Resource Allocation

Page 27: Running your Java EE 6 applications in the Cloud

27

Mapping to Amazon Instances

Page 28: Running your Java EE 6 applications in the Cloud

28

How to Deploy ?Design → Deployment

Page 29: Running your Java EE 6 applications in the Cloud

29

UninstalledInstallingInstalled

ConfiguringConfigured

StartingStarted

Page 30: Running your Java EE 6 applications in the Cloud

30

How to Deploy ?Deploying Your App

Web-based Admin Console to deploy/manage application on GlassFish

MySQL GUI Tool

Page 31: Running your Java EE 6 applications in the Cloud

31

Pricing

Not publicly listed on website 24 x 7 support Unlimited support tickets 2-hour guaranteed response time Dedicated support engineer Forums . . .

Page 32: Running your Java EE 6 applications in the Cloud

32

What is Joyent ?

High-performance and reliable public, private, and hybrid cloud

Environment Development Language: Java, PHP, Ruby, … Server: GlassFish, Apache, Nginx, … Database: MySQL, Oracle, …

Page 33: Running your Java EE 6 applications in the Cloud

33

Vs Amazon

Page 34: Running your Java EE 6 applications in the Cloud

34

How to Deploy ?

Smart Machine (nee Accelerators) Public IP Address Root access to Solaris Zone Guaranteed minimum CPU/RAM Dedicated IP address + 100 Mbps connectivity Common packages like MySQL can be installed using Webmin

“sftp” to upload application packages

Well-trained operations and systems staff

Page 35: Running your Java EE 6 applications in the Cloud

35

Page 36: Running your Java EE 6 applications in the Cloud

36

Page 37: Running your Java EE 6 applications in the Cloud

37

Sample Deployment

http://fhm8e4fz.joyent.us:8080/

Page 38: Running your Java EE 6 applications in the Cloud

38

Pricing Included support issues

Inaccessible smart machine Slow performance System-level functionality not working

$199/incident (max one hour)

http://www.joyent.com/support/support-programs/

Page 39: Running your Java EE 6 applications in the Cloud

39

Multi-cloud Vendors

Page 40: Running your Java EE 6 applications in the Cloud

40

Vendor Language Compute Storage Provider

RightScale Bash, Ruby, Perl

Yes Yes Amazon, GoGrid, FlexiScale, Eucalyptus

Elastra Design Yes ?? Amazon, ??

SimpleCloud PHP No Yes, Queing

Microsoft, IBM, Rackspace, Nirvanix, GoGrid

libcloud Python Yes ?? Dreamhost, Amazon, Eucalyptus, IBM Cloud, Linode, Rackspace, RimuHosting, SliceHost, vCloud, ...

jClouds Java, Clojure

Yes Yes Opscode, Chef, IBM Developer Cloud, Eucalyptus, Google Storage, Terremark, Slicehost, Box.net, Azure

DeltaCloud Ruby, REST

Create/Start/Stop/Reboot/Destroy

No Amazon, GoGrid, OpenNebula, Rackspace, RHEV-M, RimuHosting

CloudLoop Java No Yes Amazon, Nirvanix

Dasein Java ?? ?? Amazon, Rackspace, vSphere

Page 41: Running your Java EE 6 applications in the Cloud

41

GlassFish 3.1 Clustering

DAS fruits

food

broccoli

spinach

apple

banana

orange

GlassFish 3.1 Sample Cluster Topology

Instance Cluster Node

http://blogs.sun.com/arungupta/entry/totd_138_glassfish_3_1

Page 42: Running your Java EE 6 applications in the Cloud

42

Conclusions

Java EE 6 is light-weight, flexible, easy-to-use GlassFish Server Open Source Edition 3.0 and Oracle

GlassFish Server 3.0 provides feature-rich implementation

Java EE 6 applications can be easily deployed on Amazon, RightScale, Elastra, Joyent, and other clouds