|
YOUR FEEDBACK Did you read today's front page stories & breaking news?
SYS-CON.TV |
TOP THREE LINKS YOU MUST CLICK ON Enterprise Building Web Apps That Leverage Content Delivery Networks
Five different integration options
By: Alex Maclinovsky
May. 11, 2005 03:00 PM
As the Web becomes an intrinsic part of the economy and our everyday lives, the success and survival of many businesses increasingly depend on the availability and accessibility of their core Web applications. Although a high degree of scalability and reliability can be achieved through the right combination of local and global redundancy, load balancing and sound application design, many companies turn to Content Delivery Networks or CDNs such as Akamai or Speedera. This article recounts experiences and lessons learned from developing an information portal that serves millions of users and leverages Akamai's CDN. How CDN Works Typically CDN providers augment the traditional Web infrastructure shown in Figure 1-a by introducing thousands of edge servers usually located at ISPs, carriers, backbones and other Web hubs around the world. They intercept the HTTP traffic directed to the sites of the network's customers and attempt to serve the requests from the closest possible location as shown in Figure 1-b. If the requested information can't be found in the cache, an edge server requests it from the origin site, passes it to the client, and then caches it to serve future requests. It's important to know that page URLs are used as caching keys. If two pages have identical ULRs, they would be considered the same page even if their content were different. Conversely, two identical pages with different URLs would be considered distinct and would be cached separately. This basic service model is often complimented by premium services. In case of Akamai it includes server mapping and cache hierarchies. Its edge platform consists of more than 14,000 servers. Under high load conditions, the origin site could be swamped by the requests from edge servers from different locations. Creating a dedicated cache hierarchy, which is done by establishing parent-child relationships among the edge servers, can mitigate this situation. In such hierarchies, children request content from their parents rather than the origin site. This provides caching on multiple levels, and can greatly reduce the number of edge servers that access the site itself. Server mapping involves dedicating specific servers in each data center to a particular origin site. This reduces the overall number of edge servers that access the site and improves the cache hit-rate of each server. Today, many well-known sites are delivered from the edge by a CDN. An easy way to find out is to ping the same Web address through two separate providers, e.g. from home and the office. If it resolves to two different hosts outside the site's domain, they're likely to be edge servers. Another clue is when Netcraft reports an impossible platform combination such as this: www.cdc.gov was running Microsoft-IIS on Linux when last queried at 24-Sep-2004 10:01:22 GMT CDN Integration OptionsMy first impression after reading white papers published by CDN providers and talking to their sales staff was that integrating a CDN into the solution architecture was easy and transparent. It looked like all that had to be done to make an application globally available was to sign the contract and provide the server and URL information. However, reality is rarely that simple, and CDNs, as most other optimizations, can be ineffective, even detrimental, if applied incorrectly.Further analysis identified five possible levels of integration between Web applications and CDNs. They put different requirements on the Web application and have a major impact on end-user performance and the load on the application. There are five possible levels of integration between a Web application and a CDN: Asset Caching, Page Caching, Personalized Page Caching, Edge Side Includes, and Edge Computing. Asset Caching Page Caching Personalized Page Caching Edge Side Includes Edge Computing Building Page-Cacheable ApplicationsGiven these considerations it becomes clear that, when applicable, Page Caching offers the optimal balance for improving performance, reducing the load on the target site, and preserving a Web application's original architecture. So from here on out we'll focus on building applications that work consistently and reliably with the Page Caching mechanism of CDNs.An Application's View of a CDNWhen working through a CDN, applications still get HTTP requests from the Internet, but user demographics and behavior change dramatically. There's no longer a big and diverse population of "normal" users who surf pages sequentially and take time to read the content. Instead there's a small pack of "crazy" users, who look like they've bookmarked every page in the system and are jumping between them without any apparent logic or even time to digest the content. These users are cache servers, and their odd behavior comes from the collective cache misses of the actual users accessing the origin site through each server. Besides the virtual Attention Deficit Disorder, these new users also have multiple personalities - page requests that get through from a given edge server contain different cookies, browsers, and locales.LATEST JAVA STORIES & POSTS
SUBSCRIBE TO THE WORLD'S MOST POWERFUL NEWSLETTERS SUBSCRIBE TO OUR RSS FEEDS & GET YOUR SYS-CON NEWS LIVE!
|
SYS-CON FEATURED WHITEPAPERS MOST READ THIS WEEK SPONSORED BY INFRAGISTICS
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||