Winnow

CASE STUDY

INDUSTRY

Media/Digital Marketing

CUSTOMER SINCE

May 2018

LOCATION

San Francisco, US

USE CASE

Improve the health of the serverless system,
Discover the architectural patterns
with auto-instrumentation.

winnow-test

winnow_product_image-2

WINNOW INTRODUCTION

Winnow is an automated digital marketing solution for your businesses. Winnow delivers end-to-end marketing automation including strategy, content, creatives, ad campaigns and results. Winnow had an alpha launch in October 2018.

As a rapidly growing start-up with heavy data loads, Winnow took advantage of outsourcing the scalability and reliability concerns to AWS, and they trusted Thundra as their observability solution to achieve excellent levels of efficiency via monitoring their system.

THE CHALLENGE

Winnow's product was data heavy and had massive amounts of third party integrations. They needed a solution where code scaling would not be an issue, and they needed to work in multiple programming languages. "Serverless Framework" was an obvious fit for Winnow because the team had flexibility to code in as many as 6 programming languages, and they did not have to worry about architecture scaling and server maintenance.


THE CHOICE FOR AWS SERVERLESS

When it comes to serverless, AWS was an obvious choice because other cloud providers were not mature enough to inspire confidence to build entire products around them.  It's been almost a year with AWS now and currently Winnow uses but is not limited to AWS services such as AWS Lambda,  Amazon CloudFront, AWS CloudTrail, AWS CloudWatch, Amazon API Gateway,  Amazon Cognito, Amazon DynamoDB, Amazon RDS, Amazon Kinesis, Amazon SQS, Amazon SES, Amazon SNS, Amazon S3,  AWS X-Ray.

winnow-arch-3

A small portion of Winnow's Architecture


WHY THUNDRA?

As Winnow's application started ramping up, they quickly found more than 70 Lambda functions working in tandem to support their product. The number of Lambda functions grew  when they added features to the product. At this point, monitoring the system got a bit difficult. System visibility was one of the major concerns with serverless infrastructure. Although CloudWatch was giving logs and error alarms, it was not enough for them to pinpoint exactly which Lambda function had failed and what instance of Lambda invocation had failed. Winnow built custom solutions to get visibility into errors, which was better, but they were still missing visibility. Proper system visibility does not only include error detection but also overall system health. That is when they started looking into market for a third-party solution to help them get proper observability into their infrastructure.


THUNDRA SOLUTION
 

Thundra's solution came at a perfect time to address their observability problems. Thundra truly understood Serverless Framework and had built great tooling around giving overall visibility over the entire system. Thundra helped Winnow integrate the following solutions in their infrastructure.

  • Ease of Integration : Just a wrapper function around the handler class and couple of lines in serverless.yml was all it took to enable automatic code instrumentation in a Lambda function.
  • Automation: Automated instrumentation gave Winnow structured analytics, which were usable and actionable in their system. The Thundra platform made it incredibly easy to understand the most costly, most invoked, and top memory consuming Lambda functions in Winnow’s expanding backend architecture. Winnow engineers could filter functions by their system environments dev, Q&A and prod.

Using Thundra, Winnow decreased their latency by 35% by discovering bottlenecks. Thundra already became part of their daily development and maintenance cycle while deploying new services and checking the health of existing services.

function-analysis

Dhaval Pancholi, Director of Software Development at Winnow, says "Thundra allows us to keep a great overview of our Serverless AWS environment as we can easily monitor Lambda performance, cold starts, errors and costs. The detailed tracing functionality and the ability to tag invocations with user ids and error codes have been proven invaluable. "