JFokus 2011 - Running your Java EE 6 apps in the Cloud

2,346 views

Published on

JFoksu 2011 - Running your Java EE 6 apps in the Cloud

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
2,346
On SlideShare
0
From Embeds
0
Number of Embeds
344
Actions
Shares
0
Downloads
25
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

JFokus 2011 - Running your Java EE 6 apps in the Cloud

  1. 1. <Insert Picture Here>Running your Java EE 6 Applications in the CloudArun Gupta, Java EE & GlassFish Guyblogs.sun.com/arungupta, @arungupta
  2. 2. The following/preceding is intended to outline ourgeneral product direction. It is intended forinformation purposes only, and may not beincorporated into any contract. It is not acommitment to deliver any material, code, orfunctionality, and should not be relied upon inmaking purchasing decisions.The development, release, and timing of anyfeatures or functionality described for Oracle’sproducts remains at the sole discretion of Oracle. 2
  3. 3. Agenda• Introduction to Java EE 6 & Demo• Java EE 6 on • • • •• Multi-cloud Vendor Comparison• Evolving Java EE for Cloud• Conclusions 3
  4. 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
  5. 5. • EJB-in-WAR• No-interface EJB• Optional “web.xml”/”faces- config.xml”• Annotation-driven • @Schedule • @Path • @Inject • ... 5
  6. 6. <web-fragment> <filter> <filter-name>wicket.helloworld</filter-name> <filter-class>org.apache.wicket.protocol.http.WicketFilter</filter-class> <init-param> <param-name>applicationClassName</param-name> <param-value>...</param-value> </init-param> </filter> <filter-mapping> <filter-name>wicket.helloworld</filter-name> <url-pattern>/*</url-pattern> </filter-mapping></web-fragment> 6
  7. 7. Java EE 6 Demo 7
  8. 8. Oracles 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 8
  9. 9. 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 9
  10. 10. Based uponresearch work ... 10
  11. 11. 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), ... 11
  12. 12. 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 12
  13. 13. Java EE 6 on Amazon# Define a load-balancing worker AJP_INSTANCE_NAMEworker.list=worker1 in GlassFish instances## Define an ajp13 worker to represent instance1worker.instance1.type=ajp13worker.instance1.host=ec2-67-202-51-223.compute-1.amazonaws.comworker.instance1.port=8009## Define an ajp13 worker to represent instance2worker.instance2.type=ajp13worker.instance2.host=ec2-67-202-7-236.compute-1.amazonaws.comworker.instance2.port=8009## Define the type of worker1worker.worker1.type=lb# Add inst1 and inst2 to the balance_workers property of worker1worker.worker1.balance_workers=instance1,instance2 13
  14. 14. mod_jk Managed Using “cladmin” ...GlassFish-1 GlassFish-1 GlassFish-N MySQL 14
  15. 15. 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
  16. 16. 16
  17. 17. GlassFish 3.0.1 JAX-RS EJB 3.1 JPA 2100,000+surveys/hr 17
  18. 18. Pricinghttp://aws.amazon.com/ec2/pricing/ 18
  19. 19. Java EE 6 on RightScale Cloud Applications Automation C loud-R eady ExpertiseR 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 19
  20. 20. 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 20
  21. 21. 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 21
  22. 22. RightScripts 22
  23. 23. Alerts 23
  24. 24. 24
  25. 25. Pricing http://www.rightscale.com/products/plans-pricing/ 25
  26. 26. What is Azure ? 26
  27. 27. How to deploy ?Azure Storage 27
  28. 28. How to deploy ?Visual Studio Project 28
  29. 29. How to deploy ? Launch.ps1$connection_string =DefaultEndpointsProtocol=http;AccountName=YOUR-STORAGE;AccountKey=YOUR-KEY# JDK$jdk = jdk1.6.0_23.zipdownload_from_storage java $jdk $connection_string (Get-Location).Pathunzip ((Get-Location).Path + "" + $jdk) (Get-Location).Path# GlassFish$glassfish = glassfish-3.1-b40.zipdownload_from_storage apps $glassfish $connection_string (Get-Location).Pathunzip ((Get-Location).Path + "" + $glassfish) (Get-Location).Path# Launch GlassFish.jdk1.6.0_23binjava `-jar.glassfish3glassfishmodulesadmin-cli.jar start-domain --verbose 29
  30. 30. How to deploy ?Expose GlassFish ports 30
  31. 31. How to deploy ?Publish 31
  32. 32. How to deploy ?Publish Service Configuration Service Definition Run.cmd Launch.ps1 http://blogs.sun.com/arungupta/entry/ttod_155_glassfish_in_azure 32
  33. 33. Pricing• Offers - Consumption or Commitment • 30-day FREE pass• Platform offer comparison table 33
  34. 34. Pricinghttp://www.microsoft.com/windowsazure/offers/popup/popup.aspx?lang=en&locale=en-US&offer=COMPARE_PUBLIC 34
  35. 35. http://blogs.sun.com/arungupta/entry/wishlist_for_windows_azure 35
  36. 36. 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, ... 36
  37. 37. VsAmazon 37
  38. 38. 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 38
  39. 39. 39
  40. 40. 40
  41. 41. 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/ 41
  42. 42. Multi-cloud Vendors 42
  43. 43. Vendor Language Compute Storage ProviderRightScale Bash, Ruby, Yes Yes Amazon, GoGrid, FlexiScale, Perl EucalyptusOpenStack REST Yes Yes SeveralSimpleCloud PHP No Yes, Microsoft, IBM, Rackspace, Queing Nirvanix, GoGridlibcloud Python Yes ?? SeveraljClouds Java, Yes Yes Several ClojureDeltaCloud Ruby, Create/Start/ No Amazon, GoGrid, OpenNebula, REST Stop/Reboot Rackspace, RHEV-M, /Destroy RimuHostingCloudLoop Java No Yes Amazon, NirvanixDasein Java ?? Yes Amazon, Rackspace, vSphere 43
  44. 44. From the real Java EE 6 users ... Jigsaw puzzle, Modular,Developers can concentrate standard, less xml, easy,on business logic, Java EE 6 is easy, have I said easy?providing a standard forthe infrastructure. Standards compliance, vendor independence, milliseconds and kilobyte deploymentHigher integrated specs,simple and annotation driven,single-classloader WARs,next level of industry Faster development, lessstandard frameworks/complexity, more great code shipped http://blogs.sun.com/arungupta/tags/community+feedback 44
  45. 45. What does Java EE offer to Cloud ?● Containers● Injectable services● Scale to large clusters● Security model● ... 45
  46. 46. What can Java EE do for Clouds ?● Tighter requirements for resource/state● Better isolation between applications● Support for multi-tenant applications● Potential standard APIs for NRDBMS, Caching, WebSockets, JSON, HTML5● Common management and monitoring interfaces● Better packaging ● Apps/Data are (multiple) versioned, Upgrades, Expose/Connect to services, QoS attributes, ...● Evolution, not revolution! 46
  47. 47. GlassFish Server Chronology2006 2007 2008 2009 2010 …GlassFish v1Java EE 5, Single Instance GlassFish v2 Java EE 5, High Availability GlassFish Server 3 Java EE 6, Single Instance GlassFish Server 3.1 Java EE 6, High Availability 47
  48. 48. GlassFish Server DistributionsDistribution License Features • Java EE 6 compatibilityGlassFish Server Open CDDL & • Web Profile supportSource Edition 3.1 GPLv2 • In-memory replication / clusteringWeb Profile • Centralized Administration • Java EE 6 compatibilityGlassFish Open Source CDDL & • Full Java EE distributionEdition 3.1 GPLv2 • In-memory replication / clustering • Centralized Administration • AddsOracle GlassFish Server 3.1 Commercial • Oracle GlassFish Server ControlWeb Profile • Patches, support, knowledge base • AddsOracle GlassFish Server 3.1 Commercial • Oracle GlassFish Server Control • Patches, support, knowledge base 48
  49. 49. 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 will provide a standards-based programming model for PaaS environments.• Talk to us at users@glassfish.dev.java.net. 49
  50. 50. References• glassfish.org• oracle.com/goto/glassfish• blogs.sun.com/theaquarium• youtube.com/user/GlassFishVideos• @glassfish 50
  51. 51. <Insert Picture Here>Running your Java EE 6 Applications in the CloudArun Gupta, Java EE & GlassFish Guyblogs.sun.com/arungupta, @arungupta

×