Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Continuous Deployment

Continuous Deployment

Martin Shwalbe

June 15, 2013
Tweet

More Decks by Martin Shwalbe

Other Decks in Programming

Transcript

  1. CONTINUOUS INTEGRATION "Continuous Integration is a software development practice where

    members of a team integrate their work frequently" -- Martin Fowler
  2. ADVANTAGES Continously integrate new code with the existing code repository

    All tests run at each integration cycle Immidiate Feedback of code quality through Metrics Constant availability of a deployable source Increased Visibility
  3. CONTINUOUS INTEGRATION Continuous Integration without tests does not work Start

    developing tests Write tests for each new identified bug Develop tests for each new feature
  4. UI UPGRADES Keep visible feature changes hidden until they are

    ready i f ( $ c o n f i g . f e a t u r e ) { / / S h o w s o m e c o o l n e w s t u f f } e l s e { / / S h o w o l d b o r i n g s t u f f }
  5. DATABASE UPGRADE Synchronize Database and Code on deployment Apply Non

    Destructive Upgrades Make Schema changes Downgradable
  6. DESTRUCTIVE DATABASE UPGRADE Destructive changes need a bit more care,

    the degree of which depends on the degree of destruction involved