SlideShare a Scribd company logo
10 deploys per day
Dev & ops cooperation at Flickr


John Allspaw & Paul Hammond
         Velocity 2009
3 billion photos

               40,000 photos per second




                     http://flickr.com/photos/jimmyroq/415506736/
Dev versus Ops
“It’s not my machines,
     it’s your code!”
“It’s not my code,
it’s your machines!”
Spock Scotty
        Little bit weird   Pulls levers & turns knobs
Sits closer to the boss    Easily excited
       Thinks too hard     Yells a lot in emergencies
10+ Deploys Per Day: Dev and Ops Cooperation at Flickr
Says “No” all the time
Afraid that new fangled things will break the site
                  Fingerpointy
Ops stereotype

            Because the site breaks
                unexpectedly


                                      Because no one tells
                                        them anything
        Because
They say “NO” all the time
http://www.flickr.com/photos/stewart/461099066/




Traditional thinking

     Dev’s job is to add new features
Ops’ job is to keep the site stable and fast
Ops’ job is NOT to keep the site stable and fast
Ops’ job is to enable the business
           (this is dev’s job too)
The business requires change
But change is the root cause of most outages!
Discourage change in the interests of stability
                    or
Allow change to happen as often as it needs to
Lowering risk of change
through tools and culture
Dev and Ops
Ops who think like devs
Devs who think like ops
“But that’s me!”
You can always think more like them
Tools
1. Automated infrastructure
       If there is only one thing you do…
CFengine
Chef
       BCfg2                                  FAI
1. Automated infrastructure
         If there is only one thing you do…

        System Imager
Puppet                                        Cobbler
Role &
configuration
management

OS imaging
2. Shared version control
Everyone knows where to look
           http://www.flickr.com/photos/thunderchild5/1330744559/
3. One step build
10+ Deploys Per Day: Dev and Ops Cooperation at Flickr
3. One step build
   and deploy
10+ Deploys Per Day: Dev and Ops Cooperation at Flickr
10+ Deploys Per Day: Dev and Ops Cooperation at Flickr
[2009-06-22 16:03:57] [harmes] site deployed (changes...)




        Who? When? What?
10+ Deploys Per Day: Dev and Ops Cooperation at Flickr
Small frequent changes
              http://www.flickr.com/photos/mauren/2429240906/
4. Feature flags
(aka branching in code)
1.0.1         1.0.2



1.0   1.1           1.2


                          1.1.1


Desktop software
r2301   r2302   r2306




   Web software
http://www.flickr.com/photos/8720628@N04/2188922076/




Always ship trunk
Everyone knows exactly where to look
              http://www.flickr.com/photos/thunderchild5/1330744559/
Feature flags

#php
if ($cfg['enable_feature_video']){

 
 …
}

{* smarty *}
{if $cfg.enable_feature_beehive}

 
 …
{/if}
http://www.flickr.com/photos/healthserviceglasses/3522809727/




                     Private betas
Bucket testing




http://www.flickr.com/photos/davidw/2063575447/
http://www.flickr.com/photos/jking89/3031204314/




         Dark launches
Free
contingency
switches
              http://www.flickr.com/photos/flattop341/260207875/
5. Shared metrics
10+ Deploys Per Day: Dev and Ops Cooperation at Flickr
Application level metrics
Application level metrics
Adaptive feedback loops




         RU ok?
App                System Metrics
          maybe?
10+ Deploys Per Day: Dev and Ops Cooperation at Flickr
6. IRC and IM robots
Dev, Ops, and Robots
              Having a conversation

      build
                       deploy
      logs
                        logs           alerts
                                      monitors

IRC


                                       search
                                       engine
Culture
1. Respect
If there is only one thing you do…
Don’t
 stereotype
 (not all developers are lazy)



http://www.flickr.com/photos/aaronjacobs/64368770/
http://www.flickr.com/photos/chrisdag/2286198568/




         Respect other people’s expertise,
             opinions and responsibilities
http://www.flickr.com/photos/jwheare/2580631103/




 Don’t just say “No”
http://www.flickr.com/photos/alancleaver/2661424637/



                                                Don’t hide things
Developers: Talk to ops about the impact of your code:

• what metrics will change, and how?
• what are the risks?
• what are the signs that something is going wrong?
• what are the contingencies?
This means you need to work this out before talking to ops
2. Trust
Ops needs to trust dev to involve
them on feature discussions

Dev needs to trust ops to discuss
infrastructure changes

