Over Capacity? photo by Tony Alter (Flickr)
Capacity planning is not a black art. But when it comes to sites doing a scheduled flash sale or a person with a large number of social media followers (over 1mil) it can get ugly fast! I witnessed this today for a site that was opening up new memberships at a specific time. Their site runs on Magento and that is about all I know since they are not a client. To not help matters they were also using Cloudflare which just showed their own error message.
So how can this be prevented?
Magento and most LAMP applications like WordPress are known for not scaling very well. You have to leverage caching and CDNs along with using the correct config files such as my.cnf (MySQL) to optimize performance. Using default configurations will NOT do you any favors!
If using Amazon Web Services (AWS) you should be leveraging:
- RDS Cluster (MySQL)
- ElastiCache (memcached)
- Correct EC2 Sizing
- Elastic Load Balancers (ELB)
- CloudFront (CDN)
Getting back to the example that inspired to me write this. During the first hour the complaints on their Instagram were quick and heavy. Users even taking pictures of the Cloudflare error page and posted those in frustration. Needless to say it is not the best PR after building up to an event and getting more interest than you saw coming. After two hours they gave up and posted a page to postpone their event. With correct capacity planning and configuration of Magento this could have gone much better!
If you’d like help scaling your site please feel free to contact me or visit my company site – http://tarnover.com
(Reposted here from my LinkedIn)
A brief history of everything… (SysAdmin related)
There has been a lot of hype over the last year on container solutions, like Docker, with an ever growing and sometimes fragmented group of supporting projects. What does this all mean for the cloud and the future of hosting applications?
Pre-Cloud and Virtualization (aka The Dark Ages)
Before the cloud and virtualization you had a bare metal server where you installed an operating system on to host your service or application. It was basically a 1 to 1 thing in terms of the hardware and operating system. There were hardware load balancers to distribute traffic to a pool of these physical servers. This was very inefficient due to much of the hardware not being utilized even during peak load times.
Dawn of Virtualization (aka The Not-So Dark Ages)
When the boom of virtualization in all its forms came about with VMware and other offerings, people saw the promise and hope of being able to more fully utilize their hardware by segmenting it into virtual machines to better use (and cost effectively) plan for capacity.
When Hostgator and BlueHost along with a myriad of other hosting companies owned by Endurance International Group went down Twitter was abuzz with mad clients complaining. Many of which had no local copies of their site(s). Nor did they have a backup plan for them or if applied, their clients. It is understandable that web designers wanna save on their overhead and host their clients site as cheaply as possible. But in this and many other cases you get what you pay for. I have worked for over 15 years creating fully redundant datacenter and cloud infrastructure for numerous companies. In my vocabulary “downtime” is a four letter word.
With todays cloud environments you can have full redundancy and minimize the impact of an outage be it localized or geographic. There is always the possibility of having the dreaded downtime but it can be minimized inexpensively for mission critical things.
Small businesses can’t be hosted by the all-inclusive shared server account model that many of the largest (and cheapest) hosting companies provide. This is a remnant of circa 1995 business model for hosting. Where a shared account is used to host website, email, FTP, DNS, and the kitchen sink. It’s understandable that something like a website being down might not be the end of the world for some SMBs but having email down along with every other service they need can be detrimental. We all know putting all your eggs in one basket is never an optimal idea.
Let alone the security issues that come with shared hosting. If one site is compromised due to a simple cross site scripting or other issue the whole server will be taken over. Leaving your site and data as collateral damage to someone else’s mistakes.
There is a need for a revised method of providing SMBs and independent web designers to get cheap but reliable (including well architected) hosting.
It is not 1995 anymore…