SlideShare a Scribd company logo
Andrzej Grzesik
CONTINOUS DELIVERY


               Andrzej Grzesik
@ags313
andrzej@grzesik.it
andrzejgrzesik.info
ABOUT:ME
Present




Past
GEECON 2013
 I HATE COMPUTERS
             disclaimer
   17th-19th May, Krakow, Poland
I HATE COMPUTERS
      disclaimer
QUESTIONS?
 ask them right away!
GREAT BOOKS!
FACTS FIRST
is more fun than
Our highest priority is to satisfy the customer through
early and continuous delivery of valuable software.
Our highest priority is to satisfy the customer through
early and continuous delivery of valuable software.
DELIVERY
DELIVERED
   when?
DEPENDS…
(ultimate answer in computers)
#DEFINE DONE
WHAT IS DONE?
WHAT IS DONE?
WHAT IS DONE?



Coded
WHAT IS DONE?



Coded   Reviewed
WHAT IS DONE?



Coded   Reviewed   Checked-in
WHAT IS DONE?



Coded   Reviewed   Checked-in   Built
WHAT IS DONE?



Coded   Reviewed   Checked-in   Built   Tested
WHAT IS DONE?



Coded   Reviewed   Checked-in   Built   Tested   Demoed
NOT REALLY :-)
#REDEFINE DONE
NOT READY
TILL DEPLOYED
DONE === RELEASED
ERIC RIES, THE LEAN STARTUP


           build&


ideas&                deploy&




learn&                measure&



            data&
If we can
reduce the time between major iterations
   we can increase our odds of success
                                    Eric Ries, Lean Startup
RELEASES
  give us
FEEDBACK!
How long would it take your organization to deploy a
change that involved just one single line of code?

Do you do this on a repeatable, reliable basis?




                                 Mary and Tom Poppendieck,
                                 Implementing Lean Software Development
RELEASE == FEEDBACK
REPEATABLE FEEDBACK
HOW?!
entreth:

THE DEPLOYMENT PIPELINE
THE DEPLOYMENT PIPELINE
THE DEPLOYMENT PIPELINE

compile
THE DEPLOYMENT PIPELINE

compile
unit test
THE DEPLOYMENT PIPELINE

compile
unit test
package
THE DEPLOYMENT PIPELINE

compile
unit test
package




            artifact repository
THE DEPLOYMENT PIPELINE

compile
            Acceptance
unit test
              testing
package




                         artifact repository
THE DEPLOYMENT PIPELINE

compile
            Acceptance       Capacity
unit test
              testing         testing
package




                         artifact repository
THE DEPLOYMENT PIPELINE

compile
            Acceptance       Capacity          Manual
unit test
              testing         testing          testing
package




                         artifact repository
THE DEPLOYMENT PIPELINE

compile
            Acceptance       Capacity          Manual
unit test                                                Release
              testing         testing          testing
package




                         artifact repository
BUILD ONLY ONCE!
THE DEPLOYMENT PIPELINE
THE DEPLOYMENT PIPELINE

compile
            Acceptance       Capacity
unit test
              testing         testing
package




                         artifact repository
THE DEPLOYMENT PIPELINE

compile
            Acceptance       Capacity          Manual
unit test
              testing         testing          testing
package




                         artifact repository
THE DEPLOYMENT PIPELINE

compile
            Acceptance       Capacity          Manual
unit test                                                Release
              testing         testing          testing
package




                         artifact repository
THE DEPLOYMENT PIPELINE
THE DEPLOYMENT PIPELINE

    Acceptance   Capacity
      testing     testing
THE DEPLOYMENT PIPELINE

    Acceptance   Capacity   Manual
      testing     testing   testing
THE DEPLOYMENT PIPELINE

    Acceptance   Capacity   Manual
                                      Release
      testing     testing   testing
THE DEPLOYMENT PIPELINE
                fear!



compile
            Acceptance       Capacity          Manual
unit test                                                Release
              testing         testing          testing
package




                         artifact repository
AUTOMATE EVERYTHING!
        (almost)
AUTOMATE EVERYTHING!
AND?
WELL, IT’S BIG
ALL CODE
IS PRODUCTION READY
EVERY VERSION IS
A RELEASE CANDIDATE
QUALITY GOES UP
     people care
idea from: paulklipp.com/blog
PRO TIP: --VERSION
WHY VERSIONS?
185.0.1
            is more friendly than
0cdfc45df874354265b3be910b52c41398de79ca
ANTIPATTERNS
DEPLOYING RARELY/LATE
   symptomps: “alpha”, “beta”, “gold”
Continuous Delivery
LATE FIRST CONTACT WITH
         REALITY
