Session Presented @IndicThreads Cloud Computing Conference, Pune, India ( http://u10.indicthreads.com )
------------
The Java EE 6 platform is an extreme makeover from the previous versions. It breaks the “one size fits all” approach with Profiles and improves on the Java EE 5 developer productivity features. It enables extensibility by embracing open source libraries and frameworks such that they are treated as first class citizens of the platform. NetBeans, Eclipse, and IntelliJ provide extensive tooling for Java EE 6.
But how can you leverage all of this on a cloud ?
GlassFish v3, the Reference Implementation of Java EE 6, can easily run on multiple cloud infrastructures. This talk will provide a brief introduction to Java EE 6 and GlassFish v3. The attendees will learn how to create a simple Java EE 6 sample application and deploy them on GlassFish v3 running locally. Then it will deploy that sample using Amazon, RightScale, Joyent, and Elastra cloud infrastructures. It will also show how servers are dynamically provisioned in some environments to meet the demand. The talk will also explain the advantages of each approach enabling you to choose the optimal strategy for your environment.
Takeaways from the session
The attendees will be able to learn how to deploy a Java EE 6 application in different cloud environments. They’ll also learn about the pros/cons of these infrastructures.
Handwritten Text Recognition for manuscripts and early printed texts
Running your Java EE 6 applications in the Cloud
1. Running your Java EE 6
Applications in the Cloud
Arun Gupta
Oracle
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.
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
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
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), ...
7
8. 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
8
9. 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
9
10. Java EE 6 on Amazon
mod_jk
Managed
Using
“cladmin”
...
GlassFish-1 GlassFish-2 GlassFish-N
MySQL
10
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”
11
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
15
16. 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. 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, …
32
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
34
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/
38
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
42