127
ennPope - https://www.flickr.com/photos/89629638@N06 Delivery Engines (software & spaceflight) Max Lincoln

Delivery Engines: Software & Spaceflight

Embed Size (px)

Citation preview

Page 1: Delivery Engines: Software & Spaceflight

cc: GlennPope - https://www.flickr.com/photos/89629638@N06

Delivery Engines(software & spaceflight)

Max Lincoln

Page 2: Delivery Engines: Software & Spaceflight

JIM HIGHSMITH - VELOCITY IS KILLING AGILITY

▸ Focusing on [velocity] detracts from the quality of the customer experience delivered and investing enough in the delivery engine (technical quality).

▸ Giving the product owner/manager complete priority control … skews the balance of investing in new features versus the delivery engine.

▸ investment in the delivery engine is as critical as investing in new features.

▸ Management needs to allocate resources between features and engine work

Page 3: Delivery Engines: Software & Spaceflight
Page 4: Delivery Engines: Software & Spaceflight

SPACEFLIGHTACHIEVEMENTS

Page 5: Delivery Engines: Software & Spaceflight

MANNED MISSIONS

Page 6: Delivery Engines: Software & Spaceflight
Page 7: Delivery Engines: Software & Spaceflight
Page 8: Delivery Engines: Software & Spaceflight
Page 9: Delivery Engines: Software & Spaceflight
Page 10: Delivery Engines: Software & Spaceflight
Page 11: Delivery Engines: Software & Spaceflight
Page 12: Delivery Engines: Software & Spaceflight
Page 13: Delivery Engines: Software & Spaceflight
Page 14: Delivery Engines: Software & Spaceflight
Page 15: Delivery Engines: Software & Spaceflight
Page 16: Delivery Engines: Software & Spaceflight
Page 17: Delivery Engines: Software & Spaceflight
Page 18: Delivery Engines: Software & Spaceflight
Page 19: Delivery Engines: Software & Spaceflight
Page 20: Delivery Engines: Software & Spaceflight

SATELLITES & PROBES

Page 21: Delivery Engines: Software & Spaceflight
Page 22: Delivery Engines: Software & Spaceflight
Page 23: Delivery Engines: Software & Spaceflight
Page 24: Delivery Engines: Software & Spaceflight
Page 25: Delivery Engines: Software & Spaceflight
Page 26: Delivery Engines: Software & Spaceflight

ROVERS

Page 27: Delivery Engines: Software & Spaceflight
Page 28: Delivery Engines: Software & Spaceflight

INVESTMENT IN DELIVERY

Page 29: Delivery Engines: Software & Spaceflight
Page 30: Delivery Engines: Software & Spaceflight
Page 31: Delivery Engines: Software & Spaceflight
Page 32: Delivery Engines: Software & Spaceflight
Page 33: Delivery Engines: Software & Spaceflight
Page 34: Delivery Engines: Software & Spaceflight
Page 35: Delivery Engines: Software & Spaceflight
Page 36: Delivery Engines: Software & Spaceflight

PIPELINESSTAGE 1

Page 37: Delivery Engines: Software & Spaceflight

You’re doing continuous delivery when:

Your software is releasable throughout its lifecycle;

Your team prioritizes keeping the software releasable over working on new features;

Anybody can get fast, automated feedback on the production readiness of your systems any time somebody makes a change to them;

You can perform push-button releases of any version of the software on demand.

Page 38: Delivery Engines: Software & Spaceflight
Page 39: Delivery Engines: Software & Spaceflight

PIPELINE BUILDING BLOCKS

Page 40: Delivery Engines: Software & Spaceflight

Material (Version Control)

Git

Page 41: Delivery Engines: Software & Spaceflight

Job

Git BuildBuildBuild

Page 42: Delivery Engines: Software & Spaceflight

Stage

Git

BuildBuild

Build

LintLint

Page 43: Delivery Engines: Software & Spaceflight

BuildBuild

Lint

Pipeline

GitBuild

Publish

Upload

Page 44: Delivery Engines: Software & Spaceflight

Artifact Repo

Git

BuildBuild

Lint

Build

PublishUpload

Artifacts

Publish

Upload

Page 45: Delivery Engines: Software & Spaceflight

Git BuildBuild

Artifacts

Publish

Page 46: Delivery Engines: Software & Spaceflight

BuildBuild

Artifacts

Publish

AcceptanceDeploy Test

ExploratoryDeploy

Page 47: Delivery Engines: Software & Spaceflight

BuildBuild Publish

AcceptanceDeploy Test

ExploratoryDeploy

ProdDeploy

Page 48: Delivery Engines: Software & Spaceflight

GOOD PIPELINES:

