wired.com and reddit.com presentation at aws event in nyc

61
Rajiv Pant / Paul Fisher VP Technology, Conde Nast Digital Revolution:Cloud, Co-Author www.revolutioncloud.com Manager of Technology, Wired.com Revolution:Cloud, Co-Author www.revolutioncloud.com www.revolutioncloud.com

Upload: rajiv-pant

Post on 08-May-2015

1.420 views

Category:

Technology


0 download

DESCRIPTION

Presentation by Paul Tepper Fisher and Rajiv Pant at the AWS Event in New York City on October 19, 2009. The presentation discusses the experiences and strategies Wired.com and reddit.com used to migrate IT infrastructure to EC2 and S3. Best Practices lessons learned are also presented.

TRANSCRIPT

Page 1: Wired.com and Reddit.com Presentation at AWS Event in NYC

Rajiv Pant / Paul Fisher

VP Technology, Conde Nast DigitalRevolution:Cloud, Co-Authorwww.revolutioncloud.com

Manager of Technology, Wired.com

Revolution:Cloud, Co-Authorwww.revolutioncloud.com

www.revolutioncloud.comwww.revolutioncloud.com

Page 2: Wired.com and Reddit.com Presentation at AWS Event in NYC

www.revolutioncloud.comwww.revolutioncloud.com

Conde Nast Digital

Page 3: Wired.com and Reddit.com Presentation at AWS Event in NYC

www.revolutioncloud.comwww.revolutioncloud.com

Conde Nast websites

Page 4: Wired.com and Reddit.com Presentation at AWS Event in NYC

www.revolutioncloud.comwww.revolutioncloud.com

— About Wired.com

High-Traffic Technology News Website

Millions of Page Views each Day

Numerous Site Components, implemented in Java, Grails, and PHP

Many Disparate Features, including Admin, CMS, and User-Facing Functionality

News Content, Product Reviews, Widgets, etc.

Page 5: Wired.com and Reddit.com Presentation at AWS Event in NYC

www.revolutioncloud.comwww.revolutioncloud.com

— About Wired.com

Page 6: Wired.com and Reddit.com Presentation at AWS Event in NYC

www.revolutioncloud.comwww.revolutioncloud.com

— Leveraging of EC2

Rapid Prototyping and Deployment

Wired Widgets

Page 7: Wired.com and Reddit.com Presentation at AWS Event in NYC

www.revolutioncloud.comwww.revolutioncloud.com

Rapid Prototyping and Deployment

Wired Widgets

— Leveraging of EC2

Page 8: Wired.com and Reddit.com Presentation at AWS Event in NYC

www.revolutioncloud.comwww.revolutioncloud.com

Rapid Prototyping and Deployment

Wired Widgets

Dataset Wiki

— Leveraging of EC2

Page 9: Wired.com and Reddit.com Presentation at AWS Event in NYC

www.revolutioncloud.comwww.revolutioncloud.com

Rapid Prototyping and Deployment

Wired Widgets

Dataset Wiki

— Leveraging of EC2

Page 10: Wired.com and Reddit.com Presentation at AWS Event in NYC

www.revolutioncloud.comwww.revolutioncloud.com

Rapid Prototyping and Deployment

Wired Widgets

Dataset Wiki

— Leveraging of EC2

Page 11: Wired.com and Reddit.com Presentation at AWS Event in NYC

www.revolutioncloud.comwww.revolutioncloud.com

Rapid Prototyping and Deployment

Wired Widgets

Dataset Wiki

— Leveraging of EC2

Page 12: Wired.com and Reddit.com Presentation at AWS Event in NYC

www.revolutioncloud.comwww.revolutioncloud.com

Rapid Prototyping and Deployment

Wired Widgets

Dataset Wiki

Production CMS Components — Post-Process content and deploy images to S3

— Leveraging of EC2

Page 13: Wired.com and Reddit.com Presentation at AWS Event in NYC

www.revolutioncloud.comwww.revolutioncloud.com

These Projects utilized S3 and EC2

Rapid Development via Grails

