0
October 3, 2013
Design for Scale
Building Real Time, High Performing
Marketing Technology
David Pearson - Business Develop...
Amazon RDS
Amazon DynamoDB Amazon Redshift
Amazon ElastiCache
Compute Storage
AWS Global Infrastructure
Database
Applicati...
provision
manage
scale
EFFORT
differentiated?
AWS Big Data Services
RedshiftDynamoDB
Elastic MapReduce Amazon S3
Object
Storage
Batch
Processing
Real-Time
Transactions
...
Amazon
DynamoDB
NoSQL Database
Predictable performance
Seamless & massive scalability
Fully managed; zero admin
Amazon
DynamoDB
Amazon’s Path to DynamoDB
RDBMS
DynamoDB
Amazon
DynamoDB
DEVS
OPS
USERS
Fast Application
Development
Time to Build
New Applications
• Flexible data models
• Simple API
• High-scale queries
• Lap...
Latest News… DynamoDB Local
• Disconnected development
• Full API support
• Download from http://aws.amazon.com/dynamodb/r...
Amazon
DynamoDB
DEVS
OPS
USERS
Admin-Free
(at any scale)
request-based capacity provisioning model
Provisioned Throughput
Throughput is declared and updated via the API or the con...
Amazon
DynamoDB
DEVS
OPS
USERS Durable
Low Latency
WRITES
Replicated continuously to 3 AZ’s
Persisted to disk (custom SSD)
READS
Strongly or eventually consistent
No latency...
Average < 3ms
TP90 < 4.5ms
server-side latency
across all APIs
AD SERVING
EC2
Profiles Database
ad request
ad url
visitor
Ad Servers
DynamoDB
1. Visitor loads a web page
2. Web page issues a reque...
Real Time Bidding
EC2
Profiles DatabaseAd Servers
DynamoDB
EC2
Profiles DatabaseAd Servers
DynamoDB
RTB
platform
Bidder DynamoDB
Ads Profiles
Queues
and
Bufferbid response
20 ms
20 ...
EC2
Profiles Database
ad request
ad url
visitor
Ad Servers
DynamoDB
visitor
Optimize for scale, elasticity, and availability
• Multi-AZ: maintain EC2 capacity in multiple availability zones
...
visitor
1. Ad files are downloaded from CloudFront
2. Impressions captured into logs on S3
CloudFront
advertisement
impres...
CloudFront
advertisement
impression logs
Static Repository Files
Amazon S3
Profiles Database
EC2 (MAZ)
ad request
ad url
A...
Analysis
CloudFront
advertisement
impression logs
Static Repository Files
Amazon S3
Profiles Database
EC2 (MAZ)
ad request
ad url
A...
Amazon Redshift
Drive qualified users to
advertiser’s sites
• Ad server logs
• 3rd party data
• Bid history
• User history...
Optimizing the Data Tier
DynamoDB
cookies
writes reads
PutItem: insert new
cookies into table
CreateTable
{ …
"ProvisionedThroughput": {
"ReadCapac...
DynamoDB
cookies GetItem: lookup profile
table, return action (url)
User_Profile
hash=userid
<profile data>
url
User_Cooki...
DynamoDB
cookies
Time Series Data
CreateTable: new
cookie ingest table
PutItem: insert new
cookies into new table
User_Coo...
User_Cookies_1
hash=userid
range=timestamp
<cookie payload>
DynamoDB
cookies
UpdateTable: prepare data
for direct load int...
User_Cookies_1
hash=userid
range=timestamp
<cookie payload>
DynamoDB
Redshift
cookies
User_Cookies_0
hash=userid
range=tim...
Redshift
user_history
userid
timestamp
:
cookie_staging
userid
timestamp
:
updated
profiles
Conditional PutItem
(insert ne...
Four Drivers of DynamoDB Adoption
Resources
David Pearson pearsond@amazon.com
Best Practices http://aws.amazon.com/dynamod...
Questions
David Pearson
pearsond@amazon.com
© 2013 Bizo, Inc
The Future of Digital
Advertising with
Cloud Computing
October 3rd, 2013
© 2013 Bizo, Inc
© 2013 Bizo, Inc
Marketing Automation
Nurture Anonymous Site Visitors
• 90% of site traffic doesn’t convert
• Marketing au...
© 2013 Bizo, Inc
Targeting API
Dynamic Targets
• Business Professionals (Cookies + User Ids)
• Companies (by name or domai...
© 2013 Bizo, Inc
Environment
Project / Team
• 8 Months, 1 - 3 Engineers, ≈ 18 Man-Months
• Automated Deployment & Monitori...
© 2013 Bizo, Inc
Architecture
© 2013 Bizo, Inc
SQL vs NoSQL: Different Starting Points
© 2013 Bizo, Inc
SQL vs NoSQL: How Much Do You Need?
???
© 2013 Bizo, Inc
SQL vs NoSQL: False Dilemma?
New
SQL?
© 2013 Bizo, Inc
Database “Sweet Spots”
MySQL/RDS
(SQL)
DynamoDB
(NoSQL)
Access Pattern
Small/Medium
Batches
Per-Record;
R...
© 2013 Bizo, Inc
Challenges
Common: Data Modeling/Indexing for Performance
MySQL/RDS
• Sharding
• Rebalancing
• Online Sch...
Upcoming SlideShare
Loading in...5
×

Design for Scale - Building Real Time, High Performing Marketing Technology presented with Bizo

3,385

Published on

DynamoDB presented by David Pearson from AWS
Bizo Business Audience Marketing success story on AWS by Alex Boisvert, Director of Engineering, Bizo

In today's world, consumer habits change fast and marketing decisions need to be made within seconds, not days. Delivering engaging advertising experiences requires real time, high performing architectures that provide digital advertisers the ability to measure and improve the performance of their campaigns and tie them more closely to corporate goals. The insights gleaned from the massive amounts of data collected can then be used to dynamically adjust media spend and creative execution for optimal performance. The AWS Cloud enables you to deliver marketing content and advertisements with the levels of availability, performance, and personalization that your customers expect. Plus, AWS lowers your costs. Join us to learn about how big data and low latency / high performing architectures are changing the game for digital advertising.

Published in: Technology, Design
0 Comments
10 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
3,385
On Slideshare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
89
Comments
0
Likes
10
Embeds 0
No embeds

No notes for slide

Transcript of "Design for Scale - Building Real Time, High Performing Marketing Technology presented with Bizo"

  1. 1. October 3, 2013 Design for Scale Building Real Time, High Performing Marketing Technology David Pearson - Business Development
  2. 2. Amazon RDS Amazon DynamoDB Amazon Redshift Amazon ElastiCache Compute Storage AWS Global Infrastructure Database Application Services Deployment & Administration Networking AWS Database Services Scalable High Performance Application Storage in the Cloud
  3. 3. provision manage scale EFFORT differentiated?
  4. 4. AWS Big Data Services RedshiftDynamoDB Elastic MapReduce Amazon S3 Object Storage Batch Processing Real-Time Transactions Online Analysis and Reporting
  5. 5. Amazon DynamoDB
  6. 6. NoSQL Database Predictable performance Seamless & massive scalability Fully managed; zero admin Amazon DynamoDB
  7. 7. Amazon’s Path to DynamoDB RDBMS DynamoDB
  8. 8. Amazon DynamoDB DEVS OPS USERS
  9. 9. Fast Application Development Time to Build New Applications • Flexible data models • Simple API • High-scale queries • Laptop development Amazon DynamoDB DEVS OPS USERS
  10. 10. Latest News… DynamoDB Local • Disconnected development • Full API support • Download from http://aws.amazon.com/dynamodb/resources/#testing
  11. 11. Amazon DynamoDB DEVS OPS USERS Admin-Free (at any scale)
  12. 12. request-based capacity provisioning model Provisioned Throughput Throughput is declared and updated via the API or the console CreateTable (foo, reads/sec = 100, writes/sec = 150) UpdateTable (foo, reads/sec=10000, writes/sec=4500) DynamoDB handles the rest Capacity is reserved and available when needed Scaling-up triggers repartitioning and reallocation No impact to performance or availability
  13. 13. Amazon DynamoDB DEVS OPS USERS Durable Low Latency
  14. 14. WRITES Replicated continuously to 3 AZ’s Persisted to disk (custom SSD) READS Strongly or eventually consistent No latency trade-off
  15. 15. Average < 3ms TP90 < 4.5ms server-side latency across all APIs
  16. 16. AD SERVING
  17. 17. EC2 Profiles Database ad request ad url visitor Ad Servers DynamoDB 1. Visitor loads a web page 2. Web page issues a request to ad servers on EC2 3. Query to DynamoDB returns the ad to display 4. Link is returned to visitor
  18. 18. Real Time Bidding EC2 Profiles DatabaseAd Servers DynamoDB
  19. 19. EC2 Profiles DatabaseAd Servers DynamoDB RTB platform Bidder DynamoDB Ads Profiles Queues and Bufferbid response 20 ms 20 ms 20 ms 40 ms Request network transit Response network transit Decision on best ad and bid price based on optimization that needs multiple data look-ups Contingency time buffer … bid request
  20. 20. EC2 Profiles Database ad request ad url visitor Ad Servers DynamoDB
  21. 21. visitor Optimize for scale, elasticity, and availability • Multi-AZ: maintain EC2 capacity in multiple availability zones • Auto Scaling: scale EC2 capacity to automatically manage variations in workload • Elastic Load Balancing: automatically distribute incoming traffic across multiple EC2 instances EC2 (MAZ) ad request ad url Ad Servers DynamoDB Elastic Load Balancing Profiles Database
  22. 22. visitor 1. Ad files are downloaded from CloudFront 2. Impressions captured into logs on S3 CloudFront advertisement impression logs Static Repository Files Amazon S3 EC2 (MAZ) ad request ad url Ad Servers DynamoDB Elastic Load Balancing Profiles Database
  23. 23. CloudFront advertisement impression logs Static Repository Files Amazon S3 Profiles Database EC2 (MAZ) ad request ad url Ad Servers DynamoDB Elastic Load Balancing visitor Click-through requests are captured via EC2 into log files and persisted on S3 Click-through Servers click through log files click through requests Elastic Load Balancing EC2 (MAZ)
  24. 24. Analysis
  25. 25. CloudFront advertisement impression logs Static Repository Files Amazon S3 Profiles Database EC2 (MAZ) ad request ad url Ad Servers DynamoDB Elastic Load Balancing visitor new bids updated profiles new requests Redshift ETL Amazon EMR unstructured log files Click-through Servers click through log files click through requests Elastic Load Balancing EC2 (MAZ)
  26. 26. Amazon Redshift Drive qualified users to advertiser’s sites • Ad server logs • 3rd party data • Bid history • User history Bid Optimization Business Analytics using Redshift Optimize return on advertising expenditure • Impressions • 3rd party data • User history • Enrichment Cost Optimization
  27. 27. Optimizing the Data Tier
  28. 28. DynamoDB cookies writes reads PutItem: insert new cookies into table CreateTable { … "ProvisionedThroughput": { "ReadCapacityUnits": “100", "WriteCapacityUnits": “10000" }, "TableName": “User_Cookies_0" } User_Cookies_0 hash=userid range=timestamp <cookie payload>
  29. 29. DynamoDB cookies GetItem: lookup profile table, return action (url) User_Profile hash=userid <profile data> url User_Cookies_0 hash=userid range=timestamp <cookie payload>
  30. 30. DynamoDB cookies Time Series Data CreateTable: new cookie ingest table PutItem: insert new cookies into new table User_Cookies_0 hash=userid range=timestamp <cookie payload> User_Profile hash=userid <profile data> User_Cookies_1 hash=userid range=timestamp <cookie payload> url
  31. 31. User_Cookies_1 hash=userid range=timestamp <cookie payload> DynamoDB cookies UpdateTable: prepare data for direct load into Redshift User_Cookies_0 hash=userid range=timestamp <cookie payload> User_Profile hash=userid <profile data> writes reads Redshift url
  32. 32. User_Cookies_1 hash=userid range=timestamp <cookie payload> DynamoDB Redshift cookies User_Cookies_0 hash=userid range=timestamp <cookie payload> User_Profile hash=userid <profile data> COPY cookie_staging userid timestamp : insert new entries user_history userid timestamp : url
  33. 33. Redshift user_history userid timestamp : cookie_staging userid timestamp : updated profiles Conditional PutItem (insert new / update existing items) User_Cookies_1 hash=userid range=timestamp <cookie payload> DynamoDB cookies User_Profile hash=userid <profile data> url DeleteTable query: build profile
  34. 34. Four Drivers of DynamoDB Adoption Resources David Pearson pearsond@amazon.com Best Practices http://aws.amazon.com/dynamodb/resources/ Scalable Easy To Use (Durably) Fast Inexpensive
  35. 35. Questions David Pearson pearsond@amazon.com
  36. 36. © 2013 Bizo, Inc The Future of Digital Advertising with Cloud Computing October 3rd, 2013
  37. 37. © 2013 Bizo, Inc
  38. 38. © 2013 Bizo, Inc Marketing Automation Nurture Anonymous Site Visitors • 90% of site traffic doesn’t convert • Marketing automation rules to optimize display ads Extend Email Nurturing to Display Advertising ● 70% of email are not opened ● Automatically coordinate display and email messaging ● Feedback Loop: metrics on performance, lift, ROI Integrations • Eloqua (now subsidiary of Oracle) + Other Platforms
  39. 39. © 2013 Bizo, Inc Targeting API Dynamic Targets • Business Professionals (Cookies + User Ids) • Companies (by name or domain) • IPs (single or range) Attribution / Analytics ● Impressions, Clicks, Conversions, New Visitors, etc. Key Metrics (beta) • 300M cookies and user-ids (e.g., sha1 email hashes) • 30M company records -> 200M employee cookies • 100M Company -> IP range mappings
  40. 40. © 2013 Bizo, Inc Environment Project / Team • 8 Months, 1 - 3 Engineers, ≈ 18 Man-Months • Automated Deployment & Monitoring (“DevOps”) Language • Java / Scala (JVM) Infrastructure • EC2, ELB, AutoScaling • MySQL (RDS), DynamoDB, S3 • SQS, EMR, Cloudwatch, etc.
  41. 41. © 2013 Bizo, Inc Architecture
  42. 42. © 2013 Bizo, Inc SQL vs NoSQL: Different Starting Points
  43. 43. © 2013 Bizo, Inc SQL vs NoSQL: How Much Do You Need? ???
  44. 44. © 2013 Bizo, Inc SQL vs NoSQL: False Dilemma? New SQL?
  45. 45. © 2013 Bizo, Inc Database “Sweet Spots” MySQL/RDS (SQL) DynamoDB (NoSQL) Access Pattern Small/Medium Batches Per-Record; Random Scaling Moderate Growth Near Real-Time Sharding Bring-Your-Own Built-In; Transparent Operations Self-managed; Some Labor Costs Fully Managed
  46. 46. © 2013 Bizo, Inc Challenges Common: Data Modeling/Indexing for Performance MySQL/RDS • Sharding • Rebalancing • Online Schema Migration DynamoDB (NoSQL) ● Understanding Performance/Provisioned Capacity Model (Throttling / Non-Uniform Access Pattern) ● Expiring Data
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×