Web site scalability is one the most talked-about goals for any company on the Web. Software manufacturers are constantly reporting on their ability to scale. Achieving scalability requires a three-pronged approach: hardware, software, and procedures. This article will focus on software design concepts that can help you ensure the scalability of your site. These techniques should work with any software platform you choose to power a Web site.
The early stages of design
A lot of design decisions are made as you determine the functionality of your Web site. Eventually, a list of the items that can be implemented within a reasonable time frame will be scheduled for execution. Take ample time before implementation begins to plan for the basic information that will be required to support the functionality of the site. Treat everything as a valuable resource, and as the design takes place, consider how often that resource is being used.
I prefer to design with the database as a starting point. That way, I better understand the information required. It’s too easy to see what a page might look like—and even produce a mockup of such a page—before the implications of that design are well known. By designing the storage specifications first, the subsequent implementations are better understood. The entire design is never complete, but rather, it’s an ongoing process that’s constantly changing at every level to meet new requirements. In other words, don’t get too comfortable with the first design of anything.
Take an object-oriented approach
As the design takes shape, keep it simple. Using object-oriented approaches to the design of the Web site will make it much easier to modify as the requirements change. Balance the object-oriented approach with the time required. My general experience has been that a truly object-oriented design takes more forethought and planning than a brute force approach. The benefits of this planning are unmistakable, but often it is necessary to do things in the most basic manner in order to achieve results.
Thinking about objects will allow the Web site design to be broken into components of functionality that can be shared throughout the site. It doesn’t matter if these components are implemented as objects or as included files. However, identifying the shared functionality will allow you to reuse code. These reusable pieces are prime areas for future tweaking to achieve maximum scalability from the design. Without shared functionality, it is very difficult to achieve scalability without a tremendous amount of additional effort from the programming staff.
Page size matters
When thinking about functionality, be sure to consider the page size and the images. As a general rule, keep every page below a predetermined level. Page size includes the graphics that go on the page. I like to use 10K to 16K as a general guideline, but each implementation must set the appropriate limits. For example, an intranet application may allow larger pages with the assumption that access will be over the local network.
Make sure every image is optimized for the Web. Additionally, consider using a service such as Akamai, which specializes in optimizing your Web presence. By using this service, images are served up from the provider’s machines and not from the local Web servers. This frees up valuable resources in the Web farm that would otherwise be occupied with serving up image data.
Consider text instead of images
Use text whenever possible in the Web site design. Many sites today use image rollovers for links rather than standard hyperlinks. This is done for attractiveness of design and not for scalability. These pages end up with large numbers of graphics, since two images are needed for every navigation link. For modem users, these rollover links either slow down the entire page or operate slowly if the image is not loaded until the mouse is over the link. There are many reasons to use standard links, but for scalability it is a must. Each graphic on a Web page generates another request to the Web server for the graphic. All that additional traffic can adversely affect the scalability of a Web site.
Have a comment?
Share your comments and additional ideas about design practices to help achieve Web site scalability. Send the editor an e-mail.