One very strong case for cloud computing is that it can satisfy applications with seasonal traffic patterns. One way to test the advantages of the cloud is through a hybrid approach.
Cloud infrastructure can be built completely through scripts. You can spinup specific AMIs or machine images, automatically install and update packages, install your credentials, startup services, and you’re running.
All of these steps can be performed in advance of your need at little cost. Simply build and test. When you’re finished, shutdown those instances. What you walk away with is scripts. What do we mean?
The power here is that you carry zero costs for that burst capacity until you need it. You’ve already build the automation scripts, and have them in place. When your capacity planning warrants it, spinup additional compute power, and watch your internet application scale horizontally. Once your busy season is over, scale back and disable your usage until you need it again.
We applications and websites get measurable traffic, recorded in metrics such as pageviews, unique visitors, and visits. All of this activity translates to hits to a webserver, and work for a database to retrieve information for those pages.
During one month your application might get 150,000 visits, then during one week where a large ad campaign hits, or some marketing feature goes viral, you suddenly get 500,000 visits in one week! This is a “good problem to have” on the business side, but poses great challenges to an infrastructure as it represents a 7x increase. What’s more if you do your capacity planning around that peak, you’ll have in 600% of your computing power and servers sitting around idle most of the year (assuming that’s just a blip).
Therein lies the challenge of seasonal traffic variations. Capacity planning attempts to watch for trends in traffic, and growth over time of your user base. But large spikes like the one described above can often be difficult to predict. The whim of the masses.
Sean Hull asks on Quora – What are seasonal traffic variations and why are they important?
Websites and web applications have traffic patterns that are often unpredictable. After all growth in traffic is really what we’re after. However, even with the best stress testing, it’s sometimes difficult to predict what areas of the site will get innundated, or how the site will scale.
Degrade gracefully describes an architecture built specially to unwind in a smooth manner without any real site-wide outage. What do we mean by that? We mean build in operational switches to turn off components in the site. Have a star rating on pages? Build an on/off switch for your operations team to disable it if necessary. Have site-wide comments, or robust search? Allow those features to be disabled. If possible, architect in a read-only mode for your site that you can turn on in a real difficult situation. By operationalizing these components, you give more flexibility to the operations team, and reduce the likelihood of having a complete outage.
Sean Hull asks on Quora: What does degrade gracefully mean, and why is it important?