SlideShare ist ein Scribd-Unternehmen logo
1 von 117
Downloaden Sie, um offline zu lesen
Andrzej Grzesik



Monday, July 2, 12
CONTINOUS DELIVERY
                     jak to ugryźć?




                                Andrzej Grzesik



Monday, July 2, 12
GREAT BOOKS!




Monday, July 2, 12
3.6% prelegentów jest z




Monday, July 2, 12
ABOUT:ME

        Present




        Past




Monday, July 2, 12
I HATE COMPUTERS
                           disclaimer




Monday, July 2, 12
QUESTIONS?
                      ask them right away!




Monday, July 2, 12
So...




Monday, July 2, 12
because


                       is more fun than




Monday, July 2, 12
what is.. done?




Monday, July 2, 12
#define done




Monday, July 2, 12
What is done?




Monday, July 2, 12
What is done?
                     Coded




Monday, July 2, 12
What is done?
                     Coded

                     Checked-in




Monday, July 2, 12
What is done?
                     Coded

                     Checked-in

                     Reviewed




Monday, July 2, 12
What is done?
                     Coded

                     Checked-in

                     Reviewed

                     Built




Monday, July 2, 12
What is done?
                     Coded

                     Checked-in

                     Reviewed

                     Built

                     Tested




Monday, July 2, 12
What is done?
                     Coded

                     Checked-in

                     Reviewed

                     Built

                     Tested

                     Demoed


Monday, July 2, 12
not really :-)




Monday, July 2, 12
#redefine done




Monday, July 2, 12
Our highest priority is to satisfy the customer
                 through early and continuous delivery of valuable
                 software.




Monday, July 2, 12
Our highest priority is to satisfy the customer
                 through early and continuous delivery of valuable
                 software.
                                                   Agile Manifesto




Monday, July 2, 12
it’s not ready
                     till it’s deployed
                         done === released




Monday, July 2, 12
feedback!




Monday, July 2, 12
Eric Ries, The Lean Startup


                                                          build&
                     create hypothesis
                                                 ideas&            deploy&
                     deliver minimum
                     viable product

                     get feedback
                                                 learn&            measure&


                     (repeat)                             data&




Monday, July 2, 12
If we can
                     reduce the time between major iterations
                       We can increase our odds of success
                                          Eric Ries, Lean Startup




Monday, July 2, 12
If we can
                     reduce the time between major iterations
                       We can increase our odds of success
                                          Eric Ries, Lean Startup




Monday, July 2, 12
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


Monday, July 2, 12
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


Monday, July 2, 12
repeatable




Monday, July 2, 12
HOW?!




Monday, July 2, 12
entreth:

                     The Deployment Pipeline




Monday, July 2, 12
The Deployment Pipeline




Monday, July 2, 12
The Deployment Pipeline

      compile




Monday, July 2, 12
The Deployment Pipeline

      compile
    unit test




Monday, July 2, 12
The Deployment Pipeline

      compile
    unit test
     package




Monday, July 2, 12
The Deployment Pipeline

      compile
    unit test
     package




                           artifact repository

Monday, July 2, 12
The Deployment Pipeline

      compile
                        Acceptance
    unit test
                          testing
     package




                              artifact repository

Monday, July 2, 12
The Deployment Pipeline

      compile
                        Acceptance   Capacity
    unit test
                          testing     testing
     package




                              artifact repository

Monday, July 2, 12
The Deployment Pipeline

      compile
                        Acceptance   Capacity   Manual
    unit test
                          testing     testing   testing
     package




                              artifact repository

Monday, July 2, 12
The Deployment Pipeline

      compile
                        Acceptance   Capacity   Manual
    unit test
                          testing
                                                          Release
                                      testing   testing
     package




                              artifact repository

Monday, July 2, 12
build only once!




Monday, July 2, 12
The Deployment Pipeline




Monday, July 2, 12
The Deployment Pipeline

      compile
                        Acceptance   Capacity
    unit test
                          testing     testing
     package




                              artifact repository

Monday, July 2, 12
The Deployment Pipeline

      compile
                        Acceptance   Capacity   Manual
    unit test
                          testing     testing   testing
     package




                              artifact repository

Monday, July 2, 12
The Deployment Pipeline

      compile
                        Acceptance   Capacity   Manual
    unit test
                          testing
                                                          Release
                                      testing   testing
     package




                              artifact repository

Monday, July 2, 12
The Deploymentfear!
                                     Pipeline

      compile
                        Acceptance   Capacity   Manual
    unit test
                          testing
                                                          Release
                                      testing   testing
     package




                              artifact repository

Monday, July 2, 12
automate everything!
                             (almost)




Monday, July 2, 12
automate everything!




Monday, July 2, 12
and?




Monday, July 2, 12
well, it’s BIG




Monday, July 2, 12
all code
                     is production ready




