1. <Insert Picture Here>
Running your Java EE 6 Applications in the Cloud
Arun Gupta, Java EE & GlassFish Guy
blogs.sun.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
• 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
3
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, ...
4
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
●
Exalogic Elastic Compute Cloud (Cloud in a Box)
●
Hardware and Software engineered to work together
●
30 compute servers, 360 cores, 40 GB/sec Infiniband
●
Servers, Network, Storage, VM, Operating System,
Middleware, Develop/Run all applications
6
8. 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), ...
8
9. 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
9
10. 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
10
11. mod_jk
Managed
Using
“cladmin”
...
GlassFish-1 GlassFish-1 GlassFish-N
MySQL
11
12. 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”
12
16. 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
16
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
17
18. 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
18
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
23
30. How to Deploy ?
Deploying Your App
• Web-based Admin Console to deploy/manage
application on GlassFish
• MySQL GUI Tool
30
31. Pricing
• Not publicly listed on website
• 24 x 7 support
• Unlimited support tickets
• 2-hour guaranteed response time
• Dedicated support engineer
• Forums
• ...
31
32. 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, ...
32
34. 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
34
37. 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/
37
40. What does Java EE offer to Cloud ?
●
Containers
●
Injectable services
●
Scale to large clusters
●
Security model
●
...
40
41. 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
41
42. GlassFish Distributions
Distribution License Features
GlassFish Open Source CDDL & • Java EE 6 Compatibility
Edition 3.0.1 GPLv2 • No Clustering
• Clustering planned in 3.1
• mod_jk for load balancing
GlassFish Open Source CDDL & • Java EE 5 Compatibility
Edition 2.1.1 GPLv2 • In memory replication
• mod_loadbalancer
Oracle GlassFish Server Commercial • GlassFish Open Source Edition 3.0.1
3.0.1 • GlassFish Server Control Clustering
• Clustering planned in 3.1 Coming
Soon!
Oracle GlassFish Server Commercial • GlassFish Open Source Edition 2.1.1
2.1.1 • Enterprise Manager
• HADB
44. 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 users@glassfish.dev.java.net.
44