Everyone needs to trust that everyone else
is doing their best for the business




                         http://www.flickr.com/photos/85128884@N00/2650981813/
http://www.flickr.com/photos/flattop341/224176602/




   Shared runbooks & escalation plans
http://www.flickr.com/photos/telstar/2861103147/




  Provide knobs and levers
http://www.flickr.com/photos/williamhook/3468484351/




  Ops: Be transparent,
  give devs access to systems
3. Healthy attitude
   about failure
http://www.flickr.com/photos/pinksherbet/447190603/




Failure will happen
If you think you can prevent failure then
         you aren’t developing your ability to respond




http://www.flickr.com/photos/toms/2323779363/
http://www.flickr.com/photos/changereality/2349538868/
Fire drills



http://www.flickr.com/photos/dnorman/2678090600
4. Avoiding Blame
No fingerpointing




http://www.flickr.com/photos/rocketjim54/2955889085/
Fingerpointyness

problem!!!
 argggh!                                                    fixed.



     freaking out, blaming, whining,    figuring it




                                                     fixing things
      not talking, covering hiding.        out
      finding fault    ass   hurt egos


                                                                    time
Being productive

problem!!!
 argggh!                  fixed.



      figuring it   fixing things   feeling move
         out                       guilty on with
                                            life


                                                    time
Developers: Remember that someone else will
  probably get woken up when your code breaks




http://www.flickr.com/photos/alex-s/353218851/
http://www.flickr.com/photos/allspaw/2819774755/




  Ops: provide
  constructive
  feedback on
  current aches
  and pains
1. Automated infrastructure
2. Shared version control
3. One step build and deploy
4. Feature flags
5. Shared metrics
6. IRC and IM robots

1. Respect
2. Trust
3. Healthy attitude about failure
4. Avoiding Blame
This is not easy
You could just carry on shouting at each other…
(Thank you)

More Related Content

PDF
Joseph Yoder : Being Agile about Architecture
PDF
マイクロサービスに至る歴史とこれから - XP祭り2021
PDF
アーキテクチャの進化から学ぶ、プラットフォームエンジニアリングへのアプローチ
PDF
Google Cloud で実践する SRE
PDF
アジャイル品質のパターンとメトリクス Agile Quality Patterns and Metrics (QA2AQ) 20240225
PDF
The Twelve-Factor Appで考えるAWSのサービス開発
PDF
サービスブループリントによるシステム設計手法の紹介 - XP祭り2022
PDF
新たなgitのブランチモデル「Git Feature Flow」!Git Flow,Git Hub Flow,Git Lab Flowを超えれるか?
Joseph Yoder : Being Agile about Architecture
マイクロサービスに至る歴史とこれから - XP祭り2021
アーキテクチャの進化から学ぶ、プラットフォームエンジニアリングへのアプローチ
Google Cloud で実践する SRE
アジャイル品質のパターンとメトリクス Agile Quality Patterns and Metrics (QA2AQ) 20240225
The Twelve-Factor Appで考えるAWSのサービス開発
サービスブループリントによるシステム設計手法の紹介 - XP祭り2022
新たなgitのブランチモデル「Git Feature Flow」!Git Flow,Git Hub Flow,Git Lab Flowを超えれるか?

What's hot (20)

PDF
開発速度が速い #とは(LayerX社内資料)
PDF
JaSST Tokyo 2022 アジャイルソフトウェア開発への統計的品質管理の応用
PDF
例外設計における大罪
PPTX
アジャイルメトリクス実践ガイド
PDF
それはYAGNIか? それとも思考停止か?
PPTX
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
PDF
ドメイン駆動設計 基本を理解する
PDF
私にとってのテスト
PPTX
kubernetes初心者がKnative Lambda Runtime触ってみた(Kubernetes Novice Tokyo #13 発表資料)
PDF
O/Rマッパーによるトラブルを未然に防ぐ
PPTX
Scaled Agile Framework (SAFe) Roles and Meetings
PPTX
初心者向けMongoDBのキホン!
PDF
こんなに使える!今どきのAPIドキュメンテーションツール
PDF
アジャイルなソフトウェア設計を目指して
PPTX
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)
PPTX
オーバーエンジニアリングって何? #devsumi #devsumiA
PPTX
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
PDF
マルチテナントのアプリケーション実装〜実践編〜
PDF
テスト文字列に「うんこ」と入れるな
PPTX
イベント・ソーシングを知る
開発速度が速い #とは(LayerX社内資料)
JaSST Tokyo 2022 アジャイルソフトウェア開発への統計的品質管理の応用
例外設計における大罪
アジャイルメトリクス実践ガイド
それはYAGNIか? それとも思考停止か?
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
ドメイン駆動設計 基本を理解する
私にとってのテスト
kubernetes初心者がKnative Lambda Runtime触ってみた(Kubernetes Novice Tokyo #13 発表資料)
O/Rマッパーによるトラブルを未然に防ぐ
Scaled Agile Framework (SAFe) Roles and Meetings
初心者向けMongoDBのキホン!
こんなに使える!今どきのAPIドキュメンテーションツール
アジャイルなソフトウェア設計を目指して
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)
オーバーエンジニアリングって何? #devsumi #devsumiA
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
マルチテナントのアプリケーション実装〜実践編〜
テスト文字列に「うんこ」と入れるな
イベント・ソーシングを知る
Ad

