Founded in 2008 and based in Istanbul, Turkey, Cimri is a leading price and product comparison site. It helps users compare products from hundreds of online retailers, allowing them to browse by technical specification and price across 21 categories and more than 3,000 sub-categories, including electronics, homewares, health, household and baby care. When visitors choose the product they want to buy, they are directed to the retailer’s site from Cimri. The firm was acquired by ilab Ventures in 2011, which owns a diverse portfolio of companies across Turkey.
The site experiences significant fluctuations in usage—for instance, increased demand in the evenings, when people are shopping online—so the IT team needs to provision compute power flexibly. Cimri was using a local hosting provider to run its IT infrastructure, including its databases, search servers, and application servers. "The main problem we faced with our previous provider was lack of scalability," says Serkan Koç, CEO of Cimri. "We couldn't expand the number of servers easily when traffic to the website was high. In addition, during quiet periods we didn’t want resources sitting there not being used, but with our existing setup we couldn’t turn off servers once they'd been launched." In short, the firm didn't have the agility to scale up and down cost-effectively.
Furthermore, Cimri found that changes to product information, such as prices, were taking a long time to filter through from retailers' websites, which meant product information wasn't always up to date. "We wanted to improve the user experience and ensure people were getting accurate product details without delays. To do this, we needed a service that would help us work in real time," says Koç.
In addition, there was another, more serious, issue affecting users. "We didn't have robust failover," says Koç, "so if something happened to one of the servers, the whole website could go down. This would be disastrous for the user, and the business."
Cimri wanted to find a solution that would help it focus on improving services.
Why Amazon Web Services
The ten-strong IT team at Cimri had some experience using Amazon Web Services (AWS), so when it came to choosing a cloud provider, "it was an easy decision to make," says Koç. "After a brief period of experimenting with AWS," he continues, "we could see that it would easily scale to meet traffic demands, as well as take care of the day-to-day IT admin tasks that were keeping us from our core development work."
To get product information to its site, Cimri needs to draw data from hundreds of retail websites. This product information is fed into Amazon Kinesis for real-time processing. Koç says, "With Kinesis, we scale our consumers by increasing the number of shards depending on the data volume. We use multiple streams for each type of information, and depending on the importance of that information, we scale these streams." Cimri uses Amazon Elastic Compute Cloud (Amazon EC2) with Elastic Load Balancing automatically distributing loads between multiple EC2 instances, and Auto Scaling to deal with capacity provision. Its developers use the Amazon EC2 Container Service (Amazon ECS) to support Docker containers and easily run distributed applications. In one Auto Scaling Group Cimri runs an Apache Mesos cluster, which it scales up or down according to demand.
For easy set up and administration of database tasks, Amazon Relational Database Service (Amazon RDS) is employed across multiple Availability Zones (AZs), supported by Amazon Simple Storage Service (Amazon S3) in the back end, dealing with around 20 million requests a day on average.
All data logs are sent to the Amazon Elasticsearch Service, which plays a crucial role in analyzing data. Koç says, "Using Elasticsearch, we know, for example, how many products have been updated in a given period. It helps us derive meaning from our data." The team is also using Amazon DynamoDB for custom analytics services and reporting for the business, as well as tracking the historic pricing of products.
Cimri uses Amazon Simple Notification Service (Amazon SNS) and the team monitors load balancing in Amazon CloudWatch, setting alarms to notify the team of any spikes in traffic or errors in the system.
"Crucial to our decision to use AWS was the breadth of its expertise in the cloud and depth of its portfolio. It had more than we needed, so we felt confident that as our business grew, AWS would have the services we required to expand," says Koç.
By migrating from its local hosting provider to AWS, Cimri is now able to deal with extreme daily or hourly fluctuations in traffic to its website, as well as cope with a higher level of traffic overall as its shopping services become more popular. "With AWS, we've had no problem accommodating large increases in traffic as more people use our site. This isn't something we could have done in our previous infrastructure," says Koç.
With its previous architecture, the firm knew it couldn't deliver new services or offer new channels for consumers, "we just didn't have the flexible capacity that this additional functionality would require," says Koç. "But since moving to AWS, our business has been able to explore this. And while cost wasn't a driving factor in the switch to the cloud, Koç says that, "the same infrastructure would cost 30 percent more in the old hosting provider. It's a real bonus."
Koç talks about the transformation that the company has seen through working with AWS, "Visitors on our site have faster access to accurate information thanks to the new infrastructure. With Amazon Kinesis, any changes on retailers' websites are reflected in real time, which means our information is always up to date. Plus, search speed is vastly improved, and users can access product information 80 percent faster now that our infrastructure is running on AWS. Whereas before it could take up to 13 seconds for a page to load, it now takes less than 3 seconds. And it's getting quicker all the time." Because the user has a better experience, Cimri has found that conversion rates have increased by 50 percent. This means more people are clicking through to buy products on retailers' websites. Response times in the back end are a lot better now too. "Before, we were looking at latency of around 1 second, we are now achieving less than 100 milliseconds," says Koç.
Working across multiple AZs means the team has peace of mind that services will be available 24/7. Koç says, "We used to have significant outages that would affect the whole site about twice a week. Since we moved to AWS, we've seen zero downtime. We’re ensuring service continuity and saving a lot of engineer hours at the same time. And because AWS manages the servers for us, we can focus on developing new features and providing an even better service to customers."
Koç concludes: "Our target over the next two years is to grow the business by 300 percent. We know AWS will support this growth."
“Users can access product information 80 percent faster now that our infrastructure is running on AWS.”
Serkan Koç, CEO