- Incremental quality assurance- Fast feedback to the right people- Visibility and shared understanding of the progress of a release candidate- A consistent and auditable software delivery process

Page 49: Delivery Engines: Software & Spaceflight

AND SCALING CHALLENGES:

Page 50: Delivery Engines: Software & Spaceflight

X-AXIS:SCALING MORE STAGES

Page 51: Delivery Engines: Software & Spaceflight

ProdSource

HOW SIMPLE CAN YOU GET?

Page 52: Delivery Engines: Software & Spaceflight

Source Prod

HOW SIMPLE CAN YOU GET?

TestBuild

Page 53: Delivery Engines: Software & Spaceflight

Source Prod

HOW SIMPLE CAN YOU GET?

TestBuild

Page 54: Delivery Engines: Software & Spaceflight

Source Prod

HOW SIMPLE CAN YOU GET?

TestBuild

feedback

Page 55: Delivery Engines: Software & Spaceflight

Source Prod

MOAR TESTING

TestBuild QA

feedback

Page 56: Delivery Engines: Software & Spaceflight

Source Prod

HMM…

TestBuild QA PerfSec

culture feedback governance

Page 57: Delivery Engines: Software & Spaceflight

Source Prod

HMM…

TestBuild QA PerfSec

culture

governance

Page 58: Delivery Engines: Software & Spaceflight

Source Prod

Test

Build

QA Perf

Sec

Page 59: Delivery Engines: Software & Spaceflight

Source Prod

Test

Build

QA Perf

Sec

PARALLELISM

Page 60: Delivery Engines: Software & Spaceflight

Source ProdBuild Test

Int

QA

Sec

Perf

Page 61: Delivery Engines: Software & Spaceflight

X-AXIS: PATTERNS

Page 62: Delivery Engines: Software & Spaceflight

SIMPLE LINEAR

Page 63: Delivery Engines: Software & Spaceflight

SIMPLE PARALLEL

feedback

Page 64: Delivery Engines: Software & Spaceflight

LAYERED

culture

Page 65: Delivery Engines: Software & Spaceflight

LAYERED w/ ARTIFACT PROMOTION

governance culture

Page 66: Delivery Engines: Software & Spaceflight

RELEASE CHANNELS

feedback

Page 67: Delivery Engines: Software & Spaceflight

X-AXIS:SCALING MORE STAGES

Page 68: Delivery Engines: Software & Spaceflight

Y-AXIS:SCALING MORE PROJECTS

X-AXIS:SCALING MORE STAGES

Page 69: Delivery Engines: Software & Spaceflight

Z-AXIS:CONCURRENT RELEASES

Y-AXIS:SCALING MORE PROJECTS

X-AXIS:SCALING MORE STAGES

Page 70: Delivery Engines: Software & Spaceflight

Tips• Model & share you pipeline first

• Automate all that you can

• Always look for the “bottleneck” and make improvements

• https://github.com/thoughtworks/PipelinePatterns

Page 71: Delivery Engines: Software & Spaceflight

ANY IMPROVEMENTS MADE ANYWHERE BESIDES THE BOTTLENECK ARE AN ILLUSIONTheory of Constraints

(Paraphrased in The Phoenix Project)

Page 72: Delivery Engines: Software & Spaceflight

TOGGLESSTAGE 2

Page 73: Delivery Engines: Software & Spaceflight
Page 74: Delivery Engines: Software & Spaceflight
Page 75: Delivery Engines: Software & Spaceflight

CTOGGLES

"Don't worry. If you flip the wrong one you die. No pressure."

Page 76: Delivery Engines: Software & Spaceflight

Knight Capital• Costliest bug ever?

• Lost $172,222 per second

• Lost $440m in 30 minutes

Page 77: Delivery Engines: Software & Spaceflight

ASSUMPTIONS

Page 78: Delivery Engines: Software & Spaceflight

TOGGLE STATES

•On or off•Off by default•Off = previously released behavior

Opt-in

Page 79: Delivery Engines: Software & Spaceflight

TOGGLE LIFECYCLE

•Similar to cards•Defined transitions

QA

Page 80: Delivery Engines: Software & Spaceflight

TOGGLE IDS

•Same = approved together•Cannot reuse once accepted

No “rider

s”

Page 81: Delivery Engines: Software & Spaceflight

DEV QA PROD

v2 v2 v1

Feature A ON ON ON

Feature B OFF OFF ON

Feature C ON OFF OFF

Feature D OFF ON OFF

Page 82: Delivery Engines: Software & Spaceflight

HOW?

Page 83: Delivery Engines: Software & Spaceflight

ENVIRONMENT MAPPING