Viewers also liked (20)

PDF
日経BPリーン式創業塾 #leanstartup #リーンスタートアップ
PDF
LEANSTARTUPアンチパターン #devlove #leanstartup
PDF
Blockchain Tech Q3 2017 Highlights by Venture Scanner
PPTX
Devops talk
PDF
NTT Tech Conference #1 Opening Keynote
PPTX
Spark 2013 Presentation of making the enterprise agile
PDF
今、おさえておきたい DevOps
PDF
ドメイン駆動設計 分析しながら設計する
PPTX
Jaws days2017-ops jaws-2
PDF
ソフトウェア構成管理入門
PDF
The History of DevOps (and what you need to do about it)
PDF
Devops the Microsoft Way
PDF
資料庫索引數據結構及主鍵設計(b+tree)(part 1)
PDF
Gitのつくりかた YAPC::Asia 2015 @DQNEO
PPTX
より効果的に業務改善するためのOffice 365活用術
PDF
AWS市場動向と求められる人材、その育成方法について
PDF
160428 東工大「ロボット技術」授業資料
PDF
大規模負荷試験時にやったこと
PDF
DevLove Kansai AWS
KEY
hubotで快適BOT生活
日経BPリーン式創業塾 #leanstartup #リーンスタートアップ
LEANSTARTUPアンチパターン #devlove #leanstartup
Blockchain Tech Q3 2017 Highlights by Venture Scanner
Devops talk
NTT Tech Conference #1 Opening Keynote
Spark 2013 Presentation of making the enterprise agile
今、おさえておきたい DevOps
ドメイン駆動設計 分析しながら設計する
Jaws days2017-ops jaws-2
ソフトウェア構成管理入門
The History of DevOps (and what you need to do about it)
Devops the Microsoft Way
資料庫索引數據結構及主鍵設計(b+tree)(part 1)
Gitのつくりかた YAPC::Asia 2015 @DQNEO
より効果的に業務改善するためのOffice 365活用術
AWS市場動向と求められる人材、その育成方法について
160428 東工大「ロボット技術」授業資料
大規模負荷試験時にやったこと
DevLove Kansai AWS
hubotで快適BOT生活
Ad

Similar to 10+ Deploys Per Day: Dev and Ops Cooperation at Flickr (20)

PDF
Dev and Ops Collaboration and Awareness at Etsy and Flickr
PDF
Building Internet-scale Applications
PDF
Devops, Secops, Opsec, DevSec *ops *.* ?
PDF
Managing Rubyists GoRuCo 2010 PDF
ZIP
Silos are for farmers
KEY
Dev Ops @ Envato
PDF
Surviving a Hackathon and Beyond
PDF
Devops, the future is here, it's just not evenly distributed yet.
ODP
Devops for drupal
PPTX
One Does Not Simply Walk Into Devops
PPTX
Practical Agile. Lessons learned the hard way on our journey building digita...
PPTX
Practical agile TechExeter
PPTX
2014-10 DevOps NFi - Why it's a good idea to deploy 10 times per day v1.0
KEY
Agile Development Overview (with a bit about builds)
PDF
DevOps - Keepers of the Keys to the Kingdom
PDF
How Heroku uses Heroku to build Heroku
PPTX
JavaOne 2015 Devops and the Darkside CON6447
PDF
Tulsa tech fest 2010 - web speed and scalability
PDF
Hacking Culture at VelocityConf
PDF
When Things Go Bump in the Night
Dev and Ops Collaboration and Awareness at Etsy and Flickr
Building Internet-scale Applications
Devops, Secops, Opsec, DevSec *ops *.* ?
Managing Rubyists GoRuCo 2010 PDF
Silos are for farmers
Dev Ops @ Envato
Surviving a Hackathon and Beyond
Devops, the future is here, it's just not evenly distributed yet.
Devops for drupal
One Does Not Simply Walk Into Devops
Practical Agile. Lessons learned the hard way on our journey building digita...
Practical agile TechExeter
2014-10 DevOps NFi - Why it's a good idea to deploy 10 times per day v1.0
Agile Development Overview (with a bit about builds)
DevOps - Keepers of the Keys to the Kingdom
How Heroku uses Heroku to build Heroku
JavaOne 2015 Devops and the Darkside CON6447
Tulsa tech fest 2010 - web speed and scalability
Hacking Culture at VelocityConf
When Things Go Bump in the Night

