Running your Java EE 6 Applications in the Cloud Arun Gupta Oracle blogs.sun.com/arungupta @arungupta
Jul 17, 2015
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
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, ...
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), ...
8
Java EE 6 on Amazon
2 New AMIs based on Hardened OpenSolarisOracle GlassFish Server 3.0 (not released) Apache HTTP Server + mod_jk (not released) Pre-existing MySQL Database 5.1 AMI
Instances managed by SMFGlassFish: 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
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
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”
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
16
RightS
cale
AmazonUS East
AmazonUS West
AmazonEU
AmazonAsia Rackspace IBM
Cloud VMWare
Cloud-ReadyS olutions
Expertise& S upport
Web Site
Grid Right
Scripts
CloudApplications
AutomationArchitecture
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
18
High Availability DeploymentDNS 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
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
30
How to Deploy ?Deploying Your App
Web-based Admin Console to deploy/manage application on GlassFish
MySQL GUI Tool
31
Pricing
Not publicly listed on website 24 x 7 support Unlimited support tickets 2-hour guaranteed response time Dedicated support engineer Forums . . .
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, …
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
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/
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
GlassFish 3.1 Clustering
DAS fruits
food
broccoli
spinach
apple
banana
orange
GlassFish 3.1 Sample Cluster Topology
Instance Cluster Node
http://blogs.sun.com/arungupta/entry/totd_138_glassfish_3_1