Page 84: Delivery Engines: Software & Spaceflight
Page 85: Delivery Engines: Software & Spaceflight
Page 86: Delivery Engines: Software & Spaceflight

DERIVING STATES

Page 87: Delivery Engines: Software & Spaceflight

R1 (WIP) R2 (DONE) R3 (READY)

env criteria

CI >= WIP ON ON ON

SHOWCASE >= WIP ON ON ON

DEV1 >= WIP ON ON ON

DEV2 >= WIP ON ON ON

QA RELEASE >= READY OFF OFF ON

QA Next >= DONE OFF ON ON

Perf >= DONE OFF ON ON

Security >= DONE OFF ON ON

Prod >= READY OFF OFF ON

DR >= READY OFF OFF ON

Page 88: Delivery Engines: Software & Spaceflight

R1 (WIP) R2 (DONE) R3 (READY)

env criteria

CI >= WIP ON ON ON

SHOWCASE >= WIP ON ON ON

DEV1 >= WIP ON ON ON

DEV2 >= WIP ON ON ON

QA RELEASE >= READY OFF OFF ON

QA Next >= DONE OFF ON ON

Perf >= DONE OFF ON ON

Security >= READY ON ON ON

Prod >= READY OFF OFF ON

DR >= READY OFF OFF ON

Page 89: Delivery Engines: Software & Spaceflight

R1 (WIP) R2 (DONE) R3 (READY)

env criteria

CI >= WIP ON ON ON

SHOWCASE >= WIP ON ON ON

DEV1 >= WIP ON ON ON

DEV2 >= WIP ON ON ON

QA RELEASE >= READY OFF OFF ON

QA Next >= DONE OFF ON ON

Perf >= DONE OFF ON ON

Security >= READY ON ON ON

Prod >= READY OFF OFF FORCE OFF

DR >= READY OFF OFF ON

Page 90: Delivery Engines: Software & Spaceflight

Tips• Toggles exist to protects

developers & business from an “accidental release”

• Practice while it’s still safe to make mistakes

• Toggles avoid the need for “merging strategies”

Page 91: Delivery Engines: Software & Spaceflight

COMMUNITIES

STAGE 3

Page 92: Delivery Engines: Software & Spaceflight

EVEN WITH THE BEST TOOLS, DEVOPS IS JUST ANOTHER BUZZWORD IF YOU DON'T HAVE THE RIGHT CULTURE.Rouan Wilsenach

http://martinfowler.com/bliki/DevOpsCulture.html

Page 93: Delivery Engines: Software & Spaceflight

HOW CAN WE BUILD DEVOPS-

FRIENDLYCOMMUNITIES?

Page 94: Delivery Engines: Software & Spaceflight

SMALL, ALIGNED TEAMS

Page 95: Delivery Engines: Software & Spaceflight

AMAZON: TWO PIZZA TEAM

SIZE & ALIGNMENT

Page 96: Delivery Engines: Software & Spaceflight
Page 97: Delivery Engines: Software & Spaceflight

CONWAY'S LAW: ORGANIZATIONS ARE CONSTRAINED TO PRODUCE APPLICATION DESIGNS WHICH ARE COPIES OF THEIR COMMUNICATION STRUCTURES.INVERSE CONWAY MANEUVER: EVOLVE YOUR TEAM AND ORGANIZATIONAL STRUCTURE TO PROMOTE YOUR DESIRED ARCHITECTURE.

ThoughtWorks Tech Radar

INVERSE CONWAY MANEUVER

Page 98: Delivery Engines: Software & Spaceflight

AS PART OF BIGGER

COMMUNITIES

Page 99: Delivery Engines: Software & Spaceflight

SPOTIFY: SCALING AGILE

Page 100: Delivery Engines: Software & Spaceflight

TW OFFICES: DUNBAR’S NUMBER

SIZE & ALIGNMENT

Page 101: Delivery Engines: Software & Spaceflight

IN FAIL-SAFE

ENVIRONMENTS

Page 102: Delivery Engines: Software & Spaceflight
Page 103: Delivery Engines: Software & Spaceflight
Page 104: Delivery Engines: Software & Spaceflight

THAT ARE PREPARED FOR FIRES

Page 105: Delivery Engines: Software & Spaceflight
Page 106: Delivery Engines: Software & Spaceflight

Tips• DevOps will not thrive without the

right community / culture

• The most important thing is small, cross-functional teams

• … that collaborate with other teams

Page 107: Delivery Engines: Software & Spaceflight

PLATFORMSSTAGE 4

Page 108: Delivery Engines: Software & Spaceflight

WTF IS A PLATFORM?

Page 109: Delivery Engines: Software & Spaceflight

EVERYONE HAS A DIFFERENT IDEA

