Continuous Delivery


the good, the bad and the ugly

Expectations


personal opinion

ideas

challenge

inspire

continuous:

incremental, iterative, fast

delivery:

measure and learn

embrace failure

it hurts

so we do it often

Code

no VCS is no go

💩💩💩

perspectives:


OSS community

product teams

quality gates

postpone feedback

    avoid branches

    put quality gates after commit

    write meaningful commit messages

    rebase!

    tag commits

Build

manual build is no go

💩💩💩

manual CI configuration


is only so much better

run same CI build
locally

automate everything


I mean everything

    CI cofiguration in VCS

    CI provisioning

Package

just use packages, ok?

packages are immutable

packages are reusable

    install packages locally

    see packages as event-sourced snapshots

Deploy

manual deployment is no go

💩💩💩

prevent


fix

    configuration as code

    immutable server

    idempotent deployment

Test

no silver bullet here

it’s hard

so do it often

    automate

    pipe artifacts through quality gates

Visualize

build status

what is deployed where?

why so static?

measure and learn


metrics, KPIs?

The Way

release when it’s done

Ask forgiveness


not permission

learn from failures

and adapt