JavaOne 2012 - BOF7955 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
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
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
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
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
Notes de l'éditeur
\n
\n
* Discuss some ideas of how to design a typical Java EE application\n* It’s not the definitive guide to the development of a Java EE application\n* Show some conclusions from a study about a typical Java EE application running on a cloud computing environment sold as a platform.\n
\n
\n
\n
Step 1: If we install Java EE in a cloud environment we could start with an IaaS, where we have total control on what’s installed.\nStep 2: Then, we can install an Java EE application server\nStep 4: and sell it as a PaaS.\nStep 5: Then, install a Java EE application. It seems that Java EE is an excellent way to implement a PaaS model despite of some gaps to be solve at the Java EE 8.\nStep 6: Because, Java EE provides a set of standard services. It means a set of standard APIs for:\n * Relational Persistence via JPA\n * Asynchronous messaging via JMS (it deserves improvements - as planned by Java EE 7 spec)\n * Transaction via JTA\n * Security via JAAS (it’s another service that deserves improvements)\n * Resource Handling and location via JNDI\n * Distributed cache (it’ll be addressed by a spec from the Java EE 7)\n * Component modeling via EJB\n * and other services\nStep 7: But, all cloud computing providers provide a set of services. For instance:\n * Relational persistence (usually via MySQL, PostgreSQL ...)\n * Messaging\n * Monitoring service\n * Security (priv/pub key, SSL, certificates, ...)\n * NoSQL persistence\n * Storage service\n * and other services\nSome Java EE services match with cloud services. But, the major problem with a service that matches:\nStep 8: the major part of the cloud providers provides non-standard APIs to access their services.\n
Step 1: If we install Java EE in a cloud environment we could start with an IaaS, where we have total control on what’s installed.\nStep 2: Then, we can install an Java EE application server\nStep 4: and sell it as a PaaS.\nStep 5: Then, install a Java EE application. It seems that Java EE is an excellent way to implement a PaaS model despite of some gaps to be solve at the Java EE 8.\nStep 6: Because, Java EE provides a set of standard services. It means a set of standard APIs for:\n * Relational Persistence via JPA\n * Asynchronous messaging via JMS (it deserves improvements - as planned by Java EE 7 spec)\n * Transaction via JTA\n * Security via JAAS (it’s another service that deserves improvements)\n * Resource Handling and location via JNDI\n * Distributed cache (it’ll be addressed by a spec from the Java EE 7)\n * Component modeling via EJB\n * and other services\nStep 7: But, all cloud computing providers provide a set of services. For instance:\n * Relational persistence (usually via MySQL, PostgreSQL ...)\n * Messaging\n * Monitoring service\n * Security (priv/pub key, SSL, certificates, ...)\n * NoSQL persistence\n * Storage service\n * and other services\nSome Java EE services match with cloud services. But, the major problem with a service that matches:\nStep 8: the major part of the cloud providers provides non-standard APIs to access their services.\n
Step 1: If we install Java EE in a cloud environment we could start with an IaaS, where we have total control on what’s installed.\nStep 2: Then, we can install an Java EE application server\nStep 4: and sell it as a PaaS.\nStep 5: Then, install a Java EE application. It seems that Java EE is an excellent way to implement a PaaS model despite of some gaps to be solve at the Java EE 8.\nStep 6: Because, Java EE provides a set of standard services. It means a set of standard APIs for:\n * Relational Persistence via JPA\n * Asynchronous messaging via JMS (it deserves improvements - as planned by Java EE 7 spec)\n * Transaction via JTA\n * Security via JAAS (it’s another service that deserves improvements)\n * Resource Handling and location via JNDI\n * Distributed cache (it’ll be addressed by a spec from the Java EE 7)\n * Component modeling via EJB\n * and other services\nStep 7: But, all cloud computing providers provide a set of services. For instance:\n * Relational persistence (usually via MySQL, PostgreSQL ...)\n * Messaging\n * Monitoring service\n * Security (priv/pub key, SSL, certificates, ...)\n * NoSQL persistence\n * Storage service\n * and other services\nSome Java EE services match with cloud services. But, the major problem with a service that matches:\nStep 8: the major part of the cloud providers provides non-standard APIs to access their services.\n
Step 1: If we install Java EE in a cloud environment we could start with an IaaS, where we have total control on what’s installed.\nStep 2: Then, we can install an Java EE application server\nStep 4: and sell it as a PaaS.\nStep 5: Then, install a Java EE application. It seems that Java EE is an excellent way to implement a PaaS model despite of some gaps to be solve at the Java EE 8.\nStep 6: Because, Java EE provides a set of standard services. It means a set of standard APIs for:\n * Relational Persistence via JPA\n * Asynchronous messaging via JMS (it deserves improvements - as planned by Java EE 7 spec)\n * Transaction via JTA\n * Security via JAAS (it’s another service that deserves improvements)\n * Resource Handling and location via JNDI\n * Distributed cache (it’ll be addressed by a spec from the Java EE 7)\n * Component modeling via EJB\n * and other services\nStep 7: But, all cloud computing providers provide a set of services. For instance:\n * Relational persistence (usually via MySQL, PostgreSQL ...)\n * Messaging\n * Monitoring service\n * Security (priv/pub key, SSL, certificates, ...)\n * NoSQL persistence\n * Storage service\n * and other services\nSome Java EE services match with cloud services. But, the major problem with a service that matches:\nStep 8: the major part of the cloud providers provides non-standard APIs to access their services.\n
Step 1: If we install Java EE in a cloud environment we could start with an IaaS, where we have total control on what’s installed.\nStep 2: Then, we can install an Java EE application server\nStep 4: and sell it as a PaaS.\nStep 5: Then, install a Java EE application. It seems that Java EE is an excellent way to implement a PaaS model despite of some gaps to be solve at the Java EE 8.\nStep 6: Because, Java EE provides a set of standard services. It means a set of standard APIs for:\n * Relational Persistence via JPA\n * Asynchronous messaging via JMS (it deserves improvements - as planned by Java EE 7 spec)\n * Transaction via JTA\n * Security via JAAS (it’s another service that deserves improvements)\n * Resource Handling and location via JNDI\n * Distributed cache (it’ll be addressed by a spec from the Java EE 7)\n * Component modeling via EJB\n * and other services\nStep 7: But, all cloud computing providers provide a set of services. For instance:\n * Relational persistence (usually via MySQL, PostgreSQL ...)\n * Messaging\n * Monitoring service\n * Security (priv/pub key, SSL, certificates, ...)\n * NoSQL persistence\n * Storage service\n * and other services\nSome Java EE services match with cloud services. But, the major problem with a service that matches:\nStep 8: the major part of the cloud providers provides non-standard APIs to access their services.\n
Step 1: If we install Java EE in a cloud environment we could start with an IaaS, where we have total control on what’s installed.\nStep 2: Then, we can install an Java EE application server\nStep 4: and sell it as a PaaS.\nStep 5: Then, install a Java EE application. It seems that Java EE is an excellent way to implement a PaaS model despite of some gaps to be solve at the Java EE 8.\nStep 6: Because, Java EE provides a set of standard services. It means a set of standard APIs for:\n * Relational Persistence via JPA\n * Asynchronous messaging via JMS (it deserves improvements - as planned by Java EE 7 spec)\n * Transaction via JTA\n * Security via JAAS (it’s another service that deserves improvements)\n * Resource Handling and location via JNDI\n * Distributed cache (it’ll be addressed by a spec from the Java EE 7)\n * Component modeling via EJB\n * and other services\nStep 7: But, all cloud computing providers provide a set of services. For instance:\n * Relational persistence (usually via MySQL, PostgreSQL ...)\n * Messaging\n * Monitoring service\n * Security (priv/pub key, SSL, certificates, ...)\n * NoSQL persistence\n * Storage service\n * and other services\nSome Java EE services match with cloud services. But, the major problem with a service that matches:\nStep 8: the major part of the cloud providers provides non-standard APIs to access their services.\n
Step 1: If we install Java EE in a cloud environment we could start with an IaaS, where we have total control on what’s installed.\nStep 2: Then, we can install an Java EE application server\nStep 4: and sell it as a PaaS.\nStep 5: Then, install a Java EE application. It seems that Java EE is an excellent way to implement a PaaS model despite of some gaps to be solve at the Java EE 8.\nStep 6: Because, Java EE provides a set of standard services. It means a set of standard APIs for:\n * Relational Persistence via JPA\n * Asynchronous messaging via JMS (it deserves improvements - as planned by Java EE 7 spec)\n * Transaction via JTA\n * Security via JAAS (it’s another service that deserves improvements)\n * Resource Handling and location via JNDI\n * Distributed cache (it’ll be addressed by a spec from the Java EE 7)\n * Component modeling via EJB\n * and other services\nStep 7: But, all cloud computing providers provide a set of services. For instance:\n * Relational persistence (usually via MySQL, PostgreSQL ...)\n * Messaging\n * Monitoring service\n * Security (priv/pub key, SSL, certificates, ...)\n * NoSQL persistence\n * Storage service\n * and other services\nSome Java EE services match with cloud services. But, the major problem with a service that matches:\nStep 8: the major part of the cloud providers provides non-standard APIs to access their services.\n
Step 1: If we install Java EE in a cloud environment we could start with an IaaS, where we have total control on what’s installed.\nStep 2: Then, we can install an Java EE application server\nStep 4: and sell it as a PaaS.\nStep 5: Then, install a Java EE application. It seems that Java EE is an excellent way to implement a PaaS model despite of some gaps to be solve at the Java EE 8.\nStep 6: Because, Java EE provides a set of standard services. It means a set of standard APIs for:\n * Relational Persistence via JPA\n * Asynchronous messaging via JMS (it deserves improvements - as planned by Java EE 7 spec)\n * Transaction via JTA\n * Security via JAAS (it’s another service that deserves improvements)\n * Resource Handling and location via JNDI\n * Distributed cache (it’ll be addressed by a spec from the Java EE 7)\n * Component modeling via EJB\n * and other services\nStep 7: But, all cloud computing providers provide a set of services. For instance:\n * Relational persistence (usually via MySQL, PostgreSQL ...)\n * Messaging\n * Monitoring service\n * Security (priv/pub key, SSL, certificates, ...)\n * NoSQL persistence\n * Storage service\n * and other services\nSome Java EE services match with cloud services. But, the major problem with a service that matches:\nStep 8: the major part of the cloud providers provides non-standard APIs to access their services.\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
Typical JavaEE Application\n- One or more databases\n- Integration with one or more applications\n\n
Typical JavaEE Application\n- One or more databases\n- Integration with one or more applications\n\n
Typical JavaEE Application\n- One or more databases\n- Integration with one or more applications\n\n
\n
\n
\n
Elasticity\n- Vertical scaling\n * To increase computer power by adding more servers.\n * Release servers as the load is reduced.\n * Load balancer to users to reach new instances\n * Load balancer to application reach required resources\n\n
Elasticity\n- Vertical scaling\n * To increase computer power by adding more servers.\n * Release servers as the load is reduced.\n * Load balancer to users to reach new instances\n * Load balancer to application reach required resources\n\n
Elasticity\n- Vertical scaling\n * To increase computer power by adding more servers.\n * Release servers as the load is reduced.\n * Load balancer to users to reach new instances\n * Load balancer to application reach required resources\n\n
Elasticity\n- Vertical scaling\n * To increase computer power by adding more servers.\n * Release servers as the load is reduced.\n * Load balancer to users to reach new instances\n * Load balancer to application reach required resources\n\n
Elasticity\n- Vertical scaling\n * To increase computer power by adding more servers.\n * Release servers as the load is reduced.\n * Load balancer to users to reach new instances\n * Load balancer to application reach required resources\n\n
Elasticity\n- Vertical scaling\n * To increase computer power by adding more servers.\n * Release servers as the load is reduced.\n * Load balancer to users to reach new instances\n * Load balancer to application reach required resources\n\n
Elasticity\n- Vertical scaling\n * To increase computer power by adding more servers.\n * Release servers as the load is reduced.\n * Load balancer to users to reach new instances\n * Load balancer to application reach required resources\n\n
Elasticity\n- Vertical scaling\n * To increase computer power by adding more servers.\n * Release servers as the load is reduced.\n * Load balancer to users to reach new instances\n * Load balancer to application reach required resources\n\n
Elasticity\n- Vertical scaling\n * To increase computer power by adding more servers.\n * Release servers as the load is reduced.\n * Load balancer to users to reach new instances\n * Load balancer to application reach required resources\n\n
Elasticity\n- Vertical scaling\n * To increase computer power by adding more servers.\n * Release servers as the load is reduced.\n * Load balancer to users to reach new instances\n * Load balancer to application reach required resources\n\n
Elasticity\n- Vertical scaling\n * To increase computer power by adding more servers.\n * Release servers as the load is reduced.\n * Load balancer to users to reach new instances\n * Load balancer to application reach required resources\n\n
Elasticity\n- Vertical scaling\n * To increase computer power by adding more servers.\n * Release servers as the load is reduced.\n * Load balancer to users to reach new instances\n * Load balancer to application reach required resources\n\n
Elasticity\n- Vertical scaling\n * To increase computer power by adding more servers.\n * Release servers as the load is reduced.\n * Load balancer to users to reach new instances\n * Load balancer to application reach required resources\n\n
Elasticity\n- Vertical scaling\n * To increase computer power by adding more servers.\n * Release servers as the load is reduced.\n * Load balancer to users to reach new instances\n * Load balancer to application reach required resources\n\n
Elasticity\n- Vertical scaling\n * To increase computer power by adding more servers.\n * Release servers as the load is reduced.\n * Load balancer to users to reach new instances\n * Load balancer to application reach required resources\n\n
Elasticity\n- Vertical scaling\n * To increase computer power by adding more servers.\n * Release servers as the load is reduced.\n * Load balancer to users to reach new instances\n * Load balancer to application reach required resources\n\n
Traps for Elasticity\n* State management\n - Session replication introduces communication costs (both computational and money)\n* Application footprint\n - Applications with a huge footprint leads to slower startup time\n* Communication complexity\n - The communication with other applications will increase complexity as new instances are added to the cloud.\n* Resource discovery\n - As new database or application instances are added to the cloud, the application must be able to use the new resources.\n
State management tips\n- Stateless services led to better fault tolerance, load balancing and instance removal.\n- Distributed cache solution is well suitable to cloud\n * JSR 107 (JCache) is planned to Java EE 7\n * Vendor lock-in\n- REST principles put the state in the client\n- JSF allows storing the component state in client. Beware of increased network traffic.\n
\n
\n
- Idempotent services provide less control on the sender side. In failover situations, just resend the messages.\n
Elasticity\n- Vertical scaling\n * To increase computer power by adding more servers.\n * Release servers as the load is reduced.\n * Load balancer to users to reach new instances\n * Load balancer to application reach required resources\n\n
Elasticity\n- Vertical scaling\n * To increase computer power by adding more servers.\n * Release servers as the load is reduced.\n * Load balancer to users to reach new instances\n * Load balancer to application reach required resources\n\n
Elasticity\n- Vertical scaling\n * To increase computer power by adding more servers.\n * Release servers as the load is reduced.\n * Load balancer to users to reach new instances\n * Load balancer to application reach required resources\n\n
Elasticity\n- Vertical scaling\n * To increase computer power by adding more servers.\n * Release servers as the load is reduced.\n * Load balancer to users to reach new instances\n * Load balancer to application reach required resources\n\n
Elasticity\n- Vertical scaling\n * To increase computer power by adding more servers.\n * Release servers as the load is reduced.\n * Load balancer to users to reach new instances\n * Load balancer to application reach required resources\n\n
\n
Elasticity\n- Vertical scaling\n * To increase computer power by adding more servers.\n * Release servers as the load is reduced.\n * Load balancer to users to reach new instances\n * Load balancer to application reach required resources\n\n
Elasticity\n- Vertical scaling\n * To increase computer power by adding more servers.\n * Release servers as the load is reduced.\n * Load balancer to users to reach new instances\n * Load balancer to application reach required resources\n\n
Elasticity\n- Vertical scaling\n * To increase computer power by adding more servers.\n * Release servers as the load is reduced.\n * Load balancer to users to reach new instances\n * Load balancer to application reach required resources\n\n
Elasticity\n- Vertical scaling\n * To increase computer power by adding more servers.\n * Release servers as the load is reduced.\n * Load balancer to users to reach new instances\n * Load balancer to application reach required resources\n\n
Elasticity\n- Vertical scaling\n * To increase computer power by adding more servers.\n * Release servers as the load is reduced.\n * Load balancer to users to reach new instances\n * Load balancer to application reach required resources\n\n
Elasticity\n- Vertical scaling\n * To increase computer power by adding more servers.\n * Release servers as the load is reduced.\n * Load balancer to users to reach new instances\n * Load balancer to application reach required resources\n\n
Elasticity\n- Vertical scaling\n * To increase computer power by adding more servers.\n * Release servers as the load is reduced.\n * Load balancer to users to reach new instances\n * Load balancer to application reach required resources\n\n
Elasticity\n- Vertical scaling\n * To increase computer power by adding more servers.\n * Release servers as the load is reduced.\n * Load balancer to users to reach new instances\n * Load balancer to application reach required resources\n\n
Elasticity\n- Vertical scaling\n * To increase computer power by adding more servers.\n * Release servers as the load is reduced.\n * Load balancer to users to reach new instances\n * Load balancer to application reach required resources\n\n