Wired.com and Reddit.com Presentation at AWS Event in NYC

Post on 08-May-2015

1.420 views 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 of 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

www.revolutioncloud.comwww.revolutioncloud.com

Conde Nast Digital

www.revolutioncloud.comwww.revolutioncloud.com

Conde Nast websites

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.

www.revolutioncloud.comwww.revolutioncloud.com

— About Wired.com

www.revolutioncloud.comwww.revolutioncloud.com

— Leveraging of EC2

Rapid Prototyping and Deployment

Wired Widgets

www.revolutioncloud.comwww.revolutioncloud.com

Rapid Prototyping and Deployment

Wired Widgets

— Leveraging of EC2

www.revolutioncloud.comwww.revolutioncloud.com

Rapid Prototyping and Deployment

Wired Widgets

Dataset Wiki

— Leveraging of EC2

www.revolutioncloud.comwww.revolutioncloud.com

Rapid Prototyping and Deployment

Wired Widgets

Dataset Wiki

— Leveraging of EC2

www.revolutioncloud.comwww.revolutioncloud.com

Rapid Prototyping and Deployment

Wired Widgets

Dataset Wiki

— Leveraging of EC2

www.revolutioncloud.comwww.revolutioncloud.com

Rapid Prototyping and Deployment

Wired Widgets

Dataset Wiki

— Leveraging of EC2

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

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

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

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

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

www.revolutioncloud.comwww.revolutioncloud.com

Product Reviews:

— Leveraging of EC2

www.revolutioncloud.comwww.revolutioncloud.com

Product Reviews:

— Leveraging of EC2

www.revolutioncloud.comwww.revolutioncloud.com

Product Reviews:

— Leveraging of EC2

www.revolutioncloud.comwww.revolutioncloud.com

Product Reviews — Admin Tool:

— Leveraging of EC2

www.revolutioncloud.comwww.revolutioncloud.com

What is reddit?•reddit is an online community

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

www.revolutioncloud.comwww.revolutioncloud.com

What led us to AWS (part 1)

•Needed an easy way to distribute and upload our logo

www.revolutioncloud.comwww.revolutioncloud.com

www.revolutioncloud.comwww.revolutioncloud.com

What led us to AWS (part 2)

•Thumbnails!

www.revolutioncloud.comwww.revolutioncloud.com

What led us to AWS (part 3)

•Didn’t want to rent another cabinet

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

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

www.revolutioncloud.comwww.revolutioncloud.com

Imaging and Racking Servers Is A (Sometimes

Fun) Chore

www.revolutioncloud.comwww.revolutioncloud.com

EC2 for Overflow•Used openvpn to create a secure

link to our datacenter for batch processing

www.revolutioncloud.comwww.revolutioncloud.com

Moving to EC2•Started by migrating all data

www.revolutioncloud.comwww.revolutioncloud.com

Moving to EC2•Started by migrating all data

•Got a complete stack running on EC2

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

www.revolutioncloud.comwww.revolutioncloud.com

Architecture

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!

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

www.revolutioncloud.comwww.revolutioncloud.com

Benefits

•Don’t have to procure servers anymore

www.revolutioncloud.comwww.revolutioncloud.com

Benefits

•Don’t have to procure servers anymore

•No racking or imaging servers anymore

www.revolutioncloud.comwww.revolutioncloud.com

Benefits

•Don’t have to procure servers anymore

•No racking or imaging servers anymore

•Time to market is faster

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

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

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!

www.revolutioncloud.comwww.revolutioncloud.com

Pain Points

www.revolutioncloud.comwww.revolutioncloud.com

Pain Points

www.revolutioncloud.comwww.revolutioncloud.com

Pain Points

Higher Latency

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

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.

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.

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.

www.revolutioncloud.comwww.revolutioncloud.com

Best Practices

•Keep data in multiple Availability Zones

www.revolutioncloud.comwww.revolutioncloud.com

Best Practices

•Keep data in multiple Availability Zones

•EBS for all persistent data

www.revolutioncloud.comwww.revolutioncloud.com

Best Practices

•Keep data in multiple Availability Zones

•EBS for all persistent data

•Snapshots

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

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

www.revolutioncloud.comwww.revolutioncloud.com

Best Practices

•A full stack in each zone

www.revolutioncloud.comwww.revolutioncloud.com

Best Practices

•A full stack in each zone

•All data stored as key-value pairs

www.revolutioncloud.comwww.revolutioncloud.com

Best Practices

•A full stack in each zone

•All data stored as key-value pairs

•More use of queues

www.revolutioncloud.comwww.revolutioncloud.com

Conclusion

•AWS saves us a lot of money

www.revolutioncloud.comwww.revolutioncloud.com

Conclusion

•AWS saves us a lot of money

•AWS gives us a lot of flexibility

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.

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

www.revolutioncloud.comwww.revolutioncloud.com

Revolution: CloudRevolution: Cloud

To learn more, visit

http://www.revolutioncloud.com