This presentation will take you on a journey to better understand this quiet, shy and unassuming member of the Oracle family and ask the question: Should you consider Glassfish for your Production environment?
Presented at AUSOUG Perth 2013 Conference by Andrew Rosson from Lansen.
3. Takeaways from today.
• Glassfish is true contender and a sensible
choice for Java development environments.
– What helped? Clustering from v3.1 onwards.
• WebLogic is Oracle’s Application Certified
Server of choice to support the applications
portfolio and the Fusion Middleware Stack.
• GlassFish has a community (free) edition.
4. Lansen Middleware
1. Java Application Servers
2. Unstructured Data
3. Application Development
Product Specialties
•
•
•
•
Oracle WebLogic,
Oracle Glassfish,
Oracle jRockit JVM,
Oracle HotSpot JVM
____________________________________________
Lansen has a number of engineers who focus on this
area and ensure the establishment, tuning and
maintenance of the WebLogic or Glassfish application
servers is done correctly and is aligned with the
performance and architectural expectations of each
customer.
7. Not Born of this House
“The rivalry is
with ourself. I try
to be better than
is possible.
I fight against
myself, not
against the
other.”
Luciano Pavarotti
8. Origins – The Oracle Stable
• Oracle Application Server 10g, 10.1.3.5
– Formally Orion
• Oracle Weblogic 11g, 10.3.6
– Formally BEA
• Oracle Glassfish 3.1
– Formally SUN
9. Market Share 2013
• WebLogic up
from 10% in
2011
• Glassfish up
from 8% in
2011
Source: http://zeroturnaround.com
10. Glassfish4 - Released mid-2013
Oracle announced the availability of GlassFish Server Open Source
Edition 4, the world's first Java EE 7 compatible application server.
• GlassFish Server Open Source Edition 4.1 is scheduled for 2014
• GlassFish Server Open Source Edition 5 is the foundation for the
Java EE 8 reference implementation
“The primary role of GlassFish Server Open Source Edition has
been, and continues to be, driving adoption of the latest
release of the Java Platform, Enterprise Edition.”
November 4th Update from Oracle.
• Oracle will no longer provide GlassFish commercial support
• Commercial Java EE 7 support will be provided from WebLogic Server
• Oracle GlassFish Server will not be releasing a 4.x commercial version
12. Download
• The download size differences are dramatic.
87Mb
1Gb
Glassfish 3.1.2.2 ZIP
Generic WebLogic 11g JAR
97Mb
880Mb
Glassfish 4.0 ZIP
Generic WebLogic 12c JAR
182Mb
Generic WebLogic 12c ZIP
13. Architecture - WebLogic
• A machine is a virtual representation of the host.
• Servers have their own directory structure
• Applications are deployed from the
$ServerName/stage directory into the onto the
$ServerName/tmp/_WL_user directory
Managed Server 1
Deployed &
Runtime
apps
Admin Server
With
Domain Config
Managed Server 2
Cluster
Machine and Node Manager
Domain
14. Architecture - Glassfish
• The node directory is separate from the domain directory
• Applications are deployed from the
$domains/$DomainName/applications directory to the
$nodes/$NodeName/$InstanceName/applications directory
Domain Config
changes
Instance 1
Deployed
apps
Instance 2
Cluster
Runtime apps
Admin Server
(DAS)
Node
Domain
15. Administration & Configuration
• Both have Graphical UI’s.
• Both provide a scripting interface.
– Glassfish: asadmin
– WebLogic: wlst
20. Scripting tools
[oracle@inpergf1 bin]$ ./asadmin
Use "exit" to exit and "help" for online help.
asadmin>
list-domains
domain1 not running
Command list-domains executed successfully.
asadmin> exit
wls:/wcuat01_domain/serverConfig>
nmEnroll(domainDir='/u02/projects/domains/wcuat01_domain',nmHome
='/u01/app/middleware/wlserver_10.3/common/nodemanager')
wls:/wcuat01_domain/serverConfig>
exit()
21. Glassfish asadmin Utility
[oracle@inpergf1 bin]$ ./asadmin
Use "exit" to exit and "help" for online help.
asadmin> list-domains
domain1 not running
Command list-domains executed successfully.
asadmin>
asadmin> start-domain domain1
Waiting for domain1 to start ........
Successfully started the domain : domain1
domain Location: /u01/app/glassfish3/glassfish/domains/domain1
Log File: /u01/app/glassfish3/glassfish/domains/domain1/logs/server.log
Admin Port: 4848
Command start-domain executed successfully.
asadmin>
22. Glassfish asadmin Utility
asadmin>deploy --user admin -W /tmp/admin_password.txt --target
some_cluster --force true /var/some/project/application.ear
Application deployed with name application
Command deploy executed successfully.
asadmin>
asadmin>create-jdbc-resource --user admin -W /tmp/admin_password.txt -connectionpoolid jdbc/poolName --enabled true jdbc/jndiName domain1
Successfully created the jdbc resource: jdbc/jndiName
Command create-jdbc-resource executed successfully.
asadmin>
asadmin> stop-domain domain1
Waiting for the domain to stop ....
Command stop-domain executed successfully.
asadmin>
23. Admin & Config – Our findings
Admin tasks.
We use the asadmin utility 90%
of the time.
Jenkins: CI remote deployment easier than WebLogic
Easy to set-up security realms
• JDBC authentication way easier than WLS
24. Deployment
At Lansen we use a “Continuous Integration” automated deployment approach.
An automated build compiles the code, runs the tests, and does anything that
regularly needs to be done as part of the project’s build process.
25. Deployment – How often?
Average redeploy time.
4 times an hour.
A developer spends
10.5 minutes an hour or
17.5% of total coding
time – Redeploying!!
5.3 40-hour workweeks
per year are spent
exclusively redeploying
and restarting.
Source: http://zeroturnaround.com
26. Deployment – How long?
• WLS average redeploy time is 6% longer than Glassfish.
• The choice of application server correlates to the time spent
redeploying,
– bigger application servers are not slower,
– bigger applications influence the choice of application server.
27. Deployment – Our findings
ADF via jDeveloper
• The deployment to WebLogic is smoother and overall quicker.
Assisted with the Iterative Development page refresh utility.
• The same app needs to be “ear-ed” and then deployed to Glassfish
each time we change anything.
• Makes CSS skinning and layout positioning very challenging.
• There must be a PermGen size leak as we need to do a complete
bounce of GlassFish @ each 5th deployment attempt.
Java Application .ear or .war (not ADF)
• Glassfish deployment is great for non-ADF deployments.
High Availability
• No side-by-side/rolling deployments option in GF.
28. Performance
Andrejus B’s ADF Performance Results
• “ADF Essentials is certified on Glassfish server so
we can run performance tests and compare ADF
runtime performance on both Glassfish and
WebLogic.”
• Spoiler Alert** ADF runs faster on Glassfish
server.
“Probably because Glassfish server is much lighter
compared to WebLogic and in turn executes the
ADF runtime faster.”
Source: http://andrejusb.blogspot.com.au/2012/10/adf-11g-r2-weblogic-1035-vs-adf.html
29. Performance – Benchmark Test
The ADF application contains two tabs.
Stress test is recorded for each user to
1. navigate through records,
2. go to last/first record,
3. open long list LOV for Album Id
Source: http://andrejusb.blogspot.com.au/2012/10/adf-11g-r2-weblogic-1035-vs-adf.html
30. Performance - Benchmark Results
• 25 concurrent users.
• Glassfish: 0.8
seconds in average
• WebLogic: 1.4
seconds in average
Source: http://andrejusb.blogspot.com.au
31. Performance – Benchmark Results
• 50 concurrent users.
• Glassfish: 8.7
seconds in average
• WebLogic: 17.2
seconds in average
Source: http://andrejusb.blogspot.com.au
32. Performance – Our findings
His results show WebLogic to be 2 x slower than
Glassfish when running the same ADF application.
Our tests.
• We have not noticed such bad WLS results.
• WLS: We manage consistent <2 second page times
• GF: Closer to <4 seconds
– Our GF cluster was not as substantial as our WLS one
– It was also not optimized and highly tuned
33. Cost & Licensing
No FMW products are certified with Glassfish.
Glassfish Community Edition: $Free
GlassFish 4: $5000.00 / per CPU (List)
Update Nov 4th: Now not available!!
WebLogic EE: $25000.00 / per CPU (List)
34. Conclusions
Could you use WebLogic on your desktop and
Glassfish in Production?
Should you consider Glassfish for pure java
projects?
Should you consider Glassfish for your
Production environment?
Apache Tomcat and GlassFish are used in same types of project. Both are positioned as fully functional yet lightweight alternatives to the classic heavy application servers. Although Tomcat is popular but, GlassFish is growing in popularity in that market share.JBoss, Oracle Weblogic and IBM WebSphere compete for pretty much the same market segment. The majority of their projects are large and complex, and you will see their redeploy times reflect that.
The average redeploy time is 4 times an hour.So, if a developer spends about 10.5 minutes an hour redeploying, this is about 17.5% of total coding time. Or 5.3 40-hour workweeks per year are spent exclusively redeploying and restarting.