SlideShare a Scribd company logo
Avoiding Java EE
Application Design Traps
 to achieve effective use of cloud computing
Alberto Lemos (Dr. Spock)      Danival Taffarel Calegari
   Senior Software Architect    MATERA Systems Architect
          SpockNET                Globalcode Instructor
Agenda

•   Motivation

•   Challenges when deploying
    Java EE on cloud computing

•   Some tips & tricks

•   Some evaluated Java PaaS

•   Java EE adapter for cloud
    services
Objective
“Provide the java developers and architects with
some ‘food for thoughts’ to help them to design
          a better Java EE application”
Agenda

•   Motivation

•   Challenges when deploying
    Java EE on cloud computing

•   Some tips & tricks

•   Some evaluated Java PaaS

•   Java EE adapter for cloud
    services
Motivation
•   How cloud computing can
    affect the architecture or the
    code of a Java EE application?

•   Some Java EE cloud key
    features are focused on to
    provide a PaaS model to the
    Application Servers

•   No new features to provide
    the programming model with
    cloud features
Agenda

•   Motivation

•   Challenges when deploying
    Java EE on cloud computing

•   Some tips & tricks

•   Some evaluated Java PaaS

•   Java EE adapter for cloud
    services
Java EE in the Cloud
Java EE in the Cloud


         Operational System
  Iaas
Java EE App Server

              JVM


       Operational System
Iaas
Java EE App Server

              JVM
Paas


       Operational System
Iaas
Java EE Application


       Java EE App Server

              JVM
Paas


       Operational System
Iaas
Java EE Services

Persistence
                          Java EE Application
Messaging
Transaction
                          Java EE App Server
  Security
 Resource                        JVM
   Cache           Paas


Component
                          Operational System
                   Iaas
Java EE Services
                                                Cloud Services
Persistence                                     Persistence
                          Java EE Application
Messaging                                       Messaging
Transaction                                     Monitoring
                          Java EE App Server
  Security                                       Security
 Resource                        JVM              NoSQL
   Cache           Paas
                                                  Storage
Component                                             ...
                          Operational System
                   Iaas
Java EE Services
                                                     Cloud Services
Persistence                                         Persistence
               JPA          Java EE Application
Messaging                                            Messaging
              JMS
Transaction                                         Monitoring
              JTA           Java EE App Server
  Security                                             Security
              JAAS
 Resource                          JVM                 NoSQL
              JNDI
   Cache             Paas
                                                       Storage
Component                                                  ...
               EJB          Operational System    non-std API

                     Iaas
Evaluated PaaS
Challenges

•   Elasticity

•   Deployment model

•   Support to Java EE full stack

•   Proprietary services

•   Resource handling
Load Balancer




Virtual Machine
Load Balancer




Virtual Machine
Load Balancer




Virtual Machine
Load Balancer




Virtual Machine
1000 users



                  Load Balancer




Virtual Machine        100 users per VM
500 users



                  Load Balancer




Virtual Machine          50 users per VM
100 users



                  Load Balancer




Virtual Machine          10 users per VM
100 users



                  Load Balancer




Virtual Machine        100 users in a VM
100 users



                  Load Balancer




Virtual Machine        100 users in a VM
Agenda

•   Motivation

•   Challenges when deploying
    Java EE on cloud computing

•   Some tips & tricks

•   Some evaluated Java PaaS

•   Java EE adapter for cloud
    services
Avoiding Java EE Application Design Traps to Achieve Effective Use of Cloud Computing
Typical JavaEE Application
Database A
           Java EE Application
                                              Database Server 1
Java EE Server

                                                 Database B

       App 1                  App 2             Database C
Application Server X   Application Server Y   Database Server 2
Avoiding Java EE Application Design Traps to Achieve Effective Use of Cloud Computing
Elasticity
Database A
           Java EE Application
                                              Database Server 1
Java EE Server

                                                 Database B

       App 1                  App 2             Database C
Application Server X   Application Server Y   Database Server 2
Load Balancer

                                                    Load Balancer Server




        Java EE Application             Java EE Application                Java EE Application              Java EE Application

  Java EE Server                   Java EE Server                     Java EE Server                   Java EE Server




        App 1                    App 2                   Database A                     Database B                 Database C
