Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Release It!
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Jake Trent
August 18, 2009
Programming
40
0
Share
Release It!
I read this book by Michael Nygard, and here are some of my takes.
Jake Trent
August 18, 2009
More Decks by Jake Trent
See All by Jake Trent
How We Make The Design System
jaketrent
4
1.4k
Accessibility in the Pluralsight Design System
jaketrent
0
740
Design System Support Beyond React
jaketrent
0
670
Getting into Frontend Dev Today
jaketrent
0
630
Encourage Great Combinations
jaketrent
0
810
Getting into React
jaketrent
0
740
Ways to Compose in React
jaketrent
0
87
Anatomy of a Blot Post
jaketrent
0
80
Voice of the Leaders
jaketrent
0
80
Other Decks in Programming
See All in Programming
Cache-moi si tu peux : patterns et pièges du cache en production - Devoxx France 2026 - Conférence
slecache
0
290
感情を設計する
ichimichi
5
1.6k
Claude Code × Gemini × Ebitengine ゲーム制作素人WebエンジニアがGoでゲームを作った話
webzawa
0
160
UIの境界線をデザインする | React Tokyo #15 メイントーク
sasagar
2
380
アーキテクチャモダナイゼーションとは何か
nwiizo
19
5.4k
Offline should be the norm: building local-first apps with CRDTs & Kotlin Multiplatform
renaudmathieu
0
230
レガシーPHP転生 〜父がドメインエキスパートだったのでDDD+Claude Codeでチート開発します〜
panda_program
0
1.1k
PicoRuby for IoT: Connecting to the Cloud with MQTT
yuuu
2
650
煩雑なSkills管理をSoC(関心の分離)により解決する――関心を分離し、プロンプトを部品として育てるためのOSSを作った話 / Solving Complex Skills Management Through SoC (Separation of Concerns)
nrslib
4
1k
JOAI2026 1st solution - heron0519 -
heron0519
0
150
瑠璃の宝石に学ぶ技術の声の聴き方 / 【劇場版】アニメから得た学びを発表会2026 #エンジニアニメ
mazrean
0
290
ソフトウェア設計の結合バランス #phperkaigi
kajitack
0
140
Featured
See All Featured
GraphQLとの向き合い方2022年版
quramy
50
15k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
5.9k
AI Search: Implications for SEO and How to Move Forward - #ShenzhenSEOConference
aleyda
1
1.2k
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
120
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.4k
Google's AI Overviews - The New Search
badams
0
980
Optimizing for Happiness
mojombo
378
71k
Rails Girls Zürich Keynote
gr2m
96
14k
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
3
3.4k
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
230
Mobile First: as difficult as doing things right
swwweet
225
10k
Are puppies a ranking factor?
jonoalderson
1
3.3k
Transcript
Release It! Design and Deploy Production-Ready Software Jake Trent 18
Aug 2009 by Michael T. Nygard
The Book Is thoughtful reading •Prompt evaluation: ◦Self ◦Project ◦Company
•Pragprog.com
Motivation For quality, production-ready software •Go home at night w/o
calls to your cell phone •Avoid un-needed cost: ◦Down time costs ◦Opportunity costs ◦Operational costs ◦Legal costs •Respectable work
The Need For periodic reminder of these issues •Code that
passes QA: ◦Can still fail miserably ◦Can still give users bad impressions ◦Can still inflict avoidable costs •Problems will happen
Stability Antipatterns
Integration Points Antipattern •Modern display of coupling: Systems talking to
systems •Every contact point is a possible failure point •Things not under your control ◦Network reliability ◦Data availability ◦External system correctness
Chain Reactions Antipattern •One failure often triggers another •Resource availability
often the catalyst •Turn into the system attacking itself
Cascading Failures Antipattern •Failure in one layer causes problems in
callers •Insufficiently paranoid integration points
Users Antipattern •"Users of a system have this knack for
creative destruction." •Each user consumes more memory •Some are a burden, others plain malicious
Blocked Threads Antipattern •"Adding complexity to solve on problem creates
the risk of entirely new failure modes." •Resource pool contention •Beware 3rd party API •Timeouts
Attacks of Self-Denial Antipattern •Plan for your own success •"Good
marketing can kill you at any time."
Scaling Effects Antipattern •Horizontal scale communication •Shared resource bottleneck
Unbalanced Capacities Antipattern •Performance will depend on your most constrained
resource •Not often discovered by QA •Consider proportions of types of transactions
Slow Responses Antipattern •Better to fail fast than to hog
resources only to eventually fail
SLA Inversion Antipattern •"When calling third parties, service levels only
decrease." •Consider real need and real cost •Service level can only be as high as the lowest subsystem
Unbounded Result Sets Antipattern •Test uses unrealistically small data sets
•Use limits on all queries
Stability Patterns
Use Timeouts Pattern •Prevent integration points from becoming blocked threads
•Retry for potential transient timeouts •Ability to move on without return (fail fast)
Circuit Breaker Pattern •Prevent operations rather than re-execute them •Note
each failure until switch is flipped •Use with timeouts - try again eventually •Visible to operations
Bulkheads Pattern •Find natural partitions ◦Thread groups ◦Resource pools ◦Hardware
Steady State Pattern •System should run w/o manual intervention •Human
fiddling leads to error •Purge data •Roll logs •At least move out of production environment
Fail Fast Pattern •Check availability before attempted use •Basic parameter
checking before loading expensive objects •"Don't do useless work"
Handshaking Pattern •Allow integration points to throttle themselves
Test Harness Pattern •Box independent of the "norms" of the
environment •As devious as possible, esp at network level •Out-of-spec •Stress
Decoupling Middleware Pattern •Decide on the plumbing at the "last
responsible moment" •Hardest to change later
"Paranoia is just good thinking." "It's unlikely that anyone will
notice your system's lack of downtime." Michal T. Nygard
Das Ende aprilandjake.com/content/release-it-stability-review/