running your java ee 6 applications in the cloud @ silicon valley code camp 2010

47
<Insert Picture Here> Running your Java EE 6 Applications in the Cloud Arun Gupta, Java EE & GlassFish Guy blogs.sun.com/arungupta, @arungupta

Upload: arun-gupta

Post on 15-Jan-2015

2.088 views

Category:

Technology


2 download

DESCRIPTION

Running your Java EE 6 applications in the Cloud @ Silicon Valley Code Camp 2010

TRANSCRIPT

Page 1: Running your Java EE 6 applications in the Cloud @ Silicon Valley Code Camp 2010

<Insert Picture Here>

Running your Java EE 6 Applications in the Cloud

Arun Gupta, Java EE & GlassFish Guyblogs.sun.com/arungupta, @arungupta

Page 2: Running your Java EE 6 applications in the Cloud @ Silicon Valley Code Camp 2010

2

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 @ Silicon Valley Code Camp 2010

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• Evolving Java EE for Cloud• Conclusions

Page 4: Running your Java EE 6 applications in the Cloud @ Silicon Valley Code Camp 2010

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 @ Silicon Valley Code Camp 2010

5

Java EE 6 Demo

Page 6: Running your Java EE 6 applications in the Cloud @ Silicon Valley Code Camp 2010

6

Oracle's definition of Cloud Computing

● Virtualized elastic platform for applications● Standards-based application development/execution platform● Includes hardware and software● Virtualized and Elastic● Runs a wide variety of applications● On both public and private clouds

Page 7: Running your Java EE 6 applications in the Cloud @ Silicon Valley Code Camp 2010

7

Oracle Exalogic Elastic Cloud

● Hardware and Software engineered to work together

● 100% Fault-tolerant & Scalable On-Demand

● 30 compute servers, 360 cores, 980 GB Solid-state disk, 40 GB/sec Infiniband, Patch centrally

● Servers, Network, Storage, VM, Operating System, Middleware, Develop/Run all applications

Page 8: Running your Java EE 6 applications in the Cloud @ Silicon Valley Code Camp 2010

8

Based uponresearch work ...

Page 9: Running your Java EE 6 applications in the Cloud @ Silicon Valley Code Camp 2010

9

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 10: Running your Java EE 6 applications in the Cloud @ Silicon Valley Code Camp 2010

10

Java EE 6 on Amazon

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

• Instances managed by SMF• GlassFish: 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 11: Running your Java EE 6 applications in the Cloud @ Silicon Valley Code Camp 2010

11

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 12: Running your Java EE 6 applications in the Cloud @ Silicon Valley Code Camp 2010

12

mod_jk

GlassFish-1 GlassFish-1

MySQL

GlassFish-N. . .

ManagedUsing

“cladmin”

Page 13: Running your Java EE 6 applications in the Cloud @ Silicon Valley Code Camp 2010

13

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 14: Running your Java EE 6 applications in the Cloud @ Silicon Valley Code Camp 2010

14

Page 15: Running your Java EE 6 applications in the Cloud @ Silicon Valley Code Camp 2010

15

100,000+surveys/hr

GlassFish 3.0.1 JAX-RS EJB 3.1 JPA 2

Page 16: Running your Java EE 6 applications in the Cloud @ Silicon Valley Code Camp 2010

16

Pricing

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

Page 17: Running your Java EE 6 applications in the Cloud @ Silicon Valley Code Camp 2010

17

Java EE 6 on RightScaleRightS

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 18: Running your Java EE 6 applications in the Cloud @ Silicon Valley Code Camp 2010

18

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 19: Running your Java EE 6 applications in the Cloud @ Silicon Valley Code Camp 2010

19

High Availability Deployment

DNS 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 20: Running your Java EE 6 applications in the Cloud @ Silicon Valley Code Camp 2010

20

RightScripts

Page 21: Running your Java EE 6 applications in the Cloud @ Silicon Valley Code Camp 2010

21

Alerts

Page 22: Running your Java EE 6 applications in the Cloud @ Silicon Valley Code Camp 2010

22

Page 23: Running your Java EE 6 applications in the Cloud @ Silicon Valley Code Camp 2010

23

Pricing

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

Page 24: Running your Java EE 6 applications in the Cloud @ Silicon Valley Code Camp 2010

24

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 25: Running your Java EE 6 applications in the Cloud @ Silicon Valley Code Camp 2010

25

