Migrating Edmunds.com to AWS (re:Invent 2013 DMG205)
-
Upload
john-martin -
Category
Technology
-
view
418 -
download
1
description
Transcript of Migrating Edmunds.com to AWS (re:Invent 2013 DMG205)
© 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.
John Martin
November 14, 2013
Edmunds.com on AWS
Moving isn’t easy
• A move isn’t easy • Taking something your familiar with elsewhere • How does that work again?
Moving Isn’t Easy
Today’s Agenda• Technology Overview • The Business Case • The Approach • Challenges • What’s Next?
John Martin @tekbuddha
WHO AM I?
John Martin @tekbuddha
WHO AM I?
• 15+ years in .com • 10+ years of Java • Old School Ops • New School Cultures
The Company
• Founded in 1966 • First online in 1994 as a gopher • First website in 1996
The Company
The Environment
• 30+ web applications across 300+ hosts. • Java on Redhat Linux • Tomcat, Solr, Coherence, Mongo, ActiveMQ
The Environment
The Environment
• Chef + Cloudstack/UCS • Perforce, Jenkins, Nexus, Selenium, JMeter • AppDynamics, Splunk, RTview, Zenoss
The Environment
The Deployment Pipeline
• OSS + Homegrown Tooling • All artifacts flow through the pipeline • Release Cycles: 1 Month > 3 Weeks > 1 Week
The Deployment Pipeline
The Business Case
• Simple: disaster recovery • Bad business not to evaluate cloud services
The Business Case
The Approach
• How to move 30+ apps and 300+ servers? • Make it run like it already does • Avoid biting off too much at once
The Approach
Objectives• Minimize change / leverage existing toolchain • Manage cost • Provide initial design patterns for future builds
ChallengesSource: http://is.gd/YmewdR
Source: http://is.gd/YmewdR
• A move isn’t easy. • Making the things we were familiar with work
elsewhere wasn’t easy
Challenges
Source: http://is.gd/rayzL1
• Necessary from Day 1 • Familiar concepts • Infrastructure Is Code
CloudFormation
CloudStack
• Different structure, similar logic • Defining single hosts, not groups of services • No definitions of network resources
CloudStack JSON
CloudFormation
• Define network and services, not hosts • Live by cf-validate • Automate creation / avoid manual editing
CloudFormation JSON
Source: http://is.gd/rayzL1
• Still a core dependency • No great options in EC2 without refactor • Move static content to S3
NFS
Source: http://is.gd/rayzL1
• No physical load balancers • ELBs, HAproxy, and Chef were the key • Learn how Public/Private ELBs work with VPC
Load Balancing
Source: http://is.gd/rayzL1
• Worked but can leave behind a mess • Tooling must be prepared for ephermal nodes • Helped survive outages in US-EAST
[auto-]scaling
Testing… 1! 2! 3!
Source: http://is.gd/xKdI6E
• Additional live-traffic tests • Deployment of internal services • Prepare for full move out of data center
What Next?
Source: http://is.gd/D8bVaC
• Greater adoption of SOA principles • Full refactor of data pipelines (in and out) • Refactor for fragility of cloud environments
Refactor
THE BIG MOVE
• Work thus far completed by a small team • The Big Move will be all hands on deck • A two year goal to be fully cloud-based
The Big Move
Please give us your feedback on this presentation
As a thank you, we will select prize winners daily for completed surveys!
DMG205 Thank You