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

De 10 geboden van Continuous Delivery

De 10 geboden van Continuous Delivery

De 10 geboden van Continuous Delivery

Erwin Staal

June 29, 2017
Tweet

More Decks by Erwin Staal

Other Decks in Technology

Transcript

  1. Waarom Continuous Delivery? • Sneller leveren • Minder merge conflicten

    • Minder risico bij releases • Minder bugs • Vroegtijdig feedback • Geloofwaardige voortgang
  2. Continuous Integration • Je hebt een geautomatiseerde integratie flow •

    Het werkend houden van deze flow heeft de hoogste prioriteit • Je merged vaak naar master, minimaal eens per dag
  3. Continuous Delivery • Je doet al aan Continuous Integration •

    Je kunt push-button deployments doen van elke versie naar elke omgeving op elk gewenst moment • Je prioriteert het deploybaar houden van je software boven het bouwen van nieuwe features • Iedereen kan snel en geautomatiseerd feedback krijgen over de staat van zijn wijziging
  4. Gij zult refactoren “Any fool can write code that a

    computer can understand. Good programmers write code that humans can understand.” - Martin Fowler
  5. Gij zult uw eigen pipeline bouwen Commit Stage Compile Unit

    test Analysis Build Installers Automated Acceptance Testing Automated Capacity Testing Manual Testing Exploratory Testing Release Monitoring
  6. Gij zult uw pipeline als code definiëren function findOrCreateBuild(account, teamProject,

    token, que dockerHostEndpoint, dockerRegistryEndpoint) { util.tryFindBuild(account, teamProject, token, target, f if (e) { callback(e); } if (!bld) { createBuild(account, teamProject, token, queueId, dockerHostEndpoint, dockerRegistryEndpoint); } else { gen.log(`+ Found build definition`); } }); }
  7. Gij zult uw infrastructuur als code definiëren Configuration ServerConfig {

    Import-DscResource -Module xWebAdministration Node "webserver" { WindowsFeature installIIS { Ensure="Present" Name="Web-Server" } WindowsFeature installWebAspNet45 { Ensure="Present" Name="Web-Asp-Net45" } } }
  8. Trunk 2 2 3 4 2 3 1 1 1

    1 4 5 2 3 1 2 1 3 2 1 1 4 3 2 Gij zult enkel naar master mergen
  9. Merge Merge Trunk 2 2 3 4 2 3 1

    1 1 1 4 5 2 3 1 2 1 3 2 1 1 4 3 2 1 4 3 2 1 4 5 2 3 Gij zult enkel naar master mergen
  10. Trunk 1 2 3 4 5 1 1 3 4

    2 4 5 2 1 3 2 4 3 Gij zult enkel naar master mergen