SlideShare a Scribd company logo
Daniel Pötzinger
CIO AOE media GmbH
What is your
               cycle
time?
are youscared
     on release days?
late night
bugfixing?
there is another
way!
How?
Automate everything!
Automate everything!
   build
Automate everything!
   build
   test
Automate everything!
   build
   test
   deploy
Do it frequently
Do it frequently



              ys 3
           plo .
         de
  fl ickr a day..
    tim es
agile


   agile


        agile

   continuous deployment
agile development best practice:
              agile
 test driven / refactoring / ddd


                agile


                     agile

                 continuous deployment
agile development best practice:
              agile
 test driven / refactoring / ddd


             agile
     continuous integration


                     agile

                 continuous deployment
agile development best practice:
              agile
 test driven / refactoring / ddd


             agile
     continuous integration


                   agile
            continuous testing


                 continuous deployment
It is not only the
source code!
It is not only the
source code!


         What else?
Continuous deployment
Source Code
Configuration



               Source Code
Environments



Configuration



               Source Code
Environments



Configuration                  Data


               Source Code
Continuous deployment
Principle
s
Check everything into SVN
Check everything into SVN

•   all source code (of course)

•   each build script

•   each important configuration
    (apache, cronjobs, loadbalancer...)
do continuous integration
do continuous integration



      t ea rly
    mi
com it often
co mm
do continuous integration



       t ea  rly
    mio ten
  om av tid f
c      i o bra
co mm            nch
                    ing
do continuous integration



       t ea  rly
     mio ten
  om av tid f omprehen     sive
c      i o brc
c o mm          anctestsuite
                   hing
do continuous integration



       t ea  rly
    mio ten
  om av tid f omprehen fastsive
c      i o brc
   mm           anctestsuite    feed
co                 hing              back
Continuous deployment
use test automation...
use test automation...
use test automation...
use test automation...
use test automation...
use test automation...
use test automation...

     ...and feel responsible
automate deployment
automate deployment




            sa me
        the
    loy every
dep
  wa  y to ent!
    nvir onm
  e
automate deployment




            sa me
        the
    loy every
dep                 do it frequently
  wa  y to ent!
    nvir onm
  e
automate deployment


              adjust
         c onfigurations
         on deploy time
             sa me
        the
    loy every
dep      o            do it frequently
  w  ayt        nt!
       iron me
  env
automate deployment


               adjust
          c onfigurations
                     ./deme
          on de<e y ti ploy.s
                 plo
                     nviro      h
                  < ep    nme
         the  sam ack          nt>
       y                   age>
de plo       ev ery        do it frequently
      yt  o
   w a       me  nt!
   env  iron
Plan and test rollback
Continuous deployment
The
Deployme
nt Pipeline
deployment pipeline


                test + build
                  package
test strategy




                verification 1


                verification II

                release to
                production
deployment pipeline


                test + build
                  package
                                 Version 1
test strategy




                verification 1


                verification II

                release to
                production
deployment pipeline


                test + build
                  package
test strategy




                verification 1
                                 Version 1
                verification II

                release to
                production
deployment pipeline


                test + build
                  package
test strategy




                verification 1


                verification II
                                 Version 1
                release to
                production
deployment pipeline


                test + build
                  package
                                             Version 2
test strategy




                verification 1


                verification II
                                 Version 1
                release to
                production
deployment pipeline


                test + build
                  package
test strategy




                verification 1
                                             Version 2
                verification II
                                 Version 1
                release to
                production
deployment pipeline


                test + build
                  package
                                                         Version 3
test strategy




                verification 1
                                             Version 2
                verification II
                                 Version 1
                release to
                production
deployment pipeline
               Build Source (SVN, Backups)


     Commit
      Stage


Version_1234




                Artifacts Repository
deployment pipeline
                      Build Source (SVN, Backups)

                      Acceptance
     Commit    auto   Test Stage
      Stage             (latest)



Version_1234




                       Artifacts Repository
deployment pipeline
                      Build Source (SVN, Backups)

                      Acceptance
     Commit    auto   Test Stage
      Stage             (latest)



Version_1234




                       Artifacts Repository
deployment pipeline
                      Build Source (SVN, Backups)

                      Acceptance      Performance
     Commit    auto   Test Stage auto      Test
      Stage             (latest)          Stage



Version_1234




                       Artifacts Repository
deployment pipeline
                      Build Source (SVN, Backups)

                      Acceptance      Performance
     Commit    auto   Test Stage auto      Test
      Stage             (latest)          Stage


                               manual
                                        Manual Test
