CONTINUOUS DELIVERY
„WHETHER YOU THINK YOU CAN, OR YOU THINK YOU CAN’T… YOU’RE RIGHT”
BY HENRY FORD
WHO AM I?
• Quality software engineer
• Working in Kanban team (4 +5 people)
• Working on a middleware project
integrating banking front office with
backend systems
AGENDA
• Terminology – continuous integration/delivery/deployment
• Why should you care?
• Prerequisites
• Implementation
• Beware of pipeline dependencies
• Continuous deployment aka Zero down time deployment
CONTINUOUS…
• … Integration
• Merge changes to master/trunk at least daily
• You cannot merge to master/trunk if your code does not compile
• … Delivery
• Merge changes to master/trunk only if complete set of tests passed
• Make sure that you feel comfortable with deploying the artefact that
passed CD pipeline
• … Deployment
• Deploy to production at least daily
REALITY
• Continuously red night-builds
• Continuous analysis of the build result
• Continuous chasing for the guilty
• Continuous feeling of being a trouble-
maker
• Continuous manual regression
• Hardening iterations
• Continuous Delivery/Deployment
ENABLING "THE CONTINUOUS"
"DON'T DEMAND PERFECTION BUT INSIST ON
CONTINUOUS IMPROVEMENT" BY ANONYMOUS
• Scripts used to build environment
• Scripts used to build application
• Scripts used to deploy application
• Unit/Integration/System/Performance tests
PIPELINE HIGH LEVEL
PullReq Triggers Builds
Delivery Pipeline Plugin
PIPELINE DEPENDENCIES
• Upstream pipelines trigger downstream
• Dependency classification
• Static
• Fluid
• Guarded
ZERO DOWNTIME
• Blue-green deployment
ZERO DOWNTIME
• Blue-green deployment
• Canary deployment
• A bit more about „how”?
• „Expand and contract” pattern
• Non breakable changes
THANK YOU
REMIGIUSZ DUDEK

CountinuousDelivery

  • 1.
    CONTINUOUS DELIVERY „WHETHER YOUTHINK YOU CAN, OR YOU THINK YOU CAN’T… YOU’RE RIGHT” BY HENRY FORD
  • 2.
    WHO AM I? •Quality software engineer • Working in Kanban team (4 +5 people) • Working on a middleware project integrating banking front office with backend systems
  • 3.
    AGENDA • Terminology –continuous integration/delivery/deployment • Why should you care? • Prerequisites • Implementation • Beware of pipeline dependencies • Continuous deployment aka Zero down time deployment
  • 4.
    CONTINUOUS… • … Integration •Merge changes to master/trunk at least daily • You cannot merge to master/trunk if your code does not compile • … Delivery • Merge changes to master/trunk only if complete set of tests passed • Make sure that you feel comfortable with deploying the artefact that passed CD pipeline • … Deployment • Deploy to production at least daily
  • 5.
    REALITY • Continuously rednight-builds • Continuous analysis of the build result • Continuous chasing for the guilty • Continuous feeling of being a trouble- maker • Continuous manual regression • Hardening iterations • Continuous Delivery/Deployment
  • 6.
    ENABLING "THE CONTINUOUS" "DON'TDEMAND PERFECTION BUT INSIST ON CONTINUOUS IMPROVEMENT" BY ANONYMOUS • Scripts used to build environment • Scripts used to build application • Scripts used to deploy application • Unit/Integration/System/Performance tests
  • 7.
  • 8.
  • 10.
    PIPELINE DEPENDENCIES • Upstreampipelines trigger downstream • Dependency classification • Static • Fluid • Guarded
  • 11.
  • 12.
    ZERO DOWNTIME • Blue-greendeployment • Canary deployment • A bit more about „how”? • „Expand and contract” pattern • Non breakable changes
  • 14.

Editor's Notes

  • #11 Static – changes in static upstream dependencies does not trigger downstream builds Fluid – changes in fluid dependencies trigger downstream builds alwas Guarded – if build for given fluid dependency failed, the dependency is set to last known good one and it is marked as guarded