Production Deployment and integration with stack via CNAME

Critical CMS Workflow Components Rely on S3 for content deployment and user-facing asset access.

— Leveraging of EC2

Page 14: Wired.com and Reddit.com Presentation at AWS Event in NYC

www.revolutioncloud.comwww.revolutioncloud.com

Other Administrative Tools — Preparing and Editing Production Content

Product Reviews Application

Began as Simple Admin Tool

Short Timeline and “In-Book” Deadline

Selected EC2 to avoid delays — set-up production environment within a day

— Leveraging of EC2

Page 15: Wired.com and Reddit.com Presentation at AWS Event in NYC

www.revolutioncloud.comwww.revolutioncloud.com

EC2 simplified Development and Staging

Deployed and Tested application by duplicating image and environment

Product Reviews Application posed integration challenges:

Major Site Component

Short Timeframe to Go Live

— Leveraging of EC2

Page 16: Wired.com and Reddit.com Presentation at AWS Event in NYC

www.revolutioncloud.comwww.revolutioncloud.com

Product Reviews:

Developed Admin Tool and User-Facing Application using Grails

Integrated application via Proxying from internal hosting infrastructure

Solution allowed us to leverage EC2 without limiting functionality or seamlessness of integration

— Leveraging of EC2

Page 17: Wired.com and Reddit.com Presentation at AWS Event in NYC

www.revolutioncloud.comwww.revolutioncloud.com

Product Reviews:

— Leveraging of EC2

Page 18: Wired.com and Reddit.com Presentation at AWS Event in NYC

www.revolutioncloud.comwww.revolutioncloud.com

Product Reviews:

— Leveraging of EC2

Page 19: Wired.com and Reddit.com Presentation at AWS Event in NYC

www.revolutioncloud.comwww.revolutioncloud.com

Product Reviews:

— Leveraging of EC2

Page 20: Wired.com and Reddit.com Presentation at AWS Event in NYC

www.revolutioncloud.comwww.revolutioncloud.com

Product Reviews — Admin Tool:

— Leveraging of EC2

Page 21: Wired.com and Reddit.com Presentation at AWS Event in NYC

www.revolutioncloud.comwww.revolutioncloud.com

What is reddit?•reddit is an online community

Page 22: Wired.com and Reddit.com Presentation at AWS Event in NYC

www.revolutioncloud.comwww.revolutioncloud.com

TimelineApril 2006 -- S3 for logos

September 2007 -- S3 for thumbnails

November 2008 -- EC2 for batch processing

May 2009 -- EC2 for entire site

Page 23: Wired.com and Reddit.com Presentation at AWS Event in NYC

www.revolutioncloud.comwww.revolutioncloud.com

What led us to AWS (part 1)

•Needed an easy way to distribute and upload our logo

Page 24: Wired.com and Reddit.com Presentation at AWS Event in NYC

www.revolutioncloud.comwww.revolutioncloud.com

Page 25: Wired.com and Reddit.com Presentation at AWS Event in NYC

www.revolutioncloud.comwww.revolutioncloud.com

What led us to AWS (part 2)

•Thumbnails!

Page 26: Wired.com and Reddit.com Presentation at AWS Event in NYC

www.revolutioncloud.comwww.revolutioncloud.com

What led us to AWS (part 3)

•Didn’t want to rent another cabinet

Page 27: Wired.com and Reddit.com Presentation at AWS Event in NYC

www.revolutioncloud.comwww.revolutioncloud.com

What led us to AWS (part 3)

•Didn’t want to rent another cabinet

•Didn’t want to buy more servers

Page 28: Wired.com and Reddit.com Presentation at AWS Event in NYC

www.revolutioncloud.comwww.revolutioncloud.com

What led us to AWS (part 3)

•Didn’t want to rent another cabinet

•Didn’t want to buy more servers

New Servers

New Servers

Page 29: Wired.com and Reddit.com Presentation at AWS Event in NYC

www.revolutioncloud.comwww.revolutioncloud.com

Imaging and Racking Servers Is A (Sometimes

Fun) Chore

