Continuous Delivery

you think you really doing it?

BUILD THINGS RIGHT

build right things 

Continuous  Deployment

Continuous  Delivery

Continuous  Testing

Continuous  Planning

Continuous  Integration

Continuous  Building

Continuous  Refactoring

of course it's all continuous

Your process is circle!

Continious delivery

delivery value in safe and predictable way

  • Build quality in
  • Work in small batches
  • Computers perform repetitive tasks,
    people solve problems
  • Relentlessly pursue continuous improvement
  • Everyone is responsible

Principles

Foundation

Continuous Management

Continuous Integration

Continuous Testing

continious managment

Reproducibility and TRACEABILITY of your environments

Infrastructure as code

Clouds

Containers

K8s

Serverless

Continious testing

are you doing
Continuous Integration?

  1. Are all the engineers pushing their code into trunk / master (not feature branches) on a daily basis? 
  2. Does every commit trigger a run of the unit tests? 
  3. When the build is broken, is it typically fixed within 10 minutes?

Why push daily?

reduce size of changes

all your changes should be deployable

feature toggles

if (featureEnabled('some-cool-new-feature')) {
    // do stuff
}

A/B testing

Tests on production

All features available everywhere

Branch by abstraction

Don't know how to split feature?

How about throw away code?

Trunk based development

Trunk based development

Code Review

is just async pair programming

  • Use real pair programming
  • Review commits in master
  • one-day pull requests