running your java ee 6 applications in the cloud @ silicon valley code camp 2010
DESCRIPTION
Running your Java EE 6 applications in the Cloud @ Silicon Valley Code Camp 2010TRANSCRIPT
<Insert Picture Here>
Running your Java EE 6 Applications in the Cloud
Arun Gupta, Java EE & GlassFish Guyblogs.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• Evolving Java EE for Cloud• Conclusions
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, ...
5
Java EE 6 Demo
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
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
8
Based uponresearch work ...
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), ...
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
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
12
mod_jk
GlassFish-1 GlassFish-1
MySQL
GlassFish-N. . .
ManagedUsing
“cladmin”
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”
14
15
100,000+surveys/hr
GlassFish 3.0.1 JAX-RS EJB 3.1 JPA 2
16
Pricing
http://aws.amazon.com/ec2/pricing/
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
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
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
20
RightScripts
21
Alerts
22
23
Pricing
http://www.rightscale.com/products/plans-pricing/
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
25
26
GlassFish Properties
27
Resource Allocation
28
Mapping to Amazon Instances
29
How to Deploy ?Design → Deployment
30
UninstalledInstallingInstalled
ConfiguringConfigured
StartingStarted
31
How to Deploy ?Deploying Your App
• Web-based Admin Console to deploy/manage application on GlassFish
• MySQL GUI Tool
32
Pricing
• Not publicly listed on website• 24 x 7 support• Unlimited support tickets• 2-hour guaranteed response time• Dedicated support engineer• Forums• . . .
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, ...
34
Vs Amazon
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
36
37
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/
39
Multi-cloud Vendors
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
41
What does Java EE offer to Cloud ?
● Containers● Injectable services● Scale to large clusters● Security model● . . .
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
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!
44
GlassFish Roadmap Detail
©2010 Oracle Corporation
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].
46
References
• glassfish.org• oracle.com/goto/glassfish• blogs.sun.com/theaquarium• glassfish.org/roadmap• youtube.com/user/GlassFishVideos• Follow @glassfish
<Insert Picture Here>
Running your Java EE 6 Applications in the Cloud
Arun Gupta, Java EE & GlassFish Guyblogs.sun.com/arungupta, @arungupta