building a cloud culture at yelp (bdt305) | aws re:invent 2013

39
© 2013 Amazon.com, Inc. and its affiliates. All rights reserved. May not be copied, modified, or distributed in whole or in part without the express consent of Amazon.com, Inc. Building a Cloud Culture at Yelp Jim Blomo Engineering Manager, Yelp November 15, 2013

Upload: amazon-web-services

Post on 06-May-2015

416 views

Category:

Technology


1 download

DESCRIPTION

Yelp is evolving from a purely hosted infrastructure environment to running many systems in AWS—paving the way for their growth to 108 million monthly visitors (source: Google Analytics). Embracing a cloud culture reduced reliability issues, sped up the pace of innovation, and helped them support dozens of data-intensive Yelp features, including search relevance, usage graphs, review highlights, spam filtering, and advertising optimizations. Today, Yelp runs 7+ TB hosted databases, 250+ GB compressed logs per day in Amazon S3, and hundreds of Amazon Elastic MapReduce jobs per day. In this session, Yelp engineers share the secrets of their success and show how they achieved big wins with Amazon EMR and open source libraries, policies around development, privacy, and testing.

TRANSCRIPT

Page 1: Building a Cloud Culture at Yelp (BDT305) | AWS re:Invent 2013

© 2013 Amazon.com, Inc. and its affiliates. All rights reserved. May not be copied, modified, or distributed in whole or in part without the express consent of Amazon.com, Inc.

Building a Cloud Culture at Yelp

Jim Blomo – Engineering Manager, Yelp

November 15, 2013

Page 2: Building a Cloud Culture at Yelp (BDT305) | AWS re:Invent 2013

Why Cloud?

Page 3: Building a Cloud Culture at Yelp (BDT305) | AWS re:Invent 2013

Yelp!

Page 4: Building a Cloud Culture at Yelp (BDT305) | AWS re:Invent 2013

Yelp Data

Page 5: Building a Cloud Culture at Yelp (BDT305) | AWS re:Invent 2013

Why Cloud?

specificity & optimization

generality & abstraction

Page 6: Building a Cloud Culture at Yelp (BDT305) | AWS re:Invent 2013

Make the Trade-Off!

Page 7: Building a Cloud Culture at Yelp (BDT305) | AWS re:Invent 2013

How Cloud?

Page 8: Building a Cloud Culture at Yelp (BDT305) | AWS re:Invent 2013

Back to the Past

Page 9: Building a Cloud Culture at Yelp (BDT305) | AWS re:Invent 2013

Logging – an aside

{user_id: 5,

request_id: "b1946ac92492d2347c6235b4d2611184",

search_query: "farm to table",

city: "Portland, OR",

results: [17289, 8230452, 825429, 184312,...],

timestamp: 1384469660

}

Page 10: Building a Cloud Culture at Yelp (BDT305) | AWS re:Invent 2013

Hadoop Trade-Offs

Page 11: Building a Cloud Culture at Yelp (BDT305) | AWS re:Invent 2013

Riddle: Success? • How do you know

when your

infrastructure is a

success?

• Starts failing under

heavy load

• "Too many" users

overloading the system

Page 12: Building a Cloud Culture at Yelp (BDT305) | AWS re:Invent 2013

Hadoop Issues

Page 13: Building a Cloud Culture at Yelp (BDT305) | AWS re:Invent 2013

EMR Solutions • Clusters up for limited

amount of time

• Upgrades handled by

Amazon

• Multiple clusters

means no capacity

coordination S3

Page 14: Building a Cloud Culture at Yelp (BDT305) | AWS re:Invent 2013

Trade-Offs

Page 15: Building a Cloud Culture at Yelp (BDT305) | AWS re:Invent 2013

Trade-Offs

Page 16: Building a Cloud Culture at Yelp (BDT305) | AWS re:Invent 2013

Trade-Offs

Standard configs

Resource consumption tracking

testing

Page 17: Building a Cloud Culture at Yelp (BDT305) | AWS re:Invent 2013

No Cargo Cults

Page 18: Building a Cloud Culture at Yelp (BDT305) | AWS re:Invent 2013

Standard Configs

Page 19: Building a Cloud Culture at Yelp (BDT305) | AWS re:Invent 2013

mrjob Configs

# standard

# memory intensive

# cpu intensive

Page 20: Building a Cloud Culture at Yelp (BDT305) | AWS re:Invent 2013

Resource Tracking

python -m mrjob.tools.emr.terminate_idle_job_flows -c mrjob.conf

Page 21: Building a Cloud Culture at Yelp (BDT305) | AWS re:Invent 2013

Testing

--runner emr

mr_canary.py

Page 22: Building a Cloud Culture at Yelp (BDT305) | AWS re:Invent 2013

mrjob is Open Source

Page 23: Building a Cloud Culture at Yelp (BDT305) | AWS re:Invent 2013

Adoption

Page 24: Building a Cloud Culture at Yelp (BDT305) | AWS re:Invent 2013

Cloud Calculations • 5 days with 10

machines = 1 day

with 50 machines

• (On demand pricing

simplification)

Page 25: Building a Cloud Culture at Yelp (BDT305) | AWS re:Invent 2013

Cost

Page 26: Building a Cloud Culture at Yelp (BDT305) | AWS re:Invent 2013

Cost

Page 27: Building a Cloud Culture at Yelp (BDT305) | AWS re:Invent 2013

Cost Control

Page 28: Building a Cloud Culture at Yelp (BDT305) | AWS re:Invent 2013

Data Availability

• s3mysqldump

Page 29: Building a Cloud Culture at Yelp (BDT305) | AWS re:Invent 2013

Overview

S3 in: s3mysqldump

out: LOAD DATA or rsync in: JSON logs

in: logs & DB dumps out: CSV, JSON, MyISAM

Page 30: Building a Cloud Culture at Yelp (BDT305) | AWS re:Invent 2013

Pitfalls

Page 31: Building a Cloud Culture at Yelp (BDT305) | AWS re:Invent 2013

Leaky Abstractions

Page 32: Building a Cloud Culture at Yelp (BDT305) | AWS re:Invent 2013

Closed Source

bootstrap-actions/configure-hadoop

mapred.reduce.tasks.speculative.execution=false

Page 33: Building a Cloud Culture at Yelp (BDT305) | AWS re:Invent 2013

Data Explosion

Tron

Page 34: Building a Cloud Culture at Yelp (BDT305) | AWS re:Invent 2013

Wanted

Page 35: Building a Cloud Culture at Yelp (BDT305) | AWS re:Invent 2013

Next Up: Services

Page 36: Building a Cloud Culture at Yelp (BDT305) | AWS re:Invent 2013

Cloud Strategy

Target

generality & abstraction

easiest way

Page 37: Building a Cloud Culture at Yelp (BDT305) | AWS re:Invent 2013

Tandem

Page 38: Building a Cloud Culture at Yelp (BDT305) | AWS re:Invent 2013

We’re Hiring

yelp.com/careers

Page 39: Building a Cloud Culture at Yelp (BDT305) | AWS re:Invent 2013

Please give us your feedback on this

presentation

As a thank you, we will select prize

winners daily for completed surveys!

BDT305 – Cloud @Yelp