Quizlet Case Study: 60 Million Page Views, 6 Million Uniques, 3 Web Servers, 40 miliseconds

October 25, 2011 - by alexsalkever

Quizlet is the world’s largest flashcards and study games website. From middle school students to medical residents, Quizlet’s users have created over 7 million flash card sets incorporating more than 200 million terms and definitions. Built by founder Andrew Sutherland in 2005 as a way to study for his high-school French class, Quizlet now includes advanced progressive learning tools that identify and emphasize knowledge areas where the user is weaker. This speeds the learning process. Ad-supported Quizlet has scaled from 100 beta testers at launch in 2007 to 6 million monthly unique viewers consuming over 60 million page views as of October 2011.

(Note: This post is excerpted from a forthcoming Joyent Cloud Customer Case Study.)

The Challenge: Sutherland knew he wanted to build Quizlet on a cloud platform to eliminate worries about hardware maintenance. He knew Quizlet would need:

Data Reliability and 100% Uptime: Losing user data that had been painstakingly uploaded would seriously damage Quizlet’s reputation so Sutherland and his team wanted the most reliable file storage system in the cloud. And they wanted a cloud that had few if any unplanned outages.

Superior Analytics Tools to Ensure Faster Page Loads: Quizlet users would be accessing the site from mobile devices and remote locations while studying. This meant they would be exposed to a far more diverse set of data delivery and network conditions so Quizlet would need to quickly analyze and troubleshoot any application latencies to tune apps for high-speed page delivery.

Premium Hardware in the Data Center: Sutherland knew the value of having new servers. In a cloud environment, better hardware can make a huge difference to overall cloud performance. Responsive Support. Because he was building Quizlet on the bleeding edge of Web application technology, Sutherland wanted fast support to ensure proactive fixes for any problem to prevent cascading failures that affect end users.

The Solution: After examining several other cloud offerings, Quizlet decided to build their business on the Joyent Cloud starting with their first beta build in 2007. The company presently uses a high availability, low-latency cloud infrastructure that can easily handle bursts in traffic. Quizlet deploys a diverse cluster of more than a dozen Joyent SmartMachines and appliances. The Quizlet stack includes two Zeus Traffic Manager load balancers (1 gigabyte capacity each) and two Percona database appliances (48 gigabyte master and a 16 gigabyte slave) that snapshot data without coming out of production. Quizlet further deploys seven other SmartMachine virtual compute nodes including Web servers Apache, PHP, Memcached and a search engine tool (Sphinx). The company uses JavaScript / AJAX for client-side compute tasks. All the SmartMachines run the open-sourced SmartOS cloud operating system.

Data Reliability and 100% Uptime: Sutherland says that Quizlet has not experienced any significant outages or downtime to date on the Joyent Cloud. Sutherland also loves the ZFS file system, deployed exclusively on the Joyent Cloud. It provides real-time copy-on-write protection and pervasive  and consistent checksums to guard against data degradation and “bit rot.” Says Sutherland, “It makes us more confident that we are never going to lose data."

Joyent Cloud Analytics: Quizlet’s operations and development teams use Joyent Cloud Analytics to quickly identify sources of latency buried deep in the compute stack. For example, Sutherland’s team discovered that the application was performing too many PHP calls because of an obscure code problem related to resolving paths in “require_once.” Explains Sutherland, “We refactored our code and noticeably sped up our site.”

Only Premium Hardware: Because Joyent Cloud deploys top-notch hardware (all Nehalem / Westmere Xeon processors, 15k rpm hard disks), Quizlet knows its site is running on fresh hardware. Says Sutherland, “Our application performance on Slicehost was much slower than on the Joyent Cloud. We know our application on Joyent Cloud runs super fast – across 100 million requests per week, our average response time is 40ms. That's partly because of Joyent's awesome hardware. We can run the entire site on just three (virtual) Web servers...”

Responsive Support: From its humble startup beginnings, “Quizlet has always received white-glove support from Joyent,” says Sutherland. “The support team is fast to respond and they know what they are talking about. With Joyent, there have been many times where we’ve been on the phone with support teams who have been able to help us figure out the main steps we need to do to scale our applications.”