Page 30: Wired.com and Reddit.com Presentation at AWS Event in NYC

www.revolutioncloud.comwww.revolutioncloud.com

EC2 for Overflow•Used openvpn to create a secure

link to our datacenter for batch processing

Page 31: Wired.com and Reddit.com Presentation at AWS Event in NYC

www.revolutioncloud.comwww.revolutioncloud.com

Moving to EC2•Started by migrating all data

Page 32: Wired.com and Reddit.com Presentation at AWS Event in NYC

www.revolutioncloud.comwww.revolutioncloud.com

Moving to EC2•Started by migrating all data

•Got a complete stack running on EC2

Page 33: Wired.com and Reddit.com Presentation at AWS Event in NYC

www.revolutioncloud.comwww.revolutioncloud.com

Moving to EC2•Started by migrating all data

•Got a complete stack running on EC2

•Long Saturday night finishing the migration and “forklifting” the last bits of data

Page 34: Wired.com and Reddit.com Presentation at AWS Event in NYC

www.revolutioncloud.comwww.revolutioncloud.com

Architecture

Page 35: Wired.com and Reddit.com Presentation at AWS Event in NYC

www.revolutioncloud.comwww.revolutioncloud.com

Stats•190 Virtual CPUs

•338GB of RAM

•9TB of Elastic Block Storage

•2TB of S3 Storage

•6.5 TB of Data Out / mo

•2TB of Data In / mo

•150M+ Pageviews and just one sysadmin!

Page 36: Wired.com and Reddit.com Presentation at AWS Event in NYC

www.revolutioncloud.comwww.revolutioncloud.com

BenefitsData Center (per

month)

Servers: $6KCabinet (x3): $15KBandwidth: $2.5KSupport: N/A

Total: $23.5K

EC2 (per month)

Servers: $13KStorage: $1.5KBandwidth: $1.1KSupport: $1.2K

Total: $16.8K

29% Cheaper!Estimated Pricing

Based on public Amazon pricing, reddit open source code, and public configuration

information

Page 37: Wired.com and Reddit.com Presentation at AWS Event in NYC

www.revolutioncloud.comwww.revolutioncloud.com

Benefits

•Don’t have to procure servers anymore

Page 38: Wired.com and Reddit.com Presentation at AWS Event in NYC

www.revolutioncloud.comwww.revolutioncloud.com

Benefits

•Don’t have to procure servers anymore

•No racking or imaging servers anymore

Page 39: Wired.com and Reddit.com Presentation at AWS Event in NYC

www.revolutioncloud.comwww.revolutioncloud.com

Benefits

•Don’t have to procure servers anymore

•No racking or imaging servers anymore

•Time to market is faster

Page 40: Wired.com and Reddit.com Presentation at AWS Event in NYC

www.revolutioncloud.comwww.revolutioncloud.com

Benefits

•Don’t have to procure servers anymore

•No racking or imaging servers anymore

•Time to market is faster

•Multiple physical locations with AZs

Page 41: Wired.com and Reddit.com Presentation at AWS Event in NYC

www.revolutioncloud.comwww.revolutioncloud.com

Benefits•Don’t have to procure servers

anymore

•No racking or imaging servers anymore

•Time to market is faster

•Multiple physical locations with AZs

•Get “free” upgrades

Page 42: Wired.com and Reddit.com Presentation at AWS Event in NYC

www.revolutioncloud.comwww.revolutioncloud.com

Benefits•Don’t have to procure servers anymore

•No racking or imaging servers anymore

•Time to market is faster

•Multiple physical locations with AZs

•Get “free” upgrades

•Elasticity!

Page 43: Wired.com and Reddit.com Presentation at AWS Event in NYC

www.revolutioncloud.comwww.revolutioncloud.com

Pain Points

Page 44: Wired.com and Reddit.com Presentation at AWS Event in NYC

www.revolutioncloud.comwww.revolutioncloud.com

Pain Points

Page 45: Wired.com and Reddit.com Presentation at AWS Event in NYC