Version_1234                              Stage




                       Artifacts Repository
deployment pipeline
                      Build Source (SVN, Backups)

                      Acceptance      Performance
     Commit                                                    Release
               auto   Test Stage auto      Test       manual
      Stage             (latest)          Stage                 Stage


                               manual
                                        Manual Test
Version_1234                              Stage




                       Artifacts Repository
deployment pipeline
                      Build Source (SVN, Backups)

                      Acceptance      Performance
     Commit                                                     Release
               auto   Test Stage auto      Test        manual
      Stage             (latest)          Stage                  Stage


                                manual
                                         Manual Test
Version_1234                               Stage

                              Build Downstream



                       Artifacts Repository
deployment pipeline
                      Build Source (SVN, Backups)

                      Acceptance      Performance
     Commit                                                     Release
               auto   Test Stage auto      Test        manual
      Stage             (latest)          Stage                  Stage


                                manual
                                         Manual Test
Version_1234                               Stage

                              Build Downstream
                                 Feedback

                       Artifacts Repository
view on artifact repository
the commit stage


•   <5min: Run Unit Tests asap

•   <10 min: Build Project (clean, build)

•   Result:

         •    store all binaries required for deployment

         •    package + releasenotes + unittest xml + deploy scripts
build only one package


•   pull configuration setting for environment on deploy

•   be able to rebuild any build by specifying the project revision
acceptance stage
acceptance stage

• Define   tests in domain specific language
acceptance stage

• Define   tests in domain specific language

• Deployment   to Environment „latest“ or „UAT“
acceptance stage

• Define    tests in domain specific language

• Deployment     to Environment „latest“ or „UAT“

• Run   additional Unit-Test (integration...)
acceptance stage

• Define    tests in domain specific language

• Deployment     to Environment „latest“ or „UAT“

• Run   additional Unit-Test (integration...)

• Run   Selenium Tests
Continuous deployment
Release
Continuous deployment
Source Code
Configuration



               Source Code
Environments



Configuration



               Source Code
Environments



Configuration                  Data


               Source Code
SVN structure for TYPO3

<projectname>
 branches
 tags
                   build scripts (ant)
 trunk
   build
   scripts
   htdocs
     typo3conf   Extensions dependencies
                          are linked
                     (e.g. svn.external)
TYPO3 configuration

- Domains:
  - sys_domain
  - template: config.baseUrl
- localconf.php
  - Database
  - Extensionsettings
  - Loglevel / Devcontext / Logfiles ...
Environments (example)
 dev x    latest   test (UAT)




                   production
Environments (example)
 dev x    latest   test (UAT)


                   performance




                   production
Environments (example)
 dev x    latest   test (UAT)


                   performance


                   integration


                   production
Environments (example)
 dev x    latest     test (UAT)


                     performance


                     integration


             stage   production
managing data
managing data




Production:
- Content
- Transaction data
managing data




Production:          Deploy:
- Content            - Configuration
- Transaction data   - Content
managing data




Production:          Deploy:          UAT:
- Content            - Configuration   - Testdata
- Transaction data   - Content
managing data
                                      Backupstorage




Production:          Deploy:             UAT:
- Content            - Configuration      - Testdata
- Transaction data   - Content
managing data
                                      Backupstorage




Production:          Deploy:             UAT:
- Content            - Configuration      - Testdata
- Transaction data   - Content
managing data
                                      Backupstorage




   use independent technical IDs


Production:          Deploy:             UAT:
- Content            - Configuration      - Testdata
- Transaction data   - Content
Hot Deployment
what to deploy?

-   database structure changes
-   configuration data
-   updated content
-   source code
build steps
Preparation       SVN


Filesystem
              backupstorage


Database



Package
build steps
Preparation:
- clean
- revision Tag extensions
build steps

Filesystem:
- checkout project from SVN
- build TYPO3 source
- get defined extensions
- get assets (fileadmin / uploads)
- create a version file
build steps
Database:
- create structure from Master
- import master data
- update database structure
- import data from the systems
- merge data
build steps
Database:
- create structure from Master
- import master data
- update database structure
- import data from the systems
- merge data


                                 structure_up.sql
                                       merge.sql
package

Package (Delta):
- use files from build process
+ create filesystem delta
+ tar.gz all the stuff
deploying a package
- Deploy Database:
  - structure_up.sql
  - merge.sql
  - all full-*.sqls