Monday, July 2, 12
every version is
                     a Release Candidate




Monday, July 2, 12
Pro tip: --version




Monday, July 2, 12
antipatterns




Monday, July 2, 12
deploying manually
                            is evil!




Monday, July 2, 12
error-prone




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




Monday, July 2, 12
always different
                          repeatable




Monday, July 2, 12
impossible to test




Monday, July 2, 12
voodoo




                     http://flickr.com/photos/35541100@N00/2486381001/




Monday, July 2, 12
2 AM deploys




                     http://www.flickr.com/photos/dhdesign/1096464615/sizes/z/in/photostream/




Monday, July 2, 12
the “deploy” team




Monday, July 2, 12
deploying rarely/late
                      symptomps: “alpha”, “beta”, “gold”




Monday, July 2, 12
Monday, July 2, 12
deploying rarely


                     late first contact with reality

                     creates unrealistic assumptions

                     tested.. in dev




Monday, July 2, 12
do you avoid deploys?




Monday, July 2, 12
deploy each?


                     year

                     quarter

                     week

                     ...




Monday, July 2, 12
if it hurts
                     do it more often!
                      practice, practice, practice




Monday, July 2, 12
incremental, frequent
                      releases reduce risk




Monday, July 2, 12
provide data




Monday, July 2, 12
give rollback points




Monday, July 2, 12
some stats

                     Facebook - deploy every 10 minutes

                     Netflix

                     Etsy - 50-60 deploys/day

                     last project - 1374 commits, 1057
                     deployments, <8 months



Monday, July 2, 12
Monday, July 2, 12
environments




Monday, July 2, 12
If I erased ALL your production
                     machines, how long would you need
                               to be back up?




Monday, July 2, 12
well, code is in Git
                     mercurial, subversion, ClearCase, whathaveyou




Monday, July 2, 12
Imagine:




                     http://www.flickr.com/photos/roadhunter/68017745/

Monday, July 2, 12
infrastructure and configuration
                            is just as important




Monday, July 2, 12
version it!
                     (puppet, chef, etc)




Monday, July 2, 12
Befriend some admins :-)




Monday, July 2, 12
and version everything




Monday, July 2, 12
manual configuration of environments




                       not repeatable

                       privileged team of “magicians”

                       slight differences create errors

                       hard to version

                       doesn’t scale



Monday, July 2, 12
rollback, anyone?




Monday, July 2, 12
trucks




Monday, July 2, 12
Monday, July 2, 12
meanwhile,
                     in the real world




Monday, July 2, 12
deploys
                      how do I?




Monday, July 2, 12
deploys


                     blue-green

                     canary

                     emergency fixes




Monday, July 2, 12
bluegreen



                     traffic




Monday, July 2, 12
full bluegreen is costly
                          but great for availability




Monday, July 2, 12
canary




Monday, July 2, 12
Monday, July 2, 12
emergency fixes




Monday, July 2, 12
emergency fixes
                        go the same way




Monday, July 2, 12
DON’T break rules




Monday, July 2, 12
caveats!




Monday, July 2, 12
caveats



                     State

                     Configuration vs JEE




Monday, July 2, 12
caveat: datastores



                     ideally: each app has it’s own




Monday, July 2, 12
caveat: datastores


                     really: must be scripted

                          migrations scripts + from scratch

                          have tests talking to the db

                          test each datastore




Monday, July 2, 12
maybe event sourcing?




Monday, July 2, 12
branching




Monday, July 2, 12
Monday, July 2, 12
if your system
                     looks like that




Monday, July 2, 12
cut!




Monday, July 2, 12
Monday, July 2, 12
have integration tests

                     have a “test” system




Monday, July 2, 12
desktops



                     LOVE your autoupdate

                     build-in version checking and inform user




Monday, July 2, 12
desktops



                     Do




Monday, July 2, 12
desktops



                     or




Monday, July 2, 12
in practice


                     modules, modules, modules

                     pre-tested commits rock.. a bit

                     dvcs rock a lot!

                     VMs rock a lot^2!




Monday, July 2, 12
there are tools




Monday, July 2, 12
Go ($$$)




Monday, July 2, 12
Monday, July 2, 12
is awesome




Monday, July 2, 12
+




Monday, July 2, 12
resources



                     http://continuousdelivery.com

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




Monday, July 2, 12
kthxbye!




Monday, July 2, 12

Weitere ähnliche Inhalte

Ähnlich wie Continous delivery

Usability: Test Types & Ethics
Usability: Test Types & EthicsUsability: Test Types & Ethics
Usability: Test Types & Ethics
Krista Kennedy
 
Waza keynote: Idea to Delivery
Waza keynote: Idea to DeliveryWaza keynote: Idea to Delivery
Waza keynote: Idea to Delivery
Adam Wiggins
 