Application Server X     Application Server Y        Database Server 1             Database Server 2
Load Balancer

                                                    Load Balancer Server




        Java EE Application             Java EE Application                Java EE Application              Java EE Application

  Java EE Server                   Java EE Server                     Java EE Server                   Java EE Server




        App 1                    App 2                   Database A                     Database B                 Database C
Application Server X     Application Server Y        Database Server 1             Database Server 2
Elasticity Challenges

• State management
• Application startup time
• Communication complexity
• Resource discovery
State management
• Design for stateless services
  •   Use stateless EJB

• REST.
  •   JAX-RS.

• JSF features.
  •   Client state saving.

  •   Preemptive navigation (bookmarkable URLs).
State management
• Store state in a distributed cache solution
  •   Memcached, Infinispan, Oracle Coherence, etc.

  •   JSR 107 (JCache) planned to Java EE 7.

  •   Setup carefully the distributed cache to avoid
      high cost on data transfer over the network.
Application startup time
• Reduce the application footprint.
  •   Put static resources in separate deployment
      units.

  •   Static resources may be available in a content
      delivery service.

• Lazy load resources as much as possible.
Communication complexity
• Decouple applications by using
  asynchronous messaging.
• Create atomic idempotent services.
• Keep dynamic data closer to the compute
  and static data closer to the end-user.
 •   Consider to create database shards.
Load Balancer

                                                    Load Balancer Server




        Java EE Application             Java EE Application                Java EE Application              Java EE Application

  Java EE Server                   Java EE Server                     Java EE Server                   Java EE Server




        App 1                    App 2                   Database A                     Database B                 Database C
Application Server X     Application Server Y        Database Server 1             Database Server 2
Load Balancer

                                             Load Balancer Server




     Java EE Application        Java EE Application                 Java EE Application        Java EE Application

Java EE Server             Java EE Server                      Java EE Server             Java EE Server



                                                Message Service


                                            App 1                      App 2
                                  Application Server X         Application Server Y
Load Balancer

                                            Load Balancer Server




     Java EE Application        Java EE Application                Java EE Application              Java EE Application

Java EE Server             Java EE Server                     Java EE Server                   Java EE Server




                                                 Database A                     Database B                 Database C
                                             Database Server 1             Database Server 2
Load Balancer

                                             Load Balancer Server




      Java EE Application        Java EE Application                Java EE Application              Java EE Application

 Java EE Server             Java EE Server                     Java EE Server                   Java EE Server

Zone 01                                                           Zone 02




                                                  Database A                     Database B                 Database C
                                              Database Server 1             Database Server 2
Load Balancer

                                                           Load Balancer Server




            Java EE Application                  Java EE Application               Java EE Application              Java EE Application

      Java EE Server                    Java EE Server                       Java EE Server                   Java EE Server




   DB A - S01              DB B - S01                 DB C - S01                  DB A - S02             DB B - S02            DB C - S02
 Database Server 1 S01   Database Server 2 S01                               Database Server 1 S02   Database Server 2 S02

Zone 01                                                                       Zone 02
Resource discovery
• Let resource management to the container.
  •   Resource location became transparent to
      application by using CDI.

• Use load balancers to access internal
  resources.
Load Balancer

                                                       Load Balancer Server




           Java EE Application             Java EE Application                Java EE Application             Java EE Application

     Java EE Server                   Java EE Server                     Java EE Server                 Java EE Server




       DB A                   DB B                     DB C                     DB A                  DB B                  DB C
Database Server I      Database Server 2                                 Database Server 3     Database Server 4
Load Balancer

                                                       Load Balancer Server




           Java EE Application             Java EE Application                Java EE Application             Java EE Application

     Java EE Server                   Java EE Server                     Java EE Server                 Java EE Server




                                                            Load Balancer



       DB A                   DB B                     DB C                     DB A                  DB B                  DB C
Database Server I      Database Server 2                                 Database Server 3     Database Server 4
Load Balancer

                                                       Load Balancer Server




           Java EE Application             Java EE Application                Java EE Application             Java EE Application

     Java EE Server                   Java EE Server                     Java EE Server                 Java EE Server




                                                            Load Balancer



       DB A                   DB B                     DB C                     DB A                  DB B                  DB C
Database Server I      Database Server 2                                 Database Server 3     Database Server 4
Agenda

•   Motivation