ABOUT WHAT THE PLATFORM IS, BUT

OBVIOUSLY I’M ALWAYS RIGHT :PARCHITECT

Page 110: Delivery Engines: Software & Spaceflight

?“Platform Engineering

Team”

PAAS

Page 111: Delivery Engines: Software & Spaceflight

PLATFORMS ARE THINGS THAT WE BUILD SOFTWARE ON TOP OF: MOBILE TECHNOLOGIES LIKE ANDROID, VIRTUAL PLATFORMS LIKE THE JVM, OR GENERIC KINDS OF PLATFORMS LIKE HYBRID CLOUDS.

TW DEFINITION

Page 112: Delivery Engines: Software & Spaceflight

• THE CAPABILITY PROVIDED TO THE CONSUMER IS TO DEPLOY ONTO THE CLOUD INFRASTRUCTURE CONSUMER-CREATED OR ACQUIRED APPLICATIONS CREATED USING PROGRAMMING LANGUAGES, LIBRARIES, SERVICES, AND TOOLS SUPPORTED BY THE PROVIDER.

• THE CONSUMER DOES NOT MANAGE OR CONTROL THE UNDERLYING CLOUD INFRASTRUCTURE INCLUDING NETWORK, SERVERS, OPERATING SYSTEMS, OR STORAGE, BUT HAS CONTROL OVER THE DEPLOYED APPLICATIONS AND POSSIBLY CONFIGURATION SETTINGS FOR THE APPLICATION-HOSTING ENVIRONMENT.

NIST

PAAS

Page 113: Delivery Engines: Software & Spaceflight

THE CAPABILITY PROVIDED TO THE CONSUMER IS TO DEPLOY ONTO THE CLOUD INFRASTRUCTURE CONSUMER-CREATED OR ACQUIRED APPLICATIONS CREATED USING PROGRAMMING LANGUAGES, LIBRARIES, SERVICES, AND TOOLS SUPPORTED BY THE PROVIDER.THE CONSUMER DOES NOT MANAGE OR CONTROL THE UNDERLYING CLOUD INFRASTRUCTURE INCLUDING NETWORK, SERVERS, OPERATING SYSTEMS, OR STORAGE, BUT HAS CONTROL OVER THE DEPLOYED APPLICATIONS AND POSSIBLY CONFIGURATION SETTINGS FOR THE APPLICATION-HOSTING ENVIRONMENT.

NIST

PAAS

Page 114: Delivery Engines: Software & Spaceflight
Page 115: Delivery Engines: Software & Spaceflight

"DOCKER AS PROCESS, PAAS AS MACHINE, MICROSERVICES ARCHITECTURE AS PROGRAMMING MODEL"DEVELOPERS CAN THINK OF A CONTAINER AS A SELF-CONTAINED PROCESS AND THE PAAS AS THE COMMON DEPLOYMENT TARGET, USING THE MICROSERVICES ARCHITECTURE AS THE COMMON STYLE. DECOUPLING THE ARCHITECTURE ALLOWS THE SAME FOR TEAMS, CUTTING DOWN ON COORDINATION COST AMONG SILOS.

ThoughtWorks Tech Radar Trends

DOCKER / PLATFORM / MICROSERVICE

Page 116: Delivery Engines: Software & Spaceflight

https://www.infoq.com/presentations/platform-manifesto

MYOB

Page 117: Delivery Engines: Software & Spaceflight

Tips• Build on top of a platform so you

can focus on your business

• Kubernetes is a trendsetter for platforms of the future

• Follow the platform manifesto

Page 118: Delivery Engines: Software & Spaceflight

TOOLSSTAGE 5

Page 119: Delivery Engines: Software & Spaceflight

WE SHAPE OUR TOOLS AND AFTERWARDS OUR TOOLS SHAPE USMarshall McLuhan

Page 120: Delivery Engines: Software & Spaceflight

http://www.devopsbookmarks.com/

Page 121: Delivery Engines: Software & Spaceflight

https://www.thoughtworks.com/radar

Page 122: Delivery Engines: Software & Spaceflight

EXAMPLES (HASHICORP)▸ Adopt

▸ Consul▸ Packer

▸ Trial▸ HashiCorp Vault▸ Terraform

Page 123: Delivery Engines: Software & Spaceflight

http://www.devopsbookmarks.com/

Page 124: Delivery Engines: Software & Spaceflight

Tips• If you want great software, the

people building & operating it need great tools

• Invest in custom tools

• But avoid tight coupling

Page 125: Delivery Engines: Software & Spaceflight
Page 126: Delivery Engines: Software & Spaceflight
Page 127: Delivery Engines: Software & Spaceflight