Running your Java EE 6 applications in the Cloud @ Silicon Valley Code Camp 2010

2,408 views
2,264 views

Published on

Running your Java EE 6 applications in the Cloud @ Silicon Valley Code Camp 2010

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
2,408
On SlideShare
0
From Embeds
0
Number of Embeds
18
Actions
Shares
0
Downloads
30
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Running your Java EE 6 applications in the Cloud @ Silicon Valley Code Camp 2010

  1. 1. <Insert Picture Here> Running your Java EE 6 Applications in the Cloud Arun Gupta, Java EE & GlassFish Guy blogs.sun.com/arungupta, @arungupta
  2. 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. 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 3
  4. 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, ... 4
  5. 5. Java EE 6 Demo 5
  6. 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 6
  7. 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 7
  8. 8. Based upon research work ... 8
  9. 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), ... 9
  10. 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 10
  11. 11. 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 11
  12. 12. mod_jk Managed Using “cladmin” ... GlassFish-1 GlassFish-1 GlassFish-N MySQL 12
  13. 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” 13
  14. 14. 14
  15. 15. GlassFish 3.0.1 JAX-RS EJB 3.1 JPA 2 100,000+ surveys/hr 15
  16. 16. Pricing http://aws.amazon.com/ec2/pricing/ 16
  17. 17. Java EE 6 on RightScale Cloud Applications Automation C loud-R eady Expertise R 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 17
  18. 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 18
  19. 19. 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 19
  20. 20. RightScripts 20
  21. 21. Alerts 21
  22. 22. 22
  23. 23. Pricing http://www.rightscale.com/products/plans-pricing/ 23
  24. 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 24
  25. 25. 25
  26. 26. GlassFish Properties 26
  27. 27. Resource Allocation 27
  28. 28. Mapping to Amazon Instances 28
  29. 29. How to Deploy ? Design → Deployment 29
  30. 30. Uninstalled Installing Installed Configuring Configured Starting Started 30
  31. 31. How to Deploy ? Deploying Your App • Web-based Admin Console to deploy/manage application on GlassFish • MySQL GUI Tool 31
  32. 32. Pricing • Not publicly listed on website • 24 x 7 support • Unlimited support tickets • 2-hour guaranteed response time • Dedicated support engineer • Forums • ... 32
  33. 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, ... 33
  34. 34. Vs Amazon 34
  35. 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 35
  36. 36. 36
  37. 37. 37
  38. 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/ 38
  39. 39. Multi-cloud Vendors 39
  40. 40. Vendor Language Compute Storage Provider RightScale Bash, Ruby, Yes Yes Amazon, GoGrid, FlexiScale, Perl Eucalyptus Elastra Design Yes ?? Amazon, ?? SimpleCloud PHP No Yes, Microsoft, IBM, Rackspace, Queing Nirvanix, GoGrid libcloud Python Yes ?? Dreamhost, Amazon, Eucalyptus, IBM Cloud, Linode, Rackspace, RimuHosting, SliceHost, vCloud, ... jClouds Java, Yes Yes Opscode, Chef, IBM Developer Clojure Cloud, Eucalyptus, Google Storage, Terremark, Slicehost, Box.net, Azure DeltaCloud Ruby, Create/Start/ No Amazon, GoGrid, OpenNebula, REST Stop/Reboot Rackspace, RHEV-M, /Destroy RimuHosting CloudLoop Java No Yes Amazon, Nirvanix Dasein Java ?? ?? Amazon, Rackspace, vSphere 40
  41. 41. What does Java EE offer to Cloud ? ● Containers ● Injectable services ● Scale to large clusters ● Security model ● ... 41
  42. 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 42
  43. 43. GlassFish Distributions Distribution License Features GlassFish Open Source CDDL & • Java EE 6 Compatibility Edition 3.0.1 GPLv2 • No Clustering • Clustering planned in 3.1 • mod_jk for load balancing GlassFish Open Source CDDL & • Java EE 5 Compatibility Edition 2.1.1 GPLv2 • In memory replication • mod_loadbalancer Oracle GlassFish Server Commercial • GlassFish Open Source Edition 3.0.1 3.0.1 • GlassFish Server Control Clustering • Clustering planned in 3.1 Coming Soon! Oracle GlassFish Server Commercial • GlassFish Open Source Edition 2.1.1 2.1.1 • Enterprise Manager • HADB
  44. 44. GlassFish Roadmap Detail 44 ©2010 Oracle Corporation
  45. 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 users@glassfish.dev.java.net. 45
  46. 46. References • glassfish.org • oracle.com/goto/glassfish • blogs.sun.com/theaquarium • glassfish.org/roadmap • youtube.com/user/GlassFishVideos • Follow @glassfish 46
  47. 47. <Insert Picture Here> Running your Java EE 6 Applications in the Cloud Arun Gupta, Java EE & GlassFish Guy blogs.sun.com/arungupta, @arungupta

×