Android - CodeMiner 42 Tech Talk
Android - CodeMiner 42 Tech TalkAndroid - CodeMiner 42 Tech Talk
Android - CodeMiner 42 Tech Talk
Jonas Alves
 
Introducción a Agile y Scrum
Introducción a Agile y ScrumIntroducción a Agile y Scrum
Introducción a Agile y Scrum
betabeers
 

Ähnlich wie Continous delivery (18)

Innovation driven entrepreneurship
Innovation driven entrepreneurshipInnovation driven entrepreneurship
Innovation driven entrepreneurship
 
Monitoring and observability
Monitoring and observabilityMonitoring and observability
Monitoring and observability
 
Usability: Test Types & Ethics
Usability: Test Types & EthicsUsability: Test Types & Ethics
Usability: Test Types & Ethics
 
Waza keynote: Idea to Delivery
Waza keynote: Idea to DeliveryWaza keynote: Idea to Delivery
Waza keynote: Idea to Delivery
 
Pet Startups or Create Your Own Pet Related Tech Startup!
Pet Startups or Create Your Own Pet Related Tech Startup!Pet Startups or Create Your Own Pet Related Tech Startup!
Pet Startups or Create Your Own Pet Related Tech Startup!
 
Android - CodeMiner 42 Tech Talk
Android - CodeMiner 42 Tech TalkAndroid - CodeMiner 42 Tech Talk
Android - CodeMiner 42 Tech Talk
 
Design for Continuous Experimentation
Design for Continuous ExperimentationDesign for Continuous Experimentation
Design for Continuous Experimentation
 
Developer Tools State of the Union
Developer Tools State of the UnionDeveloper Tools State of the Union
Developer Tools State of the Union
 
Games for the Masses (QCon London 2012)
Games for the Masses (QCon London 2012)Games for the Masses (QCon London 2012)
Games for the Masses (QCon London 2012)
 
Introducción a Agile y Scrum
Introducción a Agile y ScrumIntroducción a Agile y Scrum
Introducción a Agile y Scrum
 
Introducción a Agile y Scrum (BetaBeers.com)
Introducción a Agile y Scrum (BetaBeers.com)Introducción a Agile y Scrum (BetaBeers.com)
Introducción a Agile y Scrum (BetaBeers.com)
 
Pragmatic Test Driven Development
Pragmatic Test Driven DevelopmentPragmatic Test Driven Development
Pragmatic Test Driven Development
 
LiveRebel + Pragmatic Continuous Delivery (Arcusys)
LiveRebel + Pragmatic Continuous Delivery (Arcusys)LiveRebel + Pragmatic Continuous Delivery (Arcusys)
LiveRebel + Pragmatic Continuous Delivery (Arcusys)
 
Show an Open Source Project Some Love and Start Using Travis-CI
Show an Open Source Project Some Love and Start Using Travis-CIShow an Open Source Project Some Love and Start Using Travis-CI
Show an Open Source Project Some Love and Start Using Travis-CI
 
eXo Software Factory Overview
eXo Software Factory OvervieweXo Software Factory Overview
eXo Software Factory Overview
 
Building Lean, talk for #IWDevs
Building Lean, talk for #IWDevsBuilding Lean, talk for #IWDevs
Building Lean, talk for #IWDevs
 
Introduction to Agile for SIPA
Introduction to Agile for SIPAIntroduction to Agile for SIPA
Introduction to Agile for SIPA
 
The Web Designers Toolkit
The Web Designers ToolkitThe Web Designers Toolkit
The Web Designers Toolkit
 

Mehr von Andrzej Grzesik

Mehr von Andrzej Grzesik (10)

JDK, the not so hidden treasures
JDK, the not so hidden treasuresJDK, the not so hidden treasures
JDK, the not so hidden treasures
 
The path to Repeatable Builds
The path to Repeatable BuildsThe path to Repeatable Builds
The path to Repeatable Builds
 
JDK not so hidden treasures
JDK not so hidden treasuresJDK not so hidden treasures
JDK not so hidden treasures
 
Go, the one language to learn in 2014
Go, the one language to learn in 2014Go, the one language to learn in 2014
Go, the one language to learn in 2014
 
Cheffing a department
Cheffing a departmentCheffing a department
Cheffing a department
 
Continuous Delivery Antipatterns
Continuous Delivery AntipatternsContinuous Delivery Antipatterns
Continuous Delivery Antipatterns
 
Java 8: the good parts!
Java 8: the good parts!Java 8: the good parts!
Java 8: the good parts!
 
Continuous Delivery
Continuous DeliveryContinuous Delivery
Continuous Delivery
 
Git
GitGit
Git
 
Hbase jdd
Hbase jddHbase jdd
Hbase jdd
 

Kürzlich hochgeladen

Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Kürzlich hochgeladen (20)

Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 

Continous delivery