- Deploy Filesystem
- Apply environment Settings
- Clear Cache
- Run Crawler
...
useful extensions

- clearcache      (enables „clear all cache“ from
commandline)

- db_sequenzer           (seperate technical ids as basis for
merges)

- t3deploy     (cli access to installtool > database compare)
green / blue deployment


   current live
     version
                  previous live
                    version
green / blue deployment


   current live
     version
                  previous live
                    version
                                  Deploy
green / blue deployment


                  previous live
                    version
   current live
     version
                                  Deploy
Hudson
Hudson
Hudson
Hudson
is your deployment still a
         gamble?
is your deployment still a
         gamble?

More Related Content

ZIP
Continuous Deployment: Startup Lessons Learned
PDF
Continuous Integration, Continuous Quality, Continuous Delivery
PDF
Principles and Practices in Continuous Deployment at Etsy
PDF
Continuous Deployment at Etsy — TimesOpen NYC
PDF
Continuous Deployment: Beyond Continuous Delivery
PDF
Continuous delivery @åf consult
PDF
How We Build Features
PDF
Ash sxsw
Continuous Deployment: Startup Lessons Learned
Continuous Integration, Continuous Quality, Continuous Delivery
Principles and Practices in Continuous Deployment at Etsy
Continuous Deployment at Etsy — TimesOpen NYC
Continuous Deployment: Beyond Continuous Delivery
Continuous delivery @åf consult
How We Build Features
Ash sxsw

What's hot (19)

PDF
The Eclipse Way
ODP
Continuous deployment-at-flipkart
PPTX
Qa in CI/CD
PDF
Continuous Delivery: The Dirty Details
PDF
Distributed Release Management
PPTX
Agile Evolution
PPTX
Continuous Delivery
PDF
Continuous integration
PPTX
Continuous Delivery Applied (AgileDC)
PDF
Continuous Delivery Distilled
PDF
"DevOps > CI+CD "
PDF
Monitoring 改造計畫:流程觀點
PDF
Introduction to DevOps Tools | DevOps Training | DevOps Tutorial for Beginner...
PDF
Mobile Apps development best practices. TDD, CI, CD
PPT
Continuous integration
PDF
TMF2014 CI-CD Workshop Michael Palotas
 
PDF
Unleashing the Power of Automated Refactoring with JDT
PDF
Enabling Agile Testing Through Continuous Integration Agile2009
PDF
NIWeek 2012: Secret Sauce / Tools to Make You a Better LabVIEW Developer
 
The Eclipse Way
Continuous deployment-at-flipkart
Qa in CI/CD
Continuous Delivery: The Dirty Details
Distributed Release Management
Agile Evolution
Continuous Delivery
Continuous integration
Continuous Delivery Applied (AgileDC)
Continuous Delivery Distilled
"DevOps > CI+CD "
Monitoring 改造計畫:流程觀點
Introduction to DevOps Tools | DevOps Training | DevOps Tutorial for Beginner...
Mobile Apps development best practices. TDD, CI, CD
Continuous integration
TMF2014 CI-CD Workshop Michael Palotas
 
Unleashing the Power of Automated Refactoring with JDT
Enabling Agile Testing Through Continuous Integration Agile2009
NIWeek 2012: Secret Sauce / Tools to Make You a Better LabVIEW Developer
 
Ad

Viewers also liked (6)

PDF
Improving software quality using Continuous Integration
PPTX
Introduction to strategy deployment
PDF
Continuous Integration
PPT
CI and CD with Jenkins
PPTX
Continuous Integration: a bittersweet love story by Suzie Prince
PDF
Continuous Deployment Pipeline for Systems at Cascadia IT Conference - 2017-0...
Improving software quality using Continuous Integration
Introduction to strategy deployment
Continuous Integration
CI and CD with Jenkins
Continuous Integration: a bittersweet love story by Suzie Prince
Continuous Deployment Pipeline for Systems at Cascadia IT Conference - 2017-0...
Ad

Similar to Continuous deployment (20)

