This document discusses running Java EE 6 applications in the cloud. It provides an overview of deploying Java EE 6 applications to various cloud platforms including Amazon Web Services, RightScale, Microsoft Azure, and Joyent. It also discusses the Java EE 7 specification and how it will further support cloud deployments with a focus on multi-tenancy and elasticity. Lastly, it outlines the GlassFish Server distributions for both open source and commercial use on private and public clouds.
JavaOne India 2011 - Running your Java EE 6 Apps in the Cloud
1. <Insert Picture Here>
Running your Java EE 6 Applications in the Cloud
Arun Gupta, Java EE & GlassFish Guy
blogs.oracle.com/arungupta, @arungupta
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.
2
3. Agenda
• Introduction to Java EE 6 & Demo
• Java EE 6 on
•
•
•
•
• Multi-cloud Vendor Comparison
• Evolving Java EE for Cloud
• Conclusions
3
4. Light-weight
• Java EE 6 Web Profile
• Pruning
• Pruned today, means
• Optional in the next release
• Deleted in the subsequent releases
• Technologies marked in Javadocs
• EJB 2.x Entity Beans, JAX-RPC, JAXR, JSR 88
4
7. 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
7
8. 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
8
10. 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)
• Simple Email Service, RDS (Database), FWS
(fulfillment), SQS (queue), SNS (notification),
CloudWatch (monitoring), FPS (payment), VPC
(private cloud), EBS (block storage), ...
10
11. 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
11
12. Java EE 6 on Amazon
# Define a load-balancing worker
AJP_INSTANCE_NAME
worker.list=worker1 in GlassFish instances
#
# 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
12
13. mod_jk
Managed
Using
“cladmin”
...
GlassFish-1 GlassFish-1 GlassFish-N
MySQL
13
14. 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”
14
18. Java EE 6 on RightScale
Cloud
Applications
Automation C loud-R eady Expertise
R ig htS c a le
Architecture S olutions & S upport
Web
Site
Right
Grid Scripts
Amazon Amazon Amazon Amazon IBM
R ackspace VM Ware
US E as t US Wes t EU As ia C loud
18
19. 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
19
20. High Availability Deployment
DNS Round Robin
Load Balancer-1 Load Balancer-2
Min: 0;Max: 5
...
GlassFish-1 GlassFish-2 GlassFish-3 GlassFish-n
Server Array
Master replication Slave
EBS DB DB EBS
Vol Vol Amazon EC2
Amazon S3
20
31. How to deploy ?
Publish
Service
Configuration
Service
Definition
Run.cmd
Launch.ps1
http://blogs.oracle.com/arungupta/entry/ttod_155_glassfish_in_azure
31
37. 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
37
40. 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/
40
42. Vendor Language Compute Storage Provider
RightScale Bash, Ruby, Yes Yes Amazon, GoGrid, FlexiScale,
Perl Eucalyptus
OpenStack REST Yes Yes Several
SimpleCloud PHP No Yes, Microsoft, IBM, Rackspace,
Queing Nirvanix, GoGrid
libcloud Python Yes ?? Several
jClouds Java, Yes Yes Several
Clojure
DeltaCloud Ruby, Create/Start/ No Amazon, GoGrid, OpenNebula,
REST Stop/Reboot Rackspace, RHEV-M,
/Destroy RimuHosting
CloudLoop Java No Yes Amazon, Nirvanix
Dasein Java ?? Yes Amazon, Rackspace, vSphere
42
43. From the real Java EE 6 users ...
Jigsaw puzzle, Modular,
Developers can concentrate standard, less xml, easy,
on business logic, Java EE 6 is easy, have I said easy?
providing a standard for
the infrastructure.
Standards compliance, vendor
independence, milliseconds
and kilobyte deployment
Higher integrated specs,
simple and annotation driven,
single-classloader WARs,
next level of industry Faster development, less
standard frameworks/complexity,
more great code shipped
http://blogs.oracle.com/arungupta/tags/community+feedback
43
44. What does Java EE offer to Cloud ?
●
Containers
●
Injectable services
●
Scale to large clusters
●
Security model
●
...
44
45. Java EE 7 : JSR 342
NEW
• Theme: Cloud
• More easily operate on private or public clouds
• Deliver functionality as a service with support for
features such as multi-tenancy and elasticity
• Technology refresh: JMS 2.0, CDI 1.1, ...
• Latest web standards: HTML 5 and Web Sockets
• Possible JSRs inclusion
• Concurrency Utilities for Java EE (JSR 236)
• JCache (JSR 107)
• New JSRs: Web Sockets, Java JSON API
• Modularity and Versioning
45
46. Java EE 7 Schedule
NEW
• March 2011 Early EG Formed
• Q3 2011 Early Draft
• Q1 2012 Public Draft
• Q3 2012 Final Release
46
47. Java EE JSR Soup
NEW
• Java EE 7 - JSR 342
• Servlets 3.1 – JSR 340
• Expression Language 3.0 – JSR 341
• Java Message Service 2.0 – JSR 343
• Java Server Faces 2.2 – JSR 344
• Java Persistence API 2.1 – JSR 338
• JAX-RS 2.0 – JSR 339
47
48. GlassFish Server Distributions
Distribution License Features
• Java EE 6 compatibility
GlassFish Server Open CDDL & • Web Profile support
Source Edition 3.1 GPLv2 • In-memory replication / clustering
Web Profile
• Centralized Administration
• Java EE 6 compatibility
GlassFish Open Source CDDL & • Full Java EE distribution
Edition 3.1 GPLv2 • In-memory replication / clustering
• Centralized Administration
• Adds
Oracle GlassFish Server 3.1 Commercial • Oracle GlassFish Server Control
Web Profile • Patches, support, knowledge
base
• Adds
Oracle GlassFish Server 3.1 Commercial • Oracle GlassFish Server Control
• Patches, support, knowledge
base
48
49. 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, Azure, Joyent, and other
clouds.
• Java EE 7/GlassFish 4.0 will provide a
standards-based programming model for PaaS
environments.
• Talk to us at users@glassfish.java.net.
49