Cloud Computing: Cloud acceleration
There are many benefits to cloud acceleration, including better application response time, greater efficiency and improved user satisfaction.
Adapted from “The Definitive Guide to Cloud Acceleration” (Realtime Publishers)
Cloud computing and the global reach of the Internet have created opportunities for businesses to expand their markets and customer bases. The scalability and elasticity of cloud computing helps businesses expand their computing systems according to business demands. This flexibility lessens the need to make capital expenditures for hardware that might be needed in the future.
It also lets you make decisions about provisioning compute and storage services at a much more fine-grained level. If there’s a peak demand for a day or two, then you can provision additional servers in the cloud. When demand subsides, you can release those resources. Compute and storage elasticity are essential parts of maintaining quality of service. They are not, however, the only factors.
From a customer’s perspective, application quality is determined in part by the application’s responsiveness. Applications that appear to run slowly are problematic from a user’s perspective and can lead to user dissatisfaction and lost revenue. A number of studies have demonstrated a correlation between application response time and discontinued use of a Web-based application. According to a study by the Aberdeen Group, a one-second delay in page load times can result in:
- 11 percent fewer page views
- 16 percent decrease in customer satisfaction
- 7 percent loss in conversions
- 73 percent of mobile device users report encountering Web sites that were slow to load
- 47 percent of consumers expect Web pages to load in two seconds or less
- 40 percent abandon sites that take more than three seconds to load
- 79 percent of shoppers who are dissatisfied with the site’s performance are less likely to buy from that site again
Clearly, the responsiveness of an application can have a direct impact on customer satisfaction, loyalty and, ultimately, revenue.
Improve application response time
Many factors contribute to application responsiveness, such as the way the application code is written, the way the database has been designed, and network throughput and latency. One way to improve application performance is to fine-tune the application code. This task can include:
- Selecting more efficient algorithms
- Analyzing code to identify time-consuming functions
- Rewriting database queries to reduce the amount of data returned
- Tuning database design by implementing additional indexes and other measures to reduce I/O operations performed by the database
Making improvements at the software level can yield significant improvements in some cases. These improvements can be costly and may require more time than other options to implement.
The cloud also helps businesses implement a well-known but sometimes questionable practice of “throwing more hardware at the problem.” Rather than review and revise code, it might be faster to simply scale up the servers that are running the code.
You could also scale vertically by deploying the application to a server with more cores and memory and faster storage devices. Applications that lend themselves to distributed workloads can scale horizontally. This entails adding additional servers to a load-balanced cluster and letting the load balancer distribute the work among more servers.
Both of these scenarios can help improve performance, assuming there are no bottlenecks outside the servers (for example, the time required to perform I/O operations on a storage array). If I/O performance is a problem, you might be able to improve performance by switching to faster storage technology.
Although fine-tuning application code and database design often improves server throughput, these fixes don’t always improve application response time. You can’t improve network latency, or the time delay in sending data between two networked devices, by tweaking algorithms on the server or optimizing database queries.
Within a datacenter, cloud providers may offer higher-performance networking infrastructure for specialized tasks, such as high-performance computing. These specialized jobs might run on clusters with 10GB Ethernet. Most common jobs run on servers that are connected with slower interfaces. For data sent outside the datacenter and over the Internet, there would be additional measures required to reduce latency.
The term “cloud acceleration” refers to cloud-based techniques for improving the overall responsiveness of an application by reducing the time it takes to deliver content to an end user. Without going too deeply into technical details, it’s worth noting that you can implement cloud acceleration with a combination of content delivery networks (CDNs) for distributing content around the globe and reducing network traffic using specialized optimization. There are four basic challenges to implementing cloud acceleration:
- Scalability and geographic reach
- Consolidation of services
You have to consider each of these challenges before you can successfully implement a cloud acceleration solution.
Scalability and Geographic Reach: Networking is constrained by physics as well as engineering. You’ll never be able to tweak the laws of physics to improve the speed with which you can transmit signals. Although an organization can improve the engineering of its networking hardware, the business is still dependent on the infrastructure used by ISPs around the globe.
CDNs compensate for network limitations by maintaining copies of data around the globe, responding to user content requests using the closest facility and providing the best path between endpoints. A customer in Amsterdam, for example, might be served from content stored in a datacenter in Paris, while a customer in Shanghai receives the same content from a datacenter in Singapore.
Businesses can deploy and maintain their own datacenters or infrastructures within co-location facilities around the globe. Such deployment would have to have sufficient global reach to respond to customers, employees and business partners wherever they’re located. These deployments would also have to include sufficient hardware to scale to meet the peak demands each datacenter would encounter.
Redundancy: Redundancy is another consideration. Hardware fails. Software crashes. Networks lose connectivity. If a datacenter were to fail, other datacenters around the globe should be configured to respond to traffic normally handled by the failed site.
Redundancy also entails maintaining up-to-date copies of content. Replication procedures should be in place to ensure that content is distributed to all data sites in a timely manner.
Consolidation of Services and Costs: If a business is going through all the effort and cost to deploy cloud acceleration systems, it’s best to capitalize on that investment by consolidating services and applications. As with private clouds, there’s the potential for significant capital investment to establish and maintain cloud acceleration infrastructure. Ongoing maintenance costs will add to the overall operational expenses of the organization as well.
Along with the technical challenges to implementing cloud acceleration technologies, it’s important to consider other characteristics that influence how a business can improve application responsiveness. One factor that determines the optimal cloud acceleration technique is the use of generated versus reusable content. You can replicate reusable content, sometimes referred to as static content, and send it from Web servers without additional processing by any application.
Reusable content includes material such as information from product catalogs, documents and general-information Web site pages. Generated content is the result of some application process, such as querying a database to retrieve a customer’s order history. You can replicate reusable content to datacenters around the globe. You can’t do this with dynamically generated content. Instead, dynamically generated content can benefit from optimization techniques that improve throughput and latency between datacenters.
There are other factors you’ll have to contend with as well when providing services on a large geographic scale. These are mostly functions of the Internet design. For example, the Internet is comprised of multiple ISPs working together to route data as needed across different ISP networks. Congestion at the physical interconnection of networks can adversely impact application performance. This and other issues that derive from the large-scale architecture of the Internet drive the need for multiple datacenters in geographically dispersed arrangements.
In addition to differences in infrastructure, ISPs may have different business perspectives on linking with other ISPs. In the most basic scenario, ISPs view their relationships as reciprocal and pass traffic between ISPs without compensation. In other cases, one ISP might believe another ISP gains more from a peering relationship and therefore requires payment to accept traffic from and send traffic to the other ISP.
Competition between ISPs can limit data exchange as well. Both technical and business considerations can affect the flow of your application traffic around the globe. Although most businesses can’t directly influence their ISP’s business model and relationships with other ISPs, businesses can work around the limitations imposed by peering arrangements by using cloud acceleration techniques.
Cloud providers can also be a potential network bottlenecks. If their networking services are insufficient for your organization’s needs and the provider’s distribution of datacenters isn’t enough to compensate for network congestion and latency issues, you may need alternative cloud acceleration options.
The cost and complexity of deploying computing and storage services is lowered with cloud computing. There’s also greater flexibility to adapt to new business opportunities by leveraging Infrastructure as a Service (IaaS) and Platform as a Service (PaaS) platforms to create new applications and services. The increasing adoption of Software as a Service (SaaS) platforms also presents an opportunity for businesses to offer their services in a SaaS model.
Businesses must pay particular attention to Web application performance for all customers regardless of their locations. Adding servers and storage will improve some but not all aspects of application responsiveness. You might need to implement some cloud acceleration techniques to ensure consistent and acceptable levels of performance for all application users.
Dan Sullivan has more than 20 years of IT experience in application design, systems architecture and enterprise security. He has written and presented extensively about systems architecture, infrastructure management, and aligning business and IT strategies. He has written several books including “The Shortcut Guide to Prioritizing Security Spending,” “The Definitive Guide to Information Theft Prevention,” “The Definitive Guide to Service-Oriented Systems Management” and “The Definitive Guide to Controlling Malware, Spyware, Phishing and Spam,” all from Realtime Publishers.
For more on this and other Realtime Publishers titles, check out Realtime Publishers.