Page 26: Running your Java EE 6 applications in the Cloud @ Silicon Valley Code Camp 2010

26

GlassFish Properties

Page 27: Running your Java EE 6 applications in the Cloud @ Silicon Valley Code Camp 2010

27

Resource Allocation

Page 28: Running your Java EE 6 applications in the Cloud @ Silicon Valley Code Camp 2010

28

Mapping to Amazon Instances

Page 29: Running your Java EE 6 applications in the Cloud @ Silicon Valley Code Camp 2010

29

How to Deploy ?Design → Deployment

Page 30: Running your Java EE 6 applications in the Cloud @ Silicon Valley Code Camp 2010

30

UninstalledInstallingInstalled

ConfiguringConfigured

StartingStarted

Page 31: Running your Java EE 6 applications in the Cloud @ Silicon Valley Code Camp 2010

31

How to Deploy ?Deploying Your App

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

• MySQL GUI Tool

Page 32: Running your Java EE 6 applications in the Cloud @ Silicon Valley Code Camp 2010

32

Pricing

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

Page 33: Running your Java EE 6 applications in the Cloud @ Silicon Valley Code Camp 2010

33

Java EE 6 on Joyent

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

● Environment● Language: Java, PHP, Ruby, …● Server: GlassFish, Apache, nginx, …● Database: MySQL, Oracle, ...

Page 34: Running your Java EE 6 applications in the Cloud @ Silicon Valley Code Camp 2010

34

Vs Amazon

Page 35: Running your Java EE 6 applications in the Cloud @ Silicon Valley Code Camp 2010

35

Java EE 6 on Joyent

● 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

Page 36: Running your Java EE 6 applications in the Cloud @ Silicon Valley Code Camp 2010

36

Page 37: Running your Java EE 6 applications in the Cloud @ Silicon Valley Code Camp 2010

37

Page 38: Running your Java EE 6 applications in the Cloud @ Silicon Valley Code Camp 2010

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 @ Silicon Valley Code Camp 2010

39

Multi-cloud Vendors

Page 40: Running your Java EE 6 applications in the Cloud @ Silicon Valley Code Camp 2010

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 @ Silicon Valley Code Camp 2010

41

What does Java EE offer to Cloud ?

● Containers● Injectable services● Scale to large clusters● Security model● . . .

Page 42: Running your Java EE 6 applications in the Cloud @ Silicon Valley Code Camp 2010

42

What can Java EE do for Clouds ?

● Tighter requirements for resource and state management

● Better isolation between applications● Potential standard APIs for NRDBMS, Caching, …● HTML5● Common management and monitoring interfaces● Better packaging

● Apps/Data are (multiple) versioned, Upgrades, Expose/Connect to services, QoS attributes, ...

● Evolution, not revolution

Page 43: Running your Java EE 6 applications in the Cloud @ Silicon Valley Code Camp 2010

GlassFish Distributions

Distribution License Features

GlassFish Open Source Edition 3.0.1

CDDL & GPLv2

• Java EE 6 Compatibility• No Clustering• Clustering planned in 3.1• mod_jk for load balancing

GlassFish Open Source Edition 2.1.1

CDDL & GPLv2

• Java EE 5 Compatibility• In memory replication• mod_loadbalancer

Oracle GlassFish Server 3.0.1

Commercial • GlassFish Open Source Edition 3.0.1• GlassFish Server Control• Clustering planned in 3.1

Oracle GlassFish Server 2.1.1

Commercial • GlassFish Open Source Edition 2.1.1• Enterprise Manager • HADB

Clustering Coming Soon!

Page 44: Running your Java EE 6 applications in the Cloud @ Silicon Valley Code Camp 2010

44

GlassFish Roadmap Detail

©2010 Oracle Corporation

Page 45: Running your Java EE 6 applications in the Cloud @ Silicon Valley Code Camp 2010

45

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

• Talk to us at [email protected].

Page 46: Running your Java EE 6 applications in the Cloud @ Silicon Valley Code Camp 2010

46

References

• glassfish.org• oracle.com/goto/glassfish• blogs.sun.com/theaquarium• glassfish.org/roadmap• youtube.com/user/GlassFishVideos• Follow @glassfish

Page 47: Running your Java EE 6 applications in the Cloud @ Silicon Valley Code Camp 2010

<Insert Picture Here>

Running your Java EE 6 Applications in the Cloud

Arun Gupta, Java EE & GlassFish Guyblogs.sun.com/arungupta, @arungupta