B. Durrett The Challenges of Continuous Deployment Social Developer Summit
-
Upload
mediabistro -
Category
Documents
-
view
994 -
download
0
description
Transcript of B. Durrett The Challenges of Continuous Deployment Social Developer Summit
![Page 1: B. Durrett The Challenges of Continuous Deployment Social Developer Summit](https://reader033.fdocuments.net/reader033/viewer/2022060109/55534538b4c9059e688b47c7/html5/thumbnails/1.jpg)
1
Scaling with Continuous Deployment
Social Developer SummitSan Francisco, CA, June 29, 2010
Brett G. Durrett (@bdurrett)Vice President Engineering & Operations, IMVU, Inc.
![Page 2: B. Durrett The Challenges of Continuous Deployment Social Developer Summit](https://reader033.fdocuments.net/reader033/viewer/2022060109/55534538b4c9059e688b47c7/html5/thumbnails/2.jpg)
An online community where members use 3D avatars
to meet new people, chat, create and have fun with their friends
![Page 3: B. Durrett The Challenges of Continuous Deployment Social Developer Summit](https://reader033.fdocuments.net/reader033/viewer/2022060109/55534538b4c9059e688b47c7/html5/thumbnails/3.jpg)
3
Survey Says
Continuous Deployment... who is with me?
![Page 4: B. Durrett The Challenges of Continuous Deployment Social Developer Summit](https://reader033.fdocuments.net/reader033/viewer/2022060109/55534538b4c9059e688b47c7/html5/thumbnails/4.jpg)
4
In a Nutshell
What is Continuous Deployment?
• Engineer commits code• 20 minutes later it is live in
production• Repeat about 50 times per day
![Page 5: B. Durrett The Challenges of Continuous Deployment Social Developer Summit](https://reader033.fdocuments.net/reader033/viewer/2022060109/55534538b4c9059e688b47c7/html5/thumbnails/5.jpg)
5
Does This Really Work?
“Maybe this is just viable for a single developer … your site will be down. A lot.”
“It seems like the author either has no customers or very understanding customers”
Responses to February 2009 posting by Timothy Fitz about Continuous Deployment at IMVU
(at the time IMVU had a $12 million run rate)
![Page 6: B. Durrett The Challenges of Continuous Deployment Social Developer Summit](https://reader033.fdocuments.net/reader033/viewer/2022060109/55534538b4c9059e688b47c7/html5/thumbnails/6.jpg)
6
Benefits
• Regressions easy to find, correct
• Releases have zero overhead
• Rapid iteration using real customer metrics
![Page 7: B. Durrett The Challenges of Continuous Deployment Social Developer Summit](https://reader033.fdocuments.net/reader033/viewer/2022060109/55534538b4c9059e688b47c7/html5/thumbnails/7.jpg)
Finding and Fixing Problems
• Each release has few changes, 1-3 commits
• Production issues correlate with check-in timestamp
• No overhead to producing a new release to correct issue
Identifying cause takes minutes
![Page 8: B. Durrett The Challenges of Continuous Deployment Social Developer Summit](https://reader033.fdocuments.net/reader033/viewer/2022060109/55534538b4c9059e688b47c7/html5/thumbnails/8.jpg)
8
CD at IMVU: Simple Overview
All tests pass?
Local tests pass, engineer commits code
Lots and lots of tests run
Code deployed to all
servers
Metrics good?
Code deployed to %
of servers
Metrics still
good?
Rollback(Blocks)
Revert commit(Blocks)
No
Yes
No
Yes
No
Yes
Win!
![Page 9: B. Durrett The Challenges of Continuous Deployment Social Developer Summit](https://reader033.fdocuments.net/reader033/viewer/2022060109/55534538b4c9059e688b47c7/html5/thumbnails/9.jpg)
9
CD at IMVU: Detailed Overview
![Page 10: B. Durrett The Challenges of Continuous Deployment Social Developer Summit](https://reader033.fdocuments.net/reader033/viewer/2022060109/55534538b4c9059e688b47c7/html5/thumbnails/10.jpg)
10
Getting Started – Extreme Basics
1. Continuous integration system2. Production monitoring and alerting
– System performance– Business metrics– Trending is nice too
3. Simple deploy / roll-back system
![Page 11: B. Durrett The Challenges of Continuous Deployment Social Developer Summit](https://reader033.fdocuments.net/reader033/viewer/2022060109/55534538b4c9059e688b47c7/html5/thumbnails/11.jpg)
11
Commit to Making Forward Progress
• Require coverage for all new code
• Add coverage for bugs / regressions
• Understand and fix root cause of failures
![Page 12: B. Durrett The Challenges of Continuous Deployment Social Developer Summit](https://reader033.fdocuments.net/reader033/viewer/2022060109/55534538b4c9059e688b47c7/html5/thumbnails/12.jpg)
Expect Some Hurdles
• Production outages• New overhead
– Tests– Build systems
• Production outages• Frustration• Production outages
(but well worth it)
![Page 13: B. Durrett The Challenges of Continuous Deployment Social Developer Summit](https://reader033.fdocuments.net/reader033/viewer/2022060109/55534538b4c9059e688b47c7/html5/thumbnails/13.jpg)
13
Dealing with SQL
Problems• Difficult to roll-back schema• Alter statements lock / impact
customers
Solutions• New schema has formal review
process• No alter on large tables, create new
table– Copy on read– Complete migration with background
job
![Page 14: B. Durrett The Challenges of Continuous Deployment Social Developer Summit](https://reader033.fdocuments.net/reader033/viewer/2022060109/55534538b4c9059e688b47c7/html5/thumbnails/14.jpg)
14
Big Features
• Developed on trunk, not branch– “hidden” from customers by A/B
experiment– 100% control, add QA to experiment
• Deployed daily during development
• Slow roll-out by increasing experiment %– Experiment closed = fully launched
![Page 15: B. Durrett The Challenges of Continuous Deployment Social Developer Summit](https://reader033.fdocuments.net/reader033/viewer/2022060109/55534538b4c9059e688b47c7/html5/thumbnails/15.jpg)
15
Test Speed
Slow tests burden to scaling• Can’t run all tests in sandbox• Faster to debug on build cluster
If possible…• Keep tests fast• Keep tests specific
![Page 16: B. Durrett The Challenges of Continuous Deployment Social Developer Summit](https://reader033.fdocuments.net/reader033/viewer/2022060109/55534538b4c9059e688b47c7/html5/thumbnails/16.jpg)
16
The cost of failing tests
As the team grows…
• More likely to have test failures• More people blocked as a result
Intermittent failures very badEliminate the root cause
![Page 17: B. Durrett The Challenges of Continuous Deployment Social Developer Summit](https://reader033.fdocuments.net/reader033/viewer/2022060109/55534538b4c9059e688b47c7/html5/thumbnails/17.jpg)
17
Other Issues
• Won’t catch issues that fail slowly– SELECT * FROM growing_table WHERE 1
• Some critical areas cause hard lock-ups– MySQL– Memcached
• Lack of test coverage of older code– Not an issue if you start with test
coverage
![Page 18: B. Durrett The Challenges of Continuous Deployment Social Developer Summit](https://reader033.fdocuments.net/reader033/viewer/2022060109/55534538b4c9059e688b47c7/html5/thumbnails/18.jpg)
18
Does Continuous Deployment Scale?
• Technical staff ~50 people
• 10 million monthly unique visitors
• Peak ~115K concurrent IM client logins
• It’s a real business!– $40 million run rate– Profitable and doubled revenue in 2009
![Page 19: B. Durrett The Challenges of Continuous Deployment Social Developer Summit](https://reader033.fdocuments.net/reader033/viewer/2022060109/55534538b4c9059e688b47c7/html5/thumbnails/19.jpg)
19
Newer Scaling Challenges
Biggest challenges come with growth of the engineering organization
![Page 20: B. Durrett The Challenges of Continuous Deployment Social Developer Summit](https://reader033.fdocuments.net/reader033/viewer/2022060109/55534538b4c9059e688b47c7/html5/thumbnails/20.jpg)
20
SLA for Build Systems
Build systems are a critical service
![Page 21: B. Durrett The Challenges of Continuous Deployment Social Developer Summit](https://reader033.fdocuments.net/reader033/viewer/2022060109/55534538b4c9059e688b47c7/html5/thumbnails/21.jpg)
21
SLA for Build Systems
Build systems are a critical serviceRun them that way
![Page 22: B. Durrett The Challenges of Continuous Deployment Social Developer Summit](https://reader033.fdocuments.net/reader033/viewer/2022060109/55534538b4c9059e688b47c7/html5/thumbnails/22.jpg)
22
Build and Push Times
![Page 23: B. Durrett The Challenges of Continuous Deployment Social Developer Summit](https://reader033.fdocuments.net/reader033/viewer/2022060109/55534538b4c9059e688b47c7/html5/thumbnails/23.jpg)
23
Overall Availability
![Page 24: B. Durrett The Challenges of Continuous Deployment Social Developer Summit](https://reader033.fdocuments.net/reader033/viewer/2022060109/55534538b4c9059e688b47c7/html5/thumbnails/24.jpg)
24
Build Throughput
• Initial implementation sequential builds– Scaled okay to ~20 engineers– Like trains running every 20 minutes– One “red” blocks all following builds
• Solution: build isolation– Enable testing single build without
deploy– “Red” build pulled, allow other builds to
pass
![Page 25: B. Durrett The Challenges of Continuous Deployment Social Developer Summit](https://reader033.fdocuments.net/reader033/viewer/2022060109/55534538b4c9059e688b47c7/html5/thumbnails/25.jpg)
25
Current Systems
• > 15,000 tests
• 72 web build servers
– 51 Linux, 21 Windows
• > 6 hours of tests on average
hardware
• Deploy to cluster of ~700 servers
![Page 26: B. Durrett The Challenges of Continuous Deployment Social Developer Summit](https://reader033.fdocuments.net/reader033/viewer/2022060109/55534538b4c9059e688b47c7/html5/thumbnails/26.jpg)
26
Web Build Software
• Custom test-file runner with JS GUI • PHP SimpleTest• Python's built-in unittest• Selenium Core with in-house API
wrapper• YUITest for browser JS unit tests• Erlang Eunit
![Page 27: B. Durrett The Challenges of Continuous Deployment Social Developer Summit](https://reader033.fdocuments.net/reader033/viewer/2022060109/55534538b4c9059e688b47c7/html5/thumbnails/27.jpg)
27
Conclusion
• Continuous Deployment is good
• Try it – starting earlier is easier
• It’s a key part of a nutritious development process
![Page 28: B. Durrett The Challenges of Continuous Deployment Social Developer Summit](https://reader033.fdocuments.net/reader033/viewer/2022060109/55534538b4c9059e688b47c7/html5/thumbnails/28.jpg)
28
Questions?
![Page 29: B. Durrett The Challenges of Continuous Deployment Social Developer Summit](https://reader033.fdocuments.net/reader033/viewer/2022060109/55534538b4c9059e688b47c7/html5/thumbnails/29.jpg)
29
More on Continuous Deployment• SD Times Leaders of Agile: Kent
Beck's Principles of Agility: http://bit.ly/9wsAYv (this webinar tomorrow, June 30)
• Eric Ries (Startup Lessons Learned) on Continuous Deployment: http://bit.ly/5l6X1
• Timothy Fitz (IMVU) Doing the impossible 50 times a day: http://bit.ly/OxJv
![Page 30: B. Durrett The Challenges of Continuous Deployment Social Developer Summit](https://reader033.fdocuments.net/reader033/viewer/2022060109/55534538b4c9059e688b47c7/html5/thumbnails/30.jpg)
30
Thank You!
Brett G. [email protected]: @bdurrett
IMVU was recognized as one of the “Best Places to Work” (and we’re hiring)
http://www.imvu.com/jobs/