What? Why? Tailor for unique tradeoffs, focusing on risk mitigation.Trans: what is cd? What is CI?
Ancient concept:Expect it on local dev boxes (php-style)SqueakGenera : An entire OS, locally deployable instantly. Musical Live CodingTrans: So… why?
Story? System Chat. Threw away a week of work! Dark launch via CD.Bad Assumptions: Code does what it says Code doesn’t negatively affect other code Code is scalable Code handles edge cases correctly 3rd party API allows for certain behavior
Talk through commit deploy processGit pushGithubPing JenkinsJenkins runs python ./manage.py test canvasRuns through a couple hundred automated tests
Does it scale?IMVU: Profitable MMO + Virtual Economy, 50 person technicalstaffCommit-to-live in about 15 minutes.
“Gregory House Theory”Not a theory of CDWaterfallApply the theory on a per-change basis (schemas vsTrans: How to change that curve?
Hypothesis commits: What happens if I X?Pay attention to your S/N ratio. Refactoring in separate commits to pull out noise. (Behavior preserving? Behavior changing?)
Bank that IVLots of “Lean Startup” and “Lean Thinking” benefits, covered elsewhere.
Flickr switchesChrome dev-channel crashes constantly, but I still love it. (WebGL!)Google Labs
Website is down! Write tests.“Install the client” test, fear barrier.
Nagios alerts are an extension of test coverage.Cluster Immune is a hedge against the cost of big regressions. Does a subset of Nagios alerts with finely tuned parameters.Instant rollback (<15s) is so critical. Human processes (how do I do it? Who does it? What’s a serious regression?)Just go read “Release It!” – Michael NygardCan’t take out a MySQL instance with a bad queryApp works even if search is downIsolation: Think AppEngine.Schemas: Lock down. Review. Try to avoid. Key-value store (NoSQL or YesSQL)
Putting it all together, examples:Web Startup: forget riskEstablished Service: velocity IMVU“Big Business”: CD to opt-in customers, daily deploy of baked functionality.Medical: CD to test-environment.Principles apply everywhere.Final, and most FAQ: How do I start? Nike model: just do it, fix failures as they really happen Gradual improvement model: Incrementally ship faster, automate more, CD into staging.Join Canvas
Continuous Deployment<br />Timothy Fitz<br />CTO of Canvas<br />
“Continuous integration involves integrating early and often, so as to avoid the pitfalls of "integration hell". The practice aims to reduce timely rework and thus reduce cost and development time.”<br />
“Continuous deployment involves deploying early and often, so as to avoid the pitfalls of "deployment hell". The practice aims to reduce timely rework and thus reduce cost and development time.”<br />
The Vision<br />On every key press<br />Compile<br />Run automated tests<br />Deploy<br /><ul><li>“Live Coding”</li></li></ul><li>Eliminate Waste<br /><ul><li>Deploying code validates assumptions</li></ul>Bad assumptions cause waste<br />Code built on top is waste<br />Designbuilt on top is waste<br />Thought built on top is waste<br />
The Reality<br />Change has risk<br />Infrastructure isn’t free<br />