Last week I co-presented a webinar with folks from Amazon Web Services (AWS) on best practices for eCommerce in the Cloud. Given the great response, I thought I’d share the five best practices across a five-part series here
Best Practice #1: Consider Horizontal Scalability vs. Vertical Scalability
In the days of monolithic architectures there was usually a single solution to obtaining better performance from an application: Throw Iron at it. In other words, buy bigger hardware, which is also referred to as Vertical Scalability Unfortunately, with today’s architectures, that is no longer the best solution for most clients most of the time, and hasn’t been for many years.
Horizontal Scalability, in contrast, is the practice of scaling across each architectural tier. The tiers can be web servers, application servers, database servers, just about any – thoughtfully designed – layer of the architecture. While this is a possible in a traditional environment (dedicated hardware in a private physical space) it’s much easier in the Cloud. When thinking of deploying to the cloud, you have to architect for the Cloud to take full advantage of its capabilities. For example, being able to rapidly bring a new web server online to handle an increase in traffic requires considerations on standardizing configuration, introducing a new server into a tier without disruption, etc. While these things should be thought of regardless of the environment, they are especially important in the Cloud to ensure quick integration time of new components. Speed is paramount when it comes to the cloud – planning ahead can save dev ops time and significant money.
An adjunct to this best practice is that of Proactive scaling vs. Reactive scaling. The speed of requisitioning additional servers in the Cloud leads some to believe that a reactive approach is feasible. Not so much. Even if bringing a new server online takes a matter of minutes, do you want a reactive plan to drive users away even for a short period of time? Of course not.
Plan for a bit of extra capacity and be proactive about sizing the environment. Work with Marketing to understand what promotions are in the works, how they may affect future traffic, and plan accordingly. My best advice is to allow a little headroom and monitor the environment carefully. Once a reasonable threshold has been reached, scale up. After all, the great thing about the cloud is you can easily scale down — adjusting processing power and cost. Employing this tactic makes you the proactive hero no matter how the environment changes.
To see the original complete presentation given with AWS, view the webinar here and tell me what you think in the comments below.