Bazaarvoice provides social commerce solutions to the world’s biggest brands, including leading global retailers like Best Buy and The Home Depot, as well as major brands such as Adidas and Samsung. Bazaarvoice solutions help companies capture, display, and analyze consumer-generated ratings, reviews, recommendations, and social content posted online about their brands, products, and services. Bazaarvoice customers use this data to boost sales, acquire new customers, improve their products and services, and enhance consumer engagement across multiple channels. Every month, more than 700 million people view and share their opinions and experiences about tens of millions of products in the Bazaarvoice network.
Since its founding in 2005, Bazaarvoice has consistently sought to increase the elasticity of its technology platform. “We wanted to move from a traditional siloed, SQL-based architecture and a managed collocation environment to a more elastic NoSQL architecture,” says Gary Allison, executive vice president of engineering at Bazaarvoice. “As an example, as we grew, we wanted the flexibility to purchase storage capacity as we needed, rather than having to make large-scale assumptions about physical hardware that may or may not turn out to be true,” adds Joseph Poirier, senior manager of platform infrastructure for Bazaarvoice.
Why Amazon Web Services
Bazaarvoice turned to the cloud to address its elasticity needs in 2008 and has now moved all its primary consumer-facing services to Amazon Web Services (AWS). “We were very early enterprise AWS adopters,” says Allison. “To become truly elastic, we knew we needed a strong cloud provider like AWS to host our environment.”
Bazaarvoice started using AWS as the primary cloud platform for its environment. The company uses more than 20 AWS services, including Amazon Elastic Compute Cloud (Amazon EC2) instances to host its website platform, Elastic Load Balancing for distributing incoming network requests, and Amazon Simple Storage Service (Amazon S3) for data storage. “We run nearly everything on AWS, including 50 applications that span development, QA, and production,” says Allison. “At any given time, we have around 4,000 Amazon EC2 instances running across multiple availability zones.”
A key part of the Bazaarvoice AWS implementation is Amazon Elastic Block Store (Amazon EBS), which provides persistent block-level storage volumes for use with Amazon EC2 instances. “The ‘elastic’ in Elastic Block Store is a key concept for us,” Poirier says. “We can manage our storage and compute capacity a lot more seamlessly by using Amazon EBS.” Amazon EBS also plays a key role for Bazaarvoice as it completes the transition of its services from the collocation environment to AWS. “Amazon EBS makes the migration easier for us, because we’ve been able to replicate everything to AWS,” Allison says. “As consumers around the world come to e-commerce sites and read reviews, they actually hit master and slave databases on top of the replicated databases.”
As its business grew rapidly, Bazaarvoice was concerned about possible data limitations in its existing Amazon EBS deployment. “Our content size doubles every 18 months, and we were getting very close to the one-terabyte maximum EBS volume size,” says Poirier. “At the same time, we are still transitioning from having data in a master database to a NoSQL architecture, so we have a number of logical separations of clients into clusters. Some of those clusters were approaching that one-terabyte limit for the AWS replication of the master database.”
As a result, Bazaarvoice was concerned it might need to re-architect some of its applications. “The EBS volume was our gateway into AWS, and it made all the other services work,” says Poirier. “We had done a lot of engineering work to pare down the amount of data we were sending to the AWS replicas, and we were worried we were going to have to do a lot more work to solve the data limitation problem.”
Supporting Aggressive Data Growth by Moving to Larger and Faster EBS Volumes
As it sought to solve its challenge, Bazaarvoice was invited by Amazon to be an early adopter of the new larger and faster EBS volumes. These new volumes support up to 16 terabytes and provide up to 20,000 provisioned IOPS, up from 4,000 IOPS in previous versions. In addition, newly created volumes can transfer data more than twice as fast. “We were given the opportunity to test the larger and faster EBS volumes, and we were eager to try it because it looked like a great solution to our data-growth challenge,” says Poirier.
Bazaarvoice was able to test the performance of the new EBS volumes before production. “We replicated one of our larger clusters that was nearing its size limitation and put a small version of the database infrastructure into the new EBS volume,” says Poirier. “We captured about a week of incoming requests—billions of requests—and tested the new EBS volume to see what kind of performance it had compared to the older volumes,” he says. "In our testing, Amazon delivered the faster EBS volume performance they had hoped to see in the beta program."
Bazaarvoice can now easily support its tremendous data growth without worrying about size limitations. “We have started moving some of our clusters from one-terabyte volumes to two-terabyte volumes, which helped us better support data growth. And if we need to move those to three terabytes, it won’t be an issue at all. In a traditional environment, that would take months of planning,” Poirier says. “We can definitely support more customers and more data by using the larger and faster Amazon EBS volumes. We have no more concerns about being able to meet our storage needs as our clusters continue growing over time.”
In addition, with more room to store data and the ability to access that data faster, the company can focus on building new applications instead of spending more engineering time attempting to reduce the volume of data sent to AWS replicas. “We had been considering taking one or more clusters and splitting them into additional clusters, which would have been costly and complicated,” says Poirier. “We also had a lot of links between clusters, so [we] would have needed to duplicate those. It was a whole area of work we didn’t want to have to do, and we completely avoided it by using the larger and faster Amazon EBS volumes.”
Bazaarvoice will also be able to take advantage of the strong performance capabilities in the larger and faster EBS volumes. “In our testing, we validated the higher IOPS and throughput rates that AWS quoted to us, and overall we saw performance that was as good or better for our database clusters,” says Poirier. “We are very confident we’ll be seeing those results in production as well.” With stronger performance, the company will be able to more quickly re-create slave databases. “When we create a slave, it takes time for the instance to warm up from a snapshot,” says Poirier. “In testing, we found that the warmup time was twice as fast with the newer EBS volumes. That means if we need to spin up another slave to handle increased website traffic, we can do it twice as fast.”
The company also has more flexibility as it completes its transition to a NoSQL architecture. “We are still in the process of moving the rest of our databases entirely to AWS,” Poirier says. “As we do that, we will have more options for storage, compute instances, and even on-demand pricing.” And Bazaarvoice will continue benefiting from the elasticity enabled by AWS. “EC2 is a critical part of how we serve our customers in terms of our ability to spin resources up or down as needed to meet demand,” says Poirier. “And we can seamlessly upgrade and get more price and performance each time Amazon introduces new instance types.”
Bazaarvoice plans to expand the breadth of its AWS implementation in the months ahead. “Our success relies on AWS, and we look forward to adding more services in the future,” says Allison. “Our AWS counterparts have been tremendously helpful, whether it’s talking to us about new architectures or even new directions for the service we provide to hundreds of millions of people. With AWS powering our platform, we can focus on innovation for our customers and their business success.”
“We can definitely support more customers and more data by using the larger and faster Amazon EBS volumes. We have no more concerns about being able to meet our storage needs as our clusters continue growing over time.”
Joseph Poirier, Senior Manager of Platform Infrastructure