UNREALISTIC ASSUMPTIONS
WELL TESTED IN.. DEV
DEPLOYING MANUALLY
       is evil!
ERROR-PRONE




  http://www.flickr.com/photos/aaronjacobs/64368770/
ALWAYS DIFFERENT
     repeatable
IMPOSSIBLE TO TEST
VOODOO




http://flickr.com/photos/35541100@N00/2486381001/
2 AM DEPLOYS




http://www.flickr.com/photos/dhdesign/1096464615/sizes/z/in/photostream/
THE “DEPLOY” TEAM
DO YOU AVOID DEPLOYS?
HOW OFTEN DO YOU
    DEPLOY?
IF IT HURTS
DO IT MORE OFTEN!
   practice, practice, practice
INCREMENTAL, FREQUENT
  RELEASES REDUCE RISK
PROVIDE DATA
GIVE ROLLBACK POINTS
SOME STATS


Facebook - every 10 minutes

Etsy - 50-60 deploys/day

GitHub - >50 deploys/day

project X - 1374 commits, 1057 deployments, <8 months
ENVIRONMENTS
IF I ERASED ALL YOUR PRODUCTION
MACHINES, HOW LONG WOULD YOU NEED
              TO BE BACK UP?
WELL, CODE IS IN GIT
mercurial, subversion, ClearCase, whathaveyou
IMAGINE:




http://www.flickr.com/photos/roadhunter/68017745/
INFRASTRUCTURE AND CONFIGURATION
        IS JUST AS IMPORTANT
VERSION IT!
 (puppet, chef, etc)
BEFRIEND SOME ADMINS :-)
AND VERSION EVERYTHING
MANUAL CONFIGURATION
  OF ENVIRONMENTS
PRIVILEGED DEPLOY TEAM
NOT REPEATABLE
SLIGHT DIFFRENENCES
DOESN’T SCALE
HARD TO TRACK
ROLLBACK, ANYONE?
TRUCKS
Continuous Delivery
MEANWHILE,
IN THE REAL WORLD
MY SYSTEM IS ***
WHERE TO START?
WITH PRODUCTION
   and fix things backwards
AUTOMATE DEVELOPMENT
    and bring automation forward
DEPLOYS
 how do I?
DEPLOYS


• blue-green

• canary

• emergency    fixes
BLUEGREEN



tr affic
FULL BLUEGREEN IS COSTLY
       but great for availability
CANARY


old   old      old   new



old   old     old    new
EMERGENCY FIXES
EMERGENCY FIXES
    go the same way
DON’T BREAK RULES
Continuous Delivery
CAVEATS!
STATE
LONG RUNNING *
SAGAS?



http://www.cs.cornell.edu/andru/cs711/2002fa/reading/sagas.pdf
DATASTORES


EACH APP HAS IT’S OWN
         ideally
DATASTORES


 SCRIPTED
    must
DATASTORES


MIGRATIONS
    nice
DATASTORES


   TEST
   all of them
MAYBE EVENT SOURCING?
VERSION YOUR ENTITIES
      and code accordingly
BRANCHING
Continuous Delivery
FEATURE SWITCHES
      instead
if your system
looks like that
CUT!
Continuous Delivery
• have   integration tests

• have   a “test” system
DESKTOPS



• LOVE   your autoupdate

• build-in   version checking and inform user
DESKTOPS



Do      or
LOVE YOUR AUTOUPDATE
PUSH USER UP
IN PRACTICE
MODULES^N
PRE-TESTED COMMITS
       rock, a bit
DVCS
rock, a lot!
VMS
rock a lot!
THERE ARE TOOLS
IS AWESOME
but
Continuous Delivery
+
GLU
http://linkedin.github.com/glu
Continuous Delivery
GO ($$$)
PALDIES!
  kthxbye!
@ags313
andrzej@grzesik.it
andrzejgrzesik.info


  tweet please!
RESOURCES



• http://continuousdelivery.com

• http://lmgtfy.com/?q=continuous+delivery

More Related Content

PDF
PHP, AWS, and Sleep - Hampton Roads DevFest 2016
PDF
Your Goat Antifragiled My Snowflake!: Demystifying DevOps Jargon - ChefConf 2015
PDF
PRDC11-tdd-common-mistakes
PDF
David Nuescheler: Igniting CQ 5.3: What's New and Roadmap
PDF
Data Driven DevOps
PDF
Agile Infrastructure - Agile 2009
PDF
Agile Testing Days 2018 USA - API Testing Fundamentals
PPTX
Source Control 101
PHP, AWS, and Sleep - Hampton Roads DevFest 2016
Your Goat Antifragiled My Snowflake!: Demystifying DevOps Jargon - ChefConf 2015
PRDC11-tdd-common-mistakes
David Nuescheler: Igniting CQ 5.3: What's New and Roadmap
Data Driven DevOps
Agile Infrastructure - Agile 2009
Agile Testing Days 2018 USA - API Testing Fundamentals
Source Control 101

