People around the world use the Fashiolista social network to discover exciting new fashion trends. Whether it's clothing, shoes or accessories, Fashiolista members can save everything that inspires them online, share their favorite finds, and follow other trendsetters. At only two years old, the Netherlands-based startup has gained more than one million members in 165 countries since its launch in 2010. Fashiolista attracts at least 90,000 additional members each month.
The company originally self-hosted its data, but by early 2011, Fashiolista's growth had outpaced its existing infrastructure. The company was seeing more than 100 million page views per month. Social media sites have unique challenges in terms of scalability—it’s difficult to forecast for peak usage because of the nature of the site. Some users spend six to eight hours a day on the site, driving page hits up on trending topics and increasing load times in unpredictable ways.
Thierry Schellenbach, Fashiolista's Founder and Chief Technology Officer, says, “Hosting is not our core business, and we didn't want to go through the pain of growing from 4 to 60 servers in a data center.” Time was a factor, as well. With such explosive growth, Fashiolista did not have time to undergo a lengthy hardware acquisition and provisioning process. The team needed a solution that would allow them to roll out architectural changes in minutes instead of days.
Why Amazon Web Services
After talking with other successful web entrepreneurs, Schellenbach looked to Amazon Web Services (AWS) for capacity relief. “AWS provided Fashiolista with the flexibility to set up a high availability infrastructure,” Schellenbach says. “Cost and performance were also concerns. We realized that by adapting to a cloud environment, we could run both a high-performance and affordable infrastructure."
Fashiolista re-launched its social network from a platform that uses Amazon Elastic Compute Cloud (Amazon EC2) for its resizable compute capacity. The team uses Elastic Load Balancing for automatic distribution of traffic and Amazon Elastic Block Store (Amazon EBS) for block-level storage volumes. The company is also using Amazon Simple Storage Service (Amazon S3), Amazon Simple Queue Service (Amazon SQS), Amazon Route 53, Amazon CloudFront and Amazon ElastiCache. See the architecture diagram below for an illustration of their system.
Figure 1. Fashiolista Architecture on AWS
More than 70 different AWS instances provide Fashiolista with a wide range of functions, including:
4 database servers
8 Redis servers
12 web servers
10 task servers
2 search servers
3 Memcached servers
3 static servers
4 logging servers
In addition, Fashiolista runs a variety of third-party development tools within AWS.
The team uses Apache SOLR, PostgreSQL, Redis and graphite as data storage layers. The web layer runs on Nginx, Supervisor, Gunicorn, Django and Python. In addition, the team is using Jenkins for continuous testing. For monitoring, the team uses Amazon CloudWatch, NewRelic and DataDog.
Fashiolista maintains the entire infrastructure with the help of developer-level AWS Support, Amazon CloudWatch, AWS CloudFormation, and the third-party Puppet application. “Working with AWS gives massive benefits in time-to-market,” Schellenbach says. “It is relatively easy to test when you can boot a stack of servers similar to your production setup in minutes. You pay based on usage, so in terms of costs, it’s very feasible to test changes on a testing stack with a database, load balancer and web servers. Just make sure you remember to shut them down afterwards. These types of experiments were simply not feasible in a bare metal setup."
AWS has enabled the Fashiolista team to scale up before performance problems arise. “When we were using a traditional colocation setup, we would often only resolve performance problems after the fact,” Schellenbach says. “Now we first scale up, and then try to improve efficiency and reduce the number of servers.”
Fashiolista is improving its overall stability and reports a 99.88 percent uptime for its social network. The company is also optimizing its applications to make the most of the demand-driven pay model of AWS. “In our analysis, we found static hosting, Amazon CloudFront, and Amazon Route 53 to be extremely cost-effective when compared to our previous solution,” Schellenbach says. “Our upfront investment on the old architecture was about $18,000. Testing on AWS prior to launch was around $6,000.”
But for Fashiolista, the greatest strength of AWS is the ability to keep pace with the social network's escalating popularity—which has produced a 150 percent increase in web traffic since leaving the collocation facility. Before moving to the cloud, Fashiolista had 700,000 users; the team now estimates more than 1 million users.
“For a fast-moving startup, flexibility is the most important requirement. AWS allowed us to approach our infrastructure as software and has enabled our team to roll out large changes in minutes, not days,” says Schellenbach.
In the future, Fashiolista plans to promote its presence in budding markets, such as Brazil, by expanding into the AWS South America Region, among others. Fashiolista's CEO, Joost Nauta, concurs. “AWS has fundamentally altered the way we work. It has enabled us to move incredibly fast and adjust quickly to increasing demand.”