How to Plan for Scalable eCommerce Solutions

Posted in Web Development, eCommerce by Erez Katz on March 1st, 2009

Many successful online merchants are often surprised by the immense marketing power the internet has to offer. When traffic is finally funneled to their online store, the technology and hosting infrastructure is unable to support it. Consequently, they experience loss of sales, frustrated customers, and at times bad PR and tarnished reputations. As the old saying goes, ”Good news travels slow and bad news travels fast.”

Nowadays, online merchants place a great deal of attention on empowering their eCommerce solutions with the latest marketing techniques. Shopping carts are now equipped with sophisticated promotion and marketing tools such as online coupons, product bundling, cross-sale and up-sale, persuasive content and advanced search engine optimization techniques. However, when a website is finally promoted on a popular blog or covered in an article published by a reliable expert, traffic can abruptly surge to levels never before planned.

In recent years, we often hear about huge online merchants experiencing downtime during the Christmas holiday season when their eCommerce sites are needed most. During last year’s Black Monday (which symbolizes the beginning of the online Christmas shopping season) large online retailers such as Sears, Saks Fifth Avenue, Costco, Dell, Victoria’s Secret, Bloomingdale’s and Williams-Sonoma experienced some sort of malfunction with their online commerce. [PC World Article].

Caught by surprise, their sites simply couldn’t handle the number of concurrent shoppers. This article will address just a few simple techniques that will make you better prepared for your online heydays. For the sake of brevity and in order to stay within the scope of this blog post, I will concentrate on three areas which will give your store the biggest bang in scalability and availability:

  • 1) Software development
  • 2) Hosting infrastructure
  • 3) Use of external content delivery networks

Software Development:

Software development and database technology have progressed dramatically in recent years. However, database connections and database queries are still considered the most demanding and limiting elements of your software performance. The more one can minimize the number of concurrent DB connections, queries and database updates the more scalable the application will be. Obviously, the database cannot be eliminated completely as perpetual changes must be communicated to the end user and new transactions must be recorded. However, if you analyze your user interaction with your site, you will most likely conclude that most of the data gathered by your users is in “read only” format. Hence, your users can tolerate some level of data staleness.

Data caching technique allows your software to display data that may be a few minutes old — rather than up to the second — directly from the database.  For example, Product Name, Description, Pricing, and Attributes are not subject to change every second but rather can be cached and made available to the end user from the cache’s last read from the database. This way, your users are getting data from the cache, which reads from the database once every predetermined time interval (could be minutes or hours depending on the specific business requirements). With the proper cache in place, your end users are getting reasonably current data and in turn are not bombarding your database with transactions that read the exact same data for each user. Data cache should be used wisely as some data does require database reads or writes and cannot be caches. For example, inventory availability must be gathered real-time from the database. However, with added sophistication, even inventory updates can be cached by putting certain thresholds and rules in your software.

Hosting Infrastructure

As hardware costs has become more affordable in recent years, many software vendors find hardware redundancy as a convenient alternative to inadequate software development. I personally recommend using all available techniques combined.

A good hosting infrastructure should provide both availability and scalability. Availability provides an environment in which no single point of failure exists. In other words, it can sustain a degree of hardware failure with minimal or no impact on the end user’s browsing or shopping experience. In addition, a redundant hosting environment can also provide scalability in which multiple servers are sharing the processing load in order to accommodate more users divided among the available servers.

One of the key hardware devices that enable such redundancy is the load balancer. A load balancer is a device designed to manage the traffic distribution among all registered servers. It is also empowered with a heartbeat monitor for each of the servers so that in the event that a server fails to respond, it takes it out of the distribution loop. In other words, it funnels traffic only to “healthy” servers. Load balance devices such as Big IP by F5 (http://www.f5.com) are recommended to be made available in pairs so that a single device does not create a single point of failure. Hence, one load balancer provides redundancy to the other. There are more advanced topics in hardware redundancy such as “sticky sessions” and “stateless users,” but I will discuss them in more detail in future blog posts. In short, sticky sessions create stickiness by which users are forced to stay on the same servers throughout their shopping experience.  Stateless users allow users to move between servers from one request to another as no data related to the user is server bound. As mentioned, stay tuned for future postings regarding “statelessness” and “sticky sessions.”

Use of external content delivery networks

Content Delivery Networks, also called CDNs, are great tools to allow variable scalability without upfront hardware and infrastructure investment. CDN allows scalability of bandwidth and hardware through a sophisticated infrastructure which is shared among many customers. The nice element of using such a service is that you are only subject to  a Pay-As-You-Go fee. Hence, you pay per usage. Static content, rich media, and images are excellent candidates to be delivered through a CDN provider. Most CDN providers maintain a robust and redundant network world wide which allows optimal delivery of such content. In other words, such content does not really come from your servers but rather from the CDN cache. (An example of a popular CDN provider is Akamai (http://www.akamai.com). The beauty of this model is that it is completely transparent to your end users and your online store is now equipped with the same infrastructure of some of the largest online retailers, but for a relatively minimal cost.

6 Responses to “How to Plan for Scalable eCommerce Solutions”

  1. How to Plan for Scalable E-Commerce Solutions | Web bDevelopment/b b…/b « topsoft.us

    [...] post: How to Plan for Scalable E-Commerce Solutions | Web bDevelopment/b b…/b Share and [...]

  2. Mary

    Makes a great article! You do not want your competition to get your business because your system couldn’t handle the load.

  3. Affordable Online Marketing | Niche Blueprint--Niche Blueprint Reviewed

    [...] How to Plan for Scalable E-Commerce Solutions Many successful online merchants are often surprised by the immense marketing power the internet has to offer. When traffic is finally funneled to their online.    [...]

  4. Building Scalable Ecommerce Solutions Part II | Web Development Blog | Bridgeline Software

    [...] on the number of inquiries from my last post (Building Scalable Ecommerce Solutions) I decided to follow-up with a more in-depth discussion on one of the topics which I have touched [...]

  5. Digital Media Buzz - How to Plan for Scalable eCommerce Solutions | Digital Media Buzz

    [...] Nowadays, online merchants place a great deal of attention on empowering their eCommerce solutions with the latest marketing techniques. Shopping carts are now equipped with sophisticated promotion and marketing tools such as online coupons, product bundling, cross-sale and up-sale, persuasive content and advanced search engine optimization techniques. However, when a website is finally promoted on a popular blog or covered in an article published by a reliable expert, traffic can abruptly surge to levels never before planned……[read entire article] [...]

  6. Implementing an eCommerce System – Ask Critical Questions | Community Discussion for Interactive Business Technology Professionals | Bridgeline Software

    [...] implementation of eCommerce software can be a large undertaking. From internal buy-in and project organization to vendor selection and [...]

Add a Comment

Submit