Cloud Computing Chapter 19
Cloud Computing Chapter 19
Learning Objectives
Define and describe scalability. Define and describe the Pareto principle. Compare and contrast scaling up and scaling out. Understand how the law of diminishing returns applies to the scalability process. Describe the importance of understanding a sites database read/write ratio. Compare and contrast scalability and capacity planning. Understand how complexity can reduce scalability.
Scalability
An applications ability to add or remove resources dynamically based on user demand. One of the greatest advantages of cloud-based applications is their ability to scale. Anticipating user demand is often a best guess process. Developers often cannot accurately project the demand, and frequently they released too few or too many resources.
Load Balancing
Cloud-based solutions should scale on demand. If an applications user demand reaches a specific threshold, one or more servers should be added dynamically to support the application. The load-balancing server distributes workload across an applications server resources.
Scaling Up or Out
There are two ways to scale a solution.
You can scale up an application (known as vertical scaling) by moving the application to faster computer resources, such as a faster server or disk drive. If you have a CPU-intensive application, moving the application to a faster CPU should improve performance. You can scale out an application (known as horizontal scaling) by rewriting the application to support multiple CPUs (servers) and possibly multiple databases. As a rule, normally it costs less to run an application on multiple servers than on a single server that is four times as fast.
Databases Continued
You may be able to modify your application so that it can distribute the database read operations, especially for data that is not affected by write operations (static data). By distributing your database read operations in this way, you horizontally scale out your application, which may not only improve performance, but also improve resource redundancy.
Performance Tuning
Your goal is to maximize system performance. By scaling resources, you will, to a point, increase performance. In addition to managing an applications resource utilization, developers must examine the application itself, beginning with the program code and including the objects used, such as graphics and the applications use of caching.
Key Terms
Chapter Review
1. Define scalability. 2. List five to ten potential relationships that align with the Pareto principle, such as how 80 percent of sales come from 20 percent of customers. 3. Compare and contrast vertical and horizontal scaling. 4. Explain the importance of the database read/write ratio. 5. Assume a site guarantees 99.99 percent uptime. How many minutes per year can the site be down?