www.revolutioncloud.comwww.revolutioncloud.com

Pain Points

Higher Latency

Workaround: Fewer network calls, ask for more data at a time.

Page 46: Wired.com and Reddit.com Presentation at AWS Event in NYC

www.revolutioncloud.comwww.revolutioncloud.com

Pain Points

EBS sometimes slows down a bit

Workaround: Use caching and replication with read slaves to avoid relying on a single disk.

Page 47: Wired.com and Reddit.com Presentation at AWS Event in NYC

www.revolutioncloud.comwww.revolutioncloud.com

Pain Points

Instances go away sometimes

Workaround: Avoid single points of failure and make sure your servers have automated configuration.

Page 48: Wired.com and Reddit.com Presentation at AWS Event in NYC

www.revolutioncloud.comwww.revolutioncloud.com

Pain Points

Fixing these issues made our app more reliable and highly available. We are better off than when we started.

Page 49: Wired.com and Reddit.com Presentation at AWS Event in NYC

www.revolutioncloud.comwww.revolutioncloud.com

Best Practices

•Keep data in multiple Availability Zones

Page 50: Wired.com and Reddit.com Presentation at AWS Event in NYC

www.revolutioncloud.comwww.revolutioncloud.com

Best Practices

•Keep data in multiple Availability Zones

•EBS for all persistent data

Page 51: Wired.com and Reddit.com Presentation at AWS Event in NYC

www.revolutioncloud.comwww.revolutioncloud.com

Best Practices

•Keep data in multiple Availability Zones

•EBS for all persistent data

•Snapshots

Page 52: Wired.com and Reddit.com Presentation at AWS Event in NYC

www.revolutioncloud.comwww.revolutioncloud.com

Best Practices

•Keep data in multiple Availability Zones

•EBS for all persistent data

•Snapshots

•No secret keys on the instance

Page 53: Wired.com and Reddit.com Presentation at AWS Event in NYC

www.revolutioncloud.comwww.revolutioncloud.com

Best Practices•Keep data in multiple Availability

Zones

•EBS for all persistent data

•Snapshots

•No secret keys on the instance

•Different functions in different Security Groups

Page 54: Wired.com and Reddit.com Presentation at AWS Event in NYC

www.revolutioncloud.comwww.revolutioncloud.com

Best Practices

•A full stack in each zone

Page 55: Wired.com and Reddit.com Presentation at AWS Event in NYC

www.revolutioncloud.comwww.revolutioncloud.com

Best Practices

•A full stack in each zone

•All data stored as key-value pairs

Page 56: Wired.com and Reddit.com Presentation at AWS Event in NYC

www.revolutioncloud.comwww.revolutioncloud.com

Best Practices

•A full stack in each zone

•All data stored as key-value pairs

•More use of queues

Page 57: Wired.com and Reddit.com Presentation at AWS Event in NYC

www.revolutioncloud.comwww.revolutioncloud.com

Conclusion

•AWS saves us a lot of money

Page 58: Wired.com and Reddit.com Presentation at AWS Event in NYC

www.revolutioncloud.comwww.revolutioncloud.com

Conclusion

•AWS saves us a lot of money

•AWS gives us a lot of flexibility

Page 59: Wired.com and Reddit.com Presentation at AWS Event in NYC

www.revolutioncloud.comwww.revolutioncloud.com

Conclusion

•AWS saves us a lot of money

•AWS gives us a lot of flexibility

•Moving to AWS has forced us to build better applications and follow better IT practices.

Page 60: Wired.com and Reddit.com Presentation at AWS Event in NYC

www.revolutioncloud.comwww.revolutioncloud.com

Conclusion

•AWS saves us a lot of money

•AWS gives us a lot of flexibility

•Moving to AWS has forced us to build better applications and follow better IT practices.

•http://code.reddit.com

Page 61: Wired.com and Reddit.com Presentation at AWS Event in NYC

www.revolutioncloud.comwww.revolutioncloud.com

Revolution: CloudRevolution: Cloud

To learn more, visit

http://www.revolutioncloud.com