More from John Allspaw (15)

PDF
Resilience Engineering: A field of study, a community, and some perspective s...
PDF
Considerations for Alert Design
PDF
Velocity EU 2012 Escalating Scenarios: Outage Handling Pitfalls
PDF
Responding to Outages Maturely
PDF
Resilient Response In Complex Systems
PDF
Outages, PostMortems, and Human Error
PDF
Anticipation: What Could Possibly Go Wrong?
PDF
Advanced PostMortem Fu and Human Error 101 (Velocity 2011)
PDF
Go or No-Go: Operability and Contingency Planning at Etsy.com
ZIP
Ops Meta-Metrics: The Currency You Pay For Change
ZIP
Ops Meta-Metrics: The Currency You Pay For Change
PDF
Capacity Planning For LAMP
ZIP
Operational Efficiency Hacks Web20 Expo2009
PDF
Capacity Management for Web Operations
PDF
Capacity Planning for Web Operations - Web20 Expo 2008
Resilience Engineering: A field of study, a community, and some perspective s...
Considerations for Alert Design
Velocity EU 2012 Escalating Scenarios: Outage Handling Pitfalls
Responding to Outages Maturely
Resilient Response In Complex Systems
Outages, PostMortems, and Human Error
Anticipation: What Could Possibly Go Wrong?
Advanced PostMortem Fu and Human Error 101 (Velocity 2011)
Go or No-Go: Operability and Contingency Planning at Etsy.com
Ops Meta-Metrics: The Currency You Pay For Change
Ops Meta-Metrics: The Currency You Pay For Change
Capacity Planning For LAMP
Operational Efficiency Hacks Web20 Expo2009
Capacity Management for Web Operations
Capacity Planning for Web Operations - Web20 Expo 2008

Recently uploaded (20)

PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PDF
GDG Cloud Iasi [PUBLIC] Florian Blaga - Unveiling the Evolution of Cybersecur...
PDF
[발표본] 너의 과제는 클라우드에 있어_KTDS_김동현_20250524.pdf
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
cuic standard and advanced reporting.pdf
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
Modernizing your data center with Dell and AMD
PDF
Advanced IT Governance
PDF
Machine learning based COVID-19 study performance prediction
PPT
Teaching material agriculture food technology
PDF
Approach and Philosophy of On baking technology
PDF
CIFDAQ's Market Insight: SEC Turns Pro Crypto
PPTX
breach-and-attack-simulation-cybersecurity-india-chennai-defenderrabbit-2025....
PDF
solutions_manual_-_materials___processing_in_manufacturing__demargo_.pdf
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
“AI and Expert System Decision Support & Business Intelligence Systems”
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Understanding_Digital_Forensics_Presentation.pptx
GDG Cloud Iasi [PUBLIC] Florian Blaga - Unveiling the Evolution of Cybersecur...
[발표본] 너의 과제는 클라우드에 있어_KTDS_김동현_20250524.pdf
Mobile App Security Testing_ A Comprehensive Guide.pdf
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
cuic standard and advanced reporting.pdf
The Rise and Fall of 3GPP – Time for a Sabbatical?
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Advanced methodologies resolving dimensionality complications for autism neur...
Modernizing your data center with Dell and AMD
Advanced IT Governance
Machine learning based COVID-19 study performance prediction
Teaching material agriculture food technology
Approach and Philosophy of On baking technology
CIFDAQ's Market Insight: SEC Turns Pro Crypto
breach-and-attack-simulation-cybersecurity-india-chennai-defenderrabbit-2025....
solutions_manual_-_materials___processing_in_manufacturing__demargo_.pdf
Build a system with the filesystem maintained by OSTree @ COSCUP 2025

10+ Deploys Per Day: Dev and Ops Cooperation at Flickr