wired.com and reddit.com presentation at aws event in nyc
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
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