•   Challenges when deploying
    Java EE on cloud computing

•   Some tips & tricks

•   Some evaluated Java PaaS

•   Java EE adapter for cloud
    services
Some evaluated Java PaaS
                Java EE full    Standard    Non-std APIs/   Distributed   Supported App
   PaaS
                   stack       Deployment     Services         Cache         Servers

AWS Beanstalk                                                                 Tomcat 6/7

Oracle Cloud                                                                  WebLogic

  Openshift                                                                  JBossAS 6/7

                                                                             Tomcat 6/7 -
 Cloudbees
                                                                              Glassfish 3

   Heroku                                                                      Tomcat 7

                                                                          Jetty 6 - Tomcat 6/7
   Jelastic
                                                                              - Glassfish 3

Cloud Foundry                                                                  Tomcat 7




                                                                                                 OCT/12
    GAE                                                                          Jetty
Last tips!
•   Prefer a cloud provider that
    provides the Java EE full stack.

•   Use CDI to support a business
    component model in a Java EE
    application deployed on a Web
    Container based cloud provider
    (Paas)

•   Avoid proprietary cloud services
    to avoid "cloud provider lock-in"
Agenda

•   Motivation

•   Challenges when deploying
    Java EE on cloud computing

•   Some tips & tricks

•   Some evaluated Java PaaS

•   Java EE adapter for cloud
    services
A vision of the future!
 Java EE Application    •   Glassfish for Amazon
                            Web Services

 Java EE Application    •   Glassfish for Oracle
     Java EE Services       Cloud
     Cloud Adapter
                        •   Application Servers for
                            IaaS environment
     Cloud Services

  Cloud Provider
Thank you!
•   Alberto Lemos (Dr. Spock)

    @drspockbr

    http://about.me/drspockbr

•   Danival T. Calegari

    @danivaltc

    danivaltc@gmail.com

More Related Content

KEY
JavaOne 2012 - BOF7955 ­ Avoiding Java EE Application Design Traps to Achieve...
PDF
JavaOne 2011: Migrating Spring Applications to Java EE 6
PPTX
Java EE 8 Update
PPTX
Java EE 8
PDF
GlassFish & Java EE Business Update @ CEJUG
PDF
Arun Gupta: London Java Community: Java EE 6 and GlassFish 3
PDF
The State of Java under Oracle at JCertif 2011
PDF
Running your Java EE 6 applications in the Cloud
JavaOne 2012 - BOF7955 ­ Avoiding Java EE Application Design Traps to Achieve...
JavaOne 2011: Migrating Spring Applications to Java EE 6
Java EE 8 Update
Java EE 8
GlassFish & Java EE Business Update @ CEJUG
Arun Gupta: London Java Community: Java EE 6 and GlassFish 3
The State of Java under Oracle at JCertif 2011
Running your Java EE 6 applications in the Cloud

What's hot (20)

PDF
The Java EE 7 Platform: Developing for the Cloud (FISL 12)
PDF
OSGi & Java EE in GlassFish @ Silicon Valley Code Camp 2010
PPTX
Faster Java EE Builds with Gradle
PDF
Running your Java EE 6 applications in the Cloud @ Silicon Valley Code Camp 2010
PDF
Understanding
PDF
Tools Coverage for the Java EE Platform @ Silicon Valley Code Camp 2010
PDF
Creating Quick and Powerful Web applications with Oracle, GlassFish and NetBe...
PPTX
Weblogic Server
PDF
WebLogic 12c Developer Deep Dive at Oracle Develop India 2012
PPTX
Spring Framework Presantation Part 1-Core
ODP
JUDCON India 2014 Java EE 7 talk
PDF
GlassFish 3.1 at JCertif 2011
PPT
JEE Course - JEE Overview
PDF
The Java EE 7 Platform: Productivity & HTML5 at JavaOne Latin America 2012
PDF
Sun Java EE 6 Overview
PDF
Overview of Java EE 6 by Roberto Chinnici at SFJUG
PDF
Powering the Next Generation Services with Java Platform - Spark IT 2010
ODP
OTN Developer Days - Java EE 6
PPT
Java & J2EE Struts with Hibernate Framework
PDF
Java EE 8: On the Horizon
The Java EE 7 Platform: Developing for the Cloud (FISL 12)
OSGi & Java EE in GlassFish @ Silicon Valley Code Camp 2010
Faster Java EE Builds with Gradle
Running your Java EE 6 applications in the Cloud @ Silicon Valley Code Camp 2010
Understanding
Tools Coverage for the Java EE Platform @ Silicon Valley Code Camp 2010
Creating Quick and Powerful Web applications with Oracle, GlassFish and NetBe...
Weblogic Server
WebLogic 12c Developer Deep Dive at Oracle Develop India 2012
Spring Framework Presantation Part 1-Core
JUDCON India 2014 Java EE 7 talk
GlassFish 3.1 at JCertif 2011
JEE Course - JEE Overview
The Java EE 7 Platform: Productivity & HTML5 at JavaOne Latin America 2012
Sun Java EE 6 Overview
Overview of Java EE 6 by Roberto Chinnici at SFJUG
Powering the Next Generation Services with Java Platform - Spark IT 2010
OTN Developer Days - Java EE 6
Java & J2EE Struts with Hibernate Framework
Java EE 8: On the Horizon
Ad