PPTX
Linuxtag 2012 - continuous delivery - dream to reality
PDF
Continuous Delivery
KEY
Continuous Delivery
PPTX
Continuous Delivery Applied (Agile Richmond)
PPTX
Continuous Delivery Applied
PPTX
Continuous Delivery Applied
PPTX
ALM Summit 3 - Setting up a Continuous Delivery Deployment Pipeline with TFS
PPTX
Continuous delivery applied (DC CI User Group)
PDF
Hudson: from build jobs to build pipelines
PPTX
Continuous delivery applied (RJUG)
PPTX
Continuous Delivery in the real world - techniques to reduce the developers b...
PPTX
Continuous delivery applied
PPT
PowerPoint Presentation
PPTX
Continuous delivery chernivcy
PDF
Automated Deployment with Maven - going the whole nine yards
PPTX
Tce automation-d4
PDF
Continuous delivery-with-maven
PDF
Continuous Deployment – Nextdoor.fi released every day at Scan-Agile 2011
PPTX
Architecting for continuous delivery (33rd Degree)
PPTX
Anatomy of a Build Pipeline
Linuxtag 2012 - continuous delivery - dream to reality
Continuous Delivery
Continuous Delivery
Continuous Delivery Applied (Agile Richmond)
Continuous Delivery Applied
Continuous Delivery Applied
ALM Summit 3 - Setting up a Continuous Delivery Deployment Pipeline with TFS
Continuous delivery applied (DC CI User Group)
Hudson: from build jobs to build pipelines
Continuous delivery applied (RJUG)
Continuous Delivery in the real world - techniques to reduce the developers b...
Continuous delivery applied
PowerPoint Presentation
Continuous delivery chernivcy
Automated Deployment with Maven - going the whole nine yards
Tce automation-d4
Continuous delivery-with-maven
Continuous Deployment – Nextdoor.fi released every day at Scan-Agile 2011
Architecting for continuous delivery (33rd Degree)
Anatomy of a Build Pipeline

Recently uploaded (20)

PPTX
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PDF
Review of recent advances in non-invasive hemoglobin estimation
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PPTX
Cloud computing and distributed systems.
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PDF
NewMind AI Monthly Chronicles - July 2025
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
Approach and Philosophy of On baking technology
PDF
KodekX | Application Modernization Development
PPT
Teaching material agriculture food technology
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PDF
Modernizing your data center with Dell and AMD
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
Digital-Transformation-Roadmap-for-Companies.pptx
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
The Rise and Fall of 3GPP – Time for a Sabbatical?
Per capita expenditure prediction using model stacking based on satellite ima...
20250228 LYD VKU AI Blended-Learning.pptx
Review of recent advances in non-invasive hemoglobin estimation
NewMind AI Weekly Chronicles - August'25 Week I
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Cloud computing and distributed systems.
“AI and Expert System Decision Support & Business Intelligence Systems”
NewMind AI Monthly Chronicles - July 2025
Encapsulation_ Review paper, used for researhc scholars
Advanced methodologies resolving dimensionality complications for autism neur...
Approach and Philosophy of On baking technology
KodekX | Application Modernization Development
Teaching material agriculture food technology
Reach Out and Touch Someone: Haptics and Empathic Computing
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
Modernizing your data center with Dell and AMD

Continuous deployment

Editor's Notes

  • #3: cycle time = time a change in your code takes to be deployed on live (in a reliable (includes testing) and repeatable way) reduced cycle time = improved competitive
  • #6: (thats not me :-)
  • #22: without CI the default state of your application is &amp;#x201E;broken&amp;#x201C; unless you prove otherwise... with COIN the project default state is working with a certain level of confidence...
  • #23: without CI the default state of your application is &amp;#x201E;broken&amp;#x201C; unless you prove otherwise... with COIN the project default state is working with a certain level of confidence...
  • #24: without CI the default state of your application is &amp;#x201E;broken&amp;#x201C; unless you prove otherwise... with COIN the project default state is working with a certain level of confidence...
  • #25: without CI the default state of your application is &amp;#x201E;broken&amp;#x201C; unless you prove otherwise... with COIN the project default state is working with a certain level of confidence...
  • #107: Hudson + Plugins gives you a lot of possibilities (e.g. &amp;#x201E;promoted builds&amp;#x201C; &amp;#x201E;parameterized build&amp;#x201C;, &amp;#x201E;build downstreams&amp;#x201C;, share properties ...)
  • #108: Hudson + Plugins gives you a lot of possibilities (e.g. &amp;#x201E;promoted builds&amp;#x201C; &amp;#x201E;parameterized build&amp;#x201C;, &amp;#x201E;build downstreams&amp;#x201C;, share properties ...)
  • #109: Hudson + Plugins gives you a lot of possibilities (e.g. &amp;#x201E;promoted builds&amp;#x201C; &amp;#x201E;parameterized build&amp;#x201C;, &amp;#x201E;build downstreams&amp;#x201C;, share properties ...)