How to Troubleshoot Apps for the Modern Connected Worker
Running your Java EE 6 applications in the Cloud (FISL 12)
1. <Insert Picture Here>
Running your Java EE 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-2 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 Cloud-Ready Expertise
RightScale
Architecture Solutions & Support
Web
Site
Right
Grid Scripts
Amazon Amazon Amazon Amazon IBM
Rackspace VMWare
US East US West EU Asia Cloud
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
28. How to deploy ?
Publish
Service
Configuration
Service
Definition
Run.cmd
Launch.ps1
http://blogs.oracle.com/arungupta/entry/ttod_155_glassfish_in_azure
28
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
43. Jigsaw puzzle,
From the real users ... Modular, standard, less
xml, easy, easy, have I
Developers can concentrate said easy?
on business logic, Java EE 6 is
providing a standard for
Standards compliance, vendor
the infrastructure.
independence, milliseconds
and kilobyte deployment
Faster development,
Higher integrated specs, less frameworks, less
simple and annotation driven, complexity, more great
single-classloader WARs, code shipped
next level of industry
standard Definite excuse to
avoid Spring forever
Simplified Java
Not your fat grandfather's Development, Focus on
enterprise Java anymore, building great products
enterprise Java renaissance
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
• Multi-tenancy and elasticity
• Technology refresh: JMS 2.0, CDI 1.1, ...
• HTML 5 and Web Sockets, WebSockets,
Java JSON API
• Possible JSRs inclusion
• Concurrency Utilities for Java EE (JSR 236)
• JCache (JSR 107)
• Modularity and Versioning
45
46. Java EE 7 Schedule NEW
• March 2011 Early EG Formed
• Q3 2011 Early Draft
• Q1 2012 Public Draft
• Q4 2012 Final Release
46
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. Weblogic in the Cloud
• Built-in Coherence grid for session management
• Clusters spanning 400 nodes
• Virtual Assembly Builder to stamp out
environments
• Appliances, Deployment Plan, Templates
• Zip distribution for lighter-weight development
• Download, install, startup < 2 mins
• Excellent management tools
• DIY Today
• TBD: Automated in next release
49
50. 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.
50