The Future of Deployment Pipeline

Deployment Pipeline

  • Repeatable way to build, test, promote, and release software
  • A component of – but not sufficient for – self-serve CI
  • A component of – but not sufficient for – Continuous De/livery/ployment (CD)

Session Goals

  • Show off what we’ve done so far, show you what the current pipeline can do for you
  • Get feedback on our current implementation to help inform future iterations
  • Point more folks to the design work we’ve done for future iterations

Some stats

  • 15 projects in production from the pipeline
  • 19 projects using it for testing

CI Abstractions

  • Define requirements, tests, and artifacts: .pipeline/blubber.yaml
  • Define how tests run: .pipeline/config.yaml

Deployment Abstractions

  • helm
  • deployment-charts

Walkthrough

Define a test entrypoint

.pipeline/blubber.yaml

Tell the pipeline to run the test entrypoint

.pipeline/config.yaml

Let’s add linting as well

.pipeline/blubber.yaml

…run in parallel

.pipeline/config.yaml

Current Status

Today

  • Everything you’ve seen so far works right now
  • Getting it into CI involves poking RelEng
  • Deploying into production involves poking ServiceOps SRE

Future

  • Future CI WG
  • ArgoCI

Shortcomings

Known unknowns

  • Integration tests
  • Language support
  • Security embargoes/patches
  • mediawiki support

What’s needed?