Viewers also liked (6)

PDF
The path to Repeatable Builds
PPTX
Scaem street
PDF
JDK, the not so hidden treasures
PDF
Java 8: the good parts!
PDF
100+ Beautiful Slides from #CannesLions '11 from @jessedee
PDF
You Suck At PowerPoint! by @jessedee
The path to Repeatable Builds
Scaem street
JDK, the not so hidden treasures
Java 8: the good parts!
100+ Beautiful Slides from #CannesLions '11 from @jessedee
You Suck At PowerPoint! by @jessedee
Ad

Similar to Continuous Delivery (20)

KEY
Continuous deployment
PPTX
Linuxtag 2012 - continuous delivery - dream to reality
PPTX
Continuous delivery applied (DC CI User Group)
PPTX
Continuous delivery applied (RJUG)
PPTX
Continuous Delivery Applied (AgileDC)
PPTX
Continuous Delivery Applied (Agile Richmond)
PPTX
Continuous Delivery Applied
PPTX
Continuous delivery applied
PPTX
Continuous Delivery Applied
PDF
Continuous Delivery Distilled
PDF
The Brave New World of Continuous Release - Baruch Sadogursky
PDF
Multilanguage Pipelines with Jenkins, Docker and Kubernetes (Commit Conf 2018)
PPTX
Anatomy of a Build Pipeline
PDF
Deployments in one click!
PPTX
ALM Summit 3 - Setting up a Continuous Delivery Deployment Pipeline with TFS
PPTX
The Brave New World of Continuous Release
PDF
Stop Sucking at Building Stuff!
PDF
Ncerc rlmca202 adm m3 ssm
PDF
Continuous Delivery @ Codemotion
Continuous deployment
Linuxtag 2012 - continuous delivery - dream to reality
Continuous delivery applied (DC CI User Group)
Continuous delivery applied (RJUG)
Continuous Delivery Applied (AgileDC)
Continuous Delivery Applied (Agile Richmond)
Continuous Delivery Applied
Continuous delivery applied
Continuous Delivery Applied
Continuous Delivery Distilled
The Brave New World of Continuous Release - Baruch Sadogursky
Multilanguage Pipelines with Jenkins, Docker and Kubernetes (Commit Conf 2018)
Anatomy of a Build Pipeline
Deployments in one click!
ALM Summit 3 - Setting up a Continuous Delivery Deployment Pipeline with TFS
The Brave New World of Continuous Release
Stop Sucking at Building Stuff!
Ncerc rlmca202 adm m3 ssm
Continuous Delivery @ Codemotion
Ad

More from Andrzej Grzesik (7)

PDF
JDK not so hidden treasures
PDF
Go, the one language to learn in 2014
PDF
Cheffing a department
PDF
Continuous Delivery Antipatterns
PDF
Continous delivery
PDF
Hbase jdd
JDK not so hidden treasures
Go, the one language to learn in 2014
Cheffing a department
Continuous Delivery Antipatterns
Continous delivery
Hbase jdd

Recently uploaded (20)

PPTX
Cloud computing and distributed systems.
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PDF
Network Security Unit 5.pdf for BCA BBA.
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
Spectral efficient network and resource selection model in 5G networks
PDF
NewMind AI Monthly Chronicles - July 2025
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PDF
Modernizing your data center with Dell and AMD
PDF
Empathic Computing: Creating Shared Understanding
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PDF
cuic standard and advanced reporting.pdf
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
Cloud computing and distributed systems.
Reach Out and Touch Someone: Haptics and Empathic Computing
Digital-Transformation-Roadmap-for-Companies.pptx
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Chapter 3 Spatial Domain Image Processing.pdf
Network Security Unit 5.pdf for BCA BBA.
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Spectral efficient network and resource selection model in 5G networks
NewMind AI Monthly Chronicles - July 2025
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
Modernizing your data center with Dell and AMD
Empathic Computing: Creating Shared Understanding
The Rise and Fall of 3GPP – Time for a Sabbatical?
cuic standard and advanced reporting.pdf
Building Integrated photovoltaic BIPV_UPV.pdf
Unlocking AI with Model Context Protocol (MCP)
Per capita expenditure prediction using model stacking based on satellite ima...
Diabetes mellitus diagnosis method based random forest with bat algorithm

Continuous Delivery