Kenshoo is a global leader in predictive marketing software, providing advertisers with the tools to succeed in a quickly changing digital landscape. Brands, agencies and developers use Kenshoo Social, Kenshoo Search, Kenshoo Local, Kenshoo SmartPath, and Kenshoo Halogen to drive more than $200 billion in client sales revenue through the Kenshoo platform.
Kenshoo has campaigns running in more than 190 countries for nearly half the Fortune 50 and all 10 top global ad agency networks. Its clients include CareerBuilder, Expedia, Facebook, KAYAK, Sears, Travelocity, Walgreens, and Zappos. In its most recent evaluations of social ad platforms and bid management software, independent research firm Forrester Research named Kenshoo the sole company in the top “leader” category. The company is headquartered in Tel Aviv, Israel, and has 27 locations around the world.
Kenshoo’s social business unit, Kenshoo Social, helps marketers automate social media campaigns, target specific audiences and optimize messages to them, measure customer interactions, and master social media. The company wanted to shorten its time to market and enable its technical team to focus on developing products rather than managing infrastructure.
The company also needed identical environments for the different stages of the development cycle: development, quality assurance and production. “In our previous setup, an on-premise data center, we sometimes found that when we developed something and deployed it, it would behave differently in production,” says Sagi Keren Haselkorn, director of research and development for Kenshoo Social. For example, settings for firewalls and load balancers differed between the staging server and production server, and those differences caused problems for part of Kenshoo Social’s service. Kenshoo also wanted a solution that would provide high availability.
Why Amazon Web Services
Kenshoo began experimenting with Amazon Web Services (AWS) in late 2011 based on its service reputation, the richness of services and tools, its stability and reliability, and the potential for fast development. “We needed a solution we could count on—and because of the nature of our business, we needed a platform that would yield high availability and scalability,” Haselkorn says. When the company found that AWS worked well for its needs, Kenshoo expanded its use, and now develops most of its Kenshoo Social products on AWS in a highly available, scalable, and elastic architecture.
For web and application services, Kenshoo Social uses Amazon Elastic Compute Cloud (Amazon EC2) instances. Kenshoo’s executor servers, which execute batch processes, use Amazon Simple Queue Service (Amazon SQS) heavily and use Amazon Simple Email Services (Amazon SES) as their main SMTP server. Amazon Route 53 manages domain names.
Kenshoo also uses Amazon Virtual Private Cloud (Amazon VPC) as an isolated environment connected to the Kenshoo on-premise data center. Amazon ElastiCache is used as a session replication repository and shared memory for the cluster members. The company generates internal reports with Amazon Elastic MapReduce (Amazon EMR), and uses Amazon Simple Notification Service (Amazon SNS) as a notifications service for the hundreds of notifications they receive each day.
Kenshoo uses Amazon Relational Database Service (Amazon RDS) MySQL 5.6 as its main database, and NoSQL on Amazon DynamoDB to track impressions. The company sees anywhere from tens of millions of events to hundreds of millions of events per day. For AWS services monitoring and custom metrics usage, Kenshoo uses Amazon CloudWatch. AWS Identity and Access Management (IAM) is used to manage permissions for users and machines. The company stores its images in Amazon Simple Storage Service (Amazon S3) and its event trace log (ETL) files in Amazon Glacier.
The company uses AWS CloudFormation to provision resources in all environments. Haselkorn says, “We are launching everything and defining all the resource rules, security policies, and services that we need using AWS CloudFormation scripts, which are identical in all environments except for the size. (For example, we’re using medium-sized servers, while in production we’re using extra-large servers.) As a result, we have few problems related to differences between the environments.” See Figure 1 for the Kenshoo configuration.
Figure 1: Kenshoo Architecture Configuration
The Kenshoo team also uses the AWS SDK for Java and the AWS Management Console as well as Java, Spring, MySQL, Linux and ExtJS.
By using AWS rather than a traditional hardware-based infrastructure, Kenshoo was able to speed up development and avoid the problem of staging servers not matching up to production servers. “At every checkpoint, it was clear that the speed of the development cycle was increasing because of our use of AWS,” Haselkorn says.
The company has increased scalability—scaling to handle a 500% increase in traffic in a matter of minutes—and reduced its dependence on hardware by using AWS. “Using Amazon DynamoDB eliminated the need for physical servers, including configuration, maintenance, and scaling,” Haselkorn says. “Our marketing platform handles hundreds of millions of events per day, with the potential to handle billions. Using AWS enables us to have truly dynamic scaling.” Availability and reliability has also improved, thanks to the use of AWS. The company has experienced 99.999 percent availability.
Using AWS has helped Kenshoo save on personnel costs, as well. “Using our previous solution, we would have had to hire at least a few more people,” Haselkorn says. “With AWS, we can invest more on pure development rather than infrastructure maintenance.”
By using AWS, the company has been able to decrease its time to market by 70 percent. Now, the team is making major releases regularly (every two weeks), resulting in more value for customers. “For impression tracking, we have decreased time to market by at least 70 percent, because what used to be an extra-large project in terms of IT has been reduced to nothing,” Haselkorn says.