Scaling Your Online Business for the Holidays
Once again the holidays are approaching and eager consumers are preparing to snuggle up on the couch with their laptops and tablets to hunt for those digital deals, bringing joy to business owners and sleepless nights for IT teams responsible for making sure the business continues to run through the holiday rush no matter what.
There are many resources out there on how to prepare for a traffic spike. Some have checklists, others don't, some are better than others. Several have generic practical tips to help you optimize your site, like reduce the number of HTTP connections or use content distribution networks (CDNs). Others believe that overly generalized statements like "have a backend that can support high traffic" is a valuable tip. While the details on what changes you need to make will be specific to your architecture, at the end of the day, optimizing your systems boils down to a couple of principal concepts.
Understanding where the bottlenecks occur is the most important part of scaling on demand. If you don't monitor and trend every aspect of your architecture and application, including business rules, you won't be able to identify — and often predict — the irregularities and choke points that require your attention. Having an accurate and measurable changelog of both system and pattern changes will provide visibility into application health, allowing you to isolate and resolve immediate issues and plan ahead for future problems.
Separating your application into logical components will help with the multitude of challenges any technical group experiences, including testing, troubleshooting and scaling. Ideally, each of your components should scale independently of each other. Building your architecture with an ability to scale individual components on demand helps to remove bottlenecks in the specific layer of the stack without a need to re-engineer a large portion of the application on the fly. This also prevents over-provisioning (and subsequently overpaying).