Viewers also liked (6)

PDF
Integracao Seam Spring
PPT
Spring Web Flow
PDF
Improving Batch-Process Testing Techniques with a Domain-Specific Language
PDF
Dominando Jsf E Facelets Utilizando Spring 2.5, Hibernate E Jpa
PDF
Novidades do JSF: Um tour completo no JSF 2.2
PDF
Evitando Armadilhas no Projeto de Aplicações Java EE para uso eficaz na nuvem
Integracao Seam Spring
Spring Web Flow
Improving Batch-Process Testing Techniques with a Domain-Specific Language
Dominando Jsf E Facelets Utilizando Spring 2.5, Hibernate E Jpa
Novidades do JSF: Um tour completo no JSF 2.2
Evitando Armadilhas no Projeto de Aplicações Java EE para uso eficaz na nuvem
Ad

Similar to Avoiding Java EE Application Design Traps to Achieve Effective Use of Cloud Computing (20)

PDF
Java EE 7 at JAX London 2011 and JFall 2011
PPTX
The Java EE 7 Platform: Developing for the Cloud
PDF
Java EE 7: Developing for the Cloud at Geecon, JEEConf, Johannesburg
PDF
Jfokus 2012 : The Java EE 7 Platform: Developing for the Cloud
PDF
Java EE 7 and HTML5: Developing for the Cloud
PDF
Java EE 7: Developing for the Cloud at Java Day, Istanbul, May 2012
PDF
Java Summit Chennai: Java EE 7
PDF
Java EE Technical Keynote at JavaOne Latin America 2011
PDF
The Java EE 7 Platform: Developing for the Cloud
PDF
Java ee 7 platform developing for the cloud kshitiz saxena
PDF
Java one brazil_keynote_dochez
PDF
Java EE7: Developing for the Cloud
PDF
Java EE Technical Keynote - JavaOne India 2011
PDF
JUG Darmstadt - Java EE 7 - Auf in die Wolken!
PDF
2011 04-dsi-javaee-in-the-cloud-andreadis
ODP
Intro in JavaEE world (TU Olomouc)
PDF
Running your Java EE applications in the Cloud
PDF
TDC 2011: The Java EE 7 Platform: Developing for the Cloud
PPTX
SPEC INDIA Java Case Study
PDF
Java EE 7 - Into the Cloud
Java EE 7 at JAX London 2011 and JFall 2011
The Java EE 7 Platform: Developing for the Cloud
Java EE 7: Developing for the Cloud at Geecon, JEEConf, Johannesburg
Jfokus 2012 : The Java EE 7 Platform: Developing for the Cloud
Java EE 7 and HTML5: Developing for the Cloud
Java EE 7: Developing for the Cloud at Java Day, Istanbul, May 2012
Java Summit Chennai: Java EE 7
Java EE Technical Keynote at JavaOne Latin America 2011
The Java EE 7 Platform: Developing for the Cloud
Java ee 7 platform developing for the cloud kshitiz saxena
Java one brazil_keynote_dochez
Java EE7: Developing for the Cloud
Java EE Technical Keynote - JavaOne India 2011
JUG Darmstadt - Java EE 7 - Auf in die Wolken!
2011 04-dsi-javaee-in-the-cloud-andreadis
Intro in JavaEE world (TU Olomouc)
Running your Java EE applications in the Cloud
TDC 2011: The Java EE 7 Platform: Developing for the Cloud
SPEC INDIA Java Case Study
Java EE 7 - Into the Cloud

More from Dr. Spock (20)

KEY
Workshop de Introdução ao ScrumToys
PDF
TDC2012: Usando os recursos de extensibilidade da API de CDI do Java EE 6
PDF
TDC2012: Explorando os conceitos básicos da API de CDI do Java EE 6
PDF
TDC2011: Spring Mobile
PDF
TDC2011: Spring, uma plataforma enterprise, social, móvel e nas nuvens
PDF
TDC2011: Arquitetura de Software Enterprise
PDF
TDC2011: Java EE 6 & Azure
PDF
Spring Framework no desenvolvimento móvel
PDF
Desafios no deploy de aplicações Java EE 6 no Microsoft Azure
PDF
Performance Tips and Tricks: Java EE, Java Persistence API and JavaServer Faces
PDF
Dicas e truques sobre performance em JavaEE, JPA e JSF
PDF
Computação Física com Arduino, Program-ME e Java
PDF
Spring 3: Uma Plataforma além do Framework
PDF
Produtividade com Spring Roo no Google App Engine
PDF
Criando uma Aplicação Web com Spring Roo em 5 minutos!
PDF
Spring Framework 3: Um 'brainstorm' de novas funcionalidades
PDF
Dicas e Truques sobre Performance em Java EE, JPA e JSF
PDF
Computação Física com Arduino/Program-ME e a Plataforma Java
PDF
Os 5 Níveis de Reuso
PDF
JSF 2.0: Uma Evolução nas Interfaces Web com Java
Workshop de Introdução ao ScrumToys
TDC2012: Usando os recursos de extensibilidade da API de CDI do Java EE 6
TDC2012: Explorando os conceitos básicos da API de CDI do Java EE 6
TDC2011: Spring Mobile
TDC2011: Spring, uma plataforma enterprise, social, móvel e nas nuvens
TDC2011: Arquitetura de Software Enterprise
TDC2011: Java EE 6 & Azure
Spring Framework no desenvolvimento móvel
Desafios no deploy de aplicações Java EE 6 no Microsoft Azure
Performance Tips and Tricks: Java EE, Java Persistence API and JavaServer Faces
Dicas e truques sobre performance em JavaEE, JPA e JSF
Computação Física com Arduino, Program-ME e Java
Spring 3: Uma Plataforma além do Framework
Produtividade com Spring Roo no Google App Engine
Criando uma Aplicação Web com Spring Roo em 5 minutos!
Spring Framework 3: Um 'brainstorm' de novas funcionalidades
Dicas e Truques sobre Performance em Java EE, JPA e JSF
Computação Física com Arduino/Program-ME e a Plataforma Java
Os 5 Níveis de Reuso
JSF 2.0: Uma Evolução nas Interfaces Web com Java

Recently uploaded (20)

PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PPTX
MYSQL Presentation for SQL database connectivity
PDF
Machine learning based COVID-19 study performance prediction
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PDF
Spectral efficient network and resource selection model in 5G networks
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
Encapsulation theory and applications.pdf
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PDF
KodekX | Application Modernization Development
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PDF
MIND Revenue Release Quarter 2 2025 Press Release
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PDF
Electronic commerce courselecture one. Pdf
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Chapter 3 Spatial Domain Image Processing.pdf
Diabetes mellitus diagnosis method based random forest with bat algorithm
MYSQL Presentation for SQL database connectivity
Machine learning based COVID-19 study performance prediction
Unlocking AI with Model Context Protocol (MCP)
NewMind AI Weekly Chronicles - August'25 Week I
Spectral efficient network and resource selection model in 5G networks
Dropbox Q2 2025 Financial Results & Investor Presentation
Encapsulation theory and applications.pdf
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
KodekX | Application Modernization Development
Mobile App Security Testing_ A Comprehensive Guide.pdf
“AI and Expert System Decision Support & Business Intelligence Systems”
MIND Revenue Release Quarter 2 2025 Press Release
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
The Rise and Fall of 3GPP – Time for a Sabbatical?
Electronic commerce courselecture one. Pdf
20250228 LYD VKU AI Blended-Learning.pptx
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy

Avoiding Java EE Application Design Traps to Achieve Effective Use of Cloud Computing

  • 1. Avoiding Java EE Application Design Traps to achieve effective use of cloud computing Alberto Lemos (Dr. Spock) Danival Taffarel Calegari Senior Software Architect MATERA Systems Architect SpockNET Globalcode Instructor
  • 2. Agenda • Motivation • Challenges when deploying Java EE on cloud computing • Some tips & tricks • Some evaluated Java PaaS • Java EE adapter for cloud services
  • 3. Objective “Provide the java developers and architects with some ‘food for thoughts’ to help them to design a better Java EE application”
  • 4. Agenda • Motivation • Challenges when deploying Java EE on cloud computing • Some tips & tricks • Some evaluated Java PaaS • Java EE adapter for cloud services
  • 5. Motivation • How cloud computing can affect the architecture or the code of a Java EE application? • Some Java EE cloud key features are focused on to provide a PaaS model to the Application Servers • No new features to provide the programming model with cloud features
  • 6. Agenda • Motivation • Challenges when deploying Java EE on cloud computing • Some tips & tricks • Some evaluated Java PaaS • Java EE adapter for cloud services
  • 7. Java EE in the Cloud
  • 8. Java EE in the Cloud Operational System Iaas
  • 9. Java EE App Server JVM Operational System Iaas
  • 10. Java EE App Server JVM Paas Operational System Iaas
  • 11. Java EE Application Java EE App Server JVM Paas Operational System Iaas
  • 12. Java EE Services Persistence Java EE Application Messaging Transaction Java EE App Server Security Resource JVM Cache Paas Component Operational System Iaas
  • 13. Java EE Services Cloud Services Persistence Persistence Java EE Application Messaging Messaging Transaction Monitoring Java EE App Server Security Security Resource JVM NoSQL Cache Paas Storage Component ... Operational System Iaas
  • 14. Java EE Services Cloud Services Persistence Persistence JPA Java EE Application Messaging Messaging JMS Transaction Monitoring JTA Java EE App Server Security Security JAAS Resource JVM NoSQL JNDI Cache Paas Storage Component ... EJB Operational System non-std API Iaas
  • 16. Challenges • Elasticity • Deployment model • Support to Java EE full stack • Proprietary services • Resource handling
  • 21. 1000 users Load Balancer Virtual Machine 100 users per VM
  • 22. 500 users Load Balancer Virtual Machine 50 users per VM
  • 23. 100 users Load Balancer Virtual Machine 10 users per VM
  • 24. 100 users Load Balancer Virtual Machine 100 users in a VM
  • 25. 100 users Load Balancer Virtual Machine 100 users in a VM
  • 26. Agenda • Motivation • Challenges when deploying Java EE on cloud computing • Some tips & tricks • Some evaluated Java PaaS • Java EE adapter for cloud services
  • 29. Database A Java EE Application Database Server 1 Java EE Server Database B App 1 App 2 Database C Application Server X Application Server Y Database Server 2
  • 32. Database A Java EE Application Database Server 1 Java EE Server Database B App 1 App 2 Database C Application Server X Application Server Y Database Server 2
  • 33. Load Balancer Load Balancer Server Java EE Application Java EE Application Java EE Application Java EE Application Java EE Server Java EE Server Java EE Server Java EE Server App 1 App 2 Database A Database B Database C Application Server X Application Server Y Database Server 1 Database Server 2
  • 34. Load Balancer Load Balancer Server Java EE Application Java EE Application Java EE Application Java EE Application Java EE Server Java EE Server Java EE Server Java EE Server App 1 App 2 Database A Database B Database C Application Server X Application Server Y Database Server 1 Database Server 2
  • 35. Elasticity Challenges • State management • Application startup time • Communication complexity • Resource discovery
  • 36. State management • Design for stateless services • Use stateless EJB • REST. • JAX-RS. • JSF features. • Client state saving. • Preemptive navigation (bookmarkable URLs).
  • 37. State management • Store state in a distributed cache solution • Memcached, Infinispan, Oracle Coherence, etc. • JSR 107 (JCache) planned to Java EE 7. • Setup carefully the distributed cache to avoid high cost on data transfer over the network.
  • 38. Application startup time • Reduce the application footprint. • Put static resources in separate deployment units. • Static resources may be available in a content delivery service. • Lazy load resources as much as possible.
  • 39. Communication complexity • Decouple applications by using asynchronous messaging. • Create atomic idempotent services. • Keep dynamic data closer to the compute and static data closer to the end-user. • Consider to create database shards.
  • 40. Load Balancer Load Balancer Server Java EE Application Java EE Application Java EE Application Java EE Application Java EE Server Java EE Server Java EE Server Java EE Server App 1 App 2 Database A Database B Database C Application Server X Application Server Y Database Server 1 Database Server 2
  • 41. Load Balancer Load Balancer Server Java EE Application Java EE Application Java EE Application Java EE Application Java EE Server Java EE Server Java EE Server Java EE Server Message Service App 1 App 2 Application Server X Application Server Y
  • 42. Load Balancer Load Balancer Server Java EE Application Java EE Application Java EE Application Java EE Application Java EE Server Java EE Server Java EE Server Java EE Server Database A Database B Database C Database Server 1 Database Server 2
  • 43. Load Balancer Load Balancer Server Java EE Application Java EE Application Java EE Application Java EE Application Java EE Server Java EE Server Java EE Server Java EE Server Zone 01 Zone 02 Database A Database B Database C Database Server 1 Database Server 2
  • 44. Load Balancer Load Balancer Server Java EE Application Java EE Application Java EE Application Java EE Application Java EE Server Java EE Server Java EE Server Java EE Server DB A - S01 DB B - S01 DB C - S01 DB A - S02 DB B - S02 DB C - S02 Database Server 1 S01 Database Server 2 S01 Database Server 1 S02 Database Server 2 S02 Zone 01 Zone 02
  • 45. Resource discovery • Let resource management to the container. • Resource location became transparent to application by using CDI. • Use load balancers to access internal resources.
  • 46. Load Balancer Load Balancer Server Java EE Application Java EE Application Java EE Application Java EE Application Java EE Server Java EE Server Java EE Server Java EE Server DB A DB B DB C DB A DB B DB C Database Server I Database Server 2 Database Server 3 Database Server 4
  • 47. Load Balancer Load Balancer Server Java EE Application Java EE Application Java EE Application Java EE Application Java EE Server Java EE Server Java EE Server Java EE Server Load Balancer DB A DB B DB C DB A DB B DB C Database Server I Database Server 2 Database Server 3 Database Server 4
  • 48. Load Balancer Load Balancer Server Java EE Application Java EE Application Java EE Application Java EE Application Java EE Server Java EE Server Java EE Server Java EE Server Load Balancer DB A DB B DB C DB A DB B DB C Database Server I Database Server 2 Database Server 3 Database Server 4
  • 49. Agenda • Motivation • Challenges when deploying Java EE on cloud computing • Some tips & tricks • Some evaluated Java PaaS • Java EE adapter for cloud services
  • 50. Some evaluated Java PaaS Java EE full Standard Non-std APIs/ Distributed Supported App PaaS stack Deployment Services Cache Servers AWS Beanstalk Tomcat 6/7 Oracle Cloud WebLogic Openshift JBossAS 6/7 Tomcat 6/7 - Cloudbees Glassfish 3 Heroku Tomcat 7 Jetty 6 - Tomcat 6/7 Jelastic - Glassfish 3 Cloud Foundry Tomcat 7 OCT/12 GAE Jetty
  • 51. Last tips! • Prefer a cloud provider that provides the Java EE full stack. • Use CDI to support a business component model in a Java EE application deployed on a Web Container based cloud provider (Paas) • Avoid proprietary cloud services to avoid "cloud provider lock-in"
  • 52. Agenda • Motivation • Challenges when deploying Java EE on cloud computing • Some tips & tricks • Some evaluated Java PaaS • Java EE adapter for cloud services
  • 53. A vision of the future! Java EE Application • Glassfish for Amazon Web Services Java EE Application • Glassfish for Oracle Java EE Services Cloud Cloud Adapter • Application Servers for IaaS environment Cloud Services Cloud Provider
  • 54. Thank you! • Alberto Lemos (Dr. Spock) @drspockbr http://about.me/drspockbr • Danival T. Calegari @danivaltc danivaltc@gmail.com