velocity through consistency with zachary auerbach

29
Velocity through Consistency The Keynote Based On the Abstract Based On the Team Based On the Theory Based On That One Tweet By Martin Fowler

Upload: pivotalopensourcehub

Post on 13-Apr-2017

196 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Velocity through Consistency with Zachary Auerbach

Velocity through Consistency

The Keynote Based On the Abstract Based On the Team Based On the Theory Based On That One Tweet By Martin Fowler

Page 2: Velocity through Consistency with Zachary Auerbach

Velocity through Consistency

The Talk

Page 3: Velocity through Consistency with Zachary Auerbach

MeThat’s a cat

Page 4: Velocity through Consistency with Zachary Auerbach

MeWork at Pivotal

Write Code Yell A Lot

Cats

Page 5: Velocity through Consistency with Zachary Auerbach

MeWork at Pivotal

Write Code Yell A Lot

Cats

Page 6: Velocity through Consistency with Zachary Auerbach

This talk

• What is consistency?

• How does Pivotal consistency?

• Can I consistency?

• Is it hard to consistency?

Page 7: Velocity through Consistency with Zachary Auerbach

You promised us velocity, Zak

Page 8: Velocity through Consistency with Zachary Auerbach

This talk

• What is velocity?

• How does Pivotal velocity?

• Can I velocity?

• Is it hard to velocity?

Page 9: Velocity through Consistency with Zachary Auerbach

What is velocity?

Page 10: Velocity through Consistency with Zachary Auerbach

What is velocity

• The ability to get a specific thing done

• Without having to do a bunch of boring stuff that’s really only related because somebody (maybe you) was lazy a while ago

• Maybe I should be calling it Momentum

• But the meetup invites already went out

Page 11: Velocity through Consistency with Zachary Auerbach

Can I velocity?

Page 12: Velocity through Consistency with Zachary Auerbach

Yes, through consistency

Page 13: Velocity through Consistency with Zachary Auerbach

A non-exhaustive list of…

Page 14: Velocity through Consistency with Zachary Auerbach

Things that ruin your velocity• Snowflakes

• Config files that you put SOMEWHERE like a month ago and only use like every 2 weeks so you never actually end up remembering where they are

• Config files that are 90% unrelated to the thing you want to configure and the 10% that is relevant is buried so deep you never know where to find it

• Deployments that get stale

• Scripts that get stale

Page 15: Velocity through Consistency with Zachary Auerbach

Snowflakes

Page 16: Velocity through Consistency with Zachary Auerbach

In other words

Page 17: Velocity through Consistency with Zachary Auerbach

Inconsistency!

Page 18: Velocity through Consistency with Zachary Auerbach

Examples of inconsistency• A jenkins vm

• set up by somebody who left the company

• 3 years ago

• we don’t actually know where the vm is

• maybe it’s on amazon

• but it also somehow has access to our VCenter

Page 19: Velocity through Consistency with Zachary Auerbach

Examples of inconsistency• we’re trying to bosh deploy a CF

• last deployed 3 months ago

• manifest was built by hand

• 3 months ago

• git blame shows the initial commit was me

• because we moved it from a different git repo

• so we lost all the history

Page 20: Velocity through Consistency with Zachary Auerbach

What inconsistency looks likeStare into the void and despair

Page 21: Velocity through Consistency with Zachary Auerbach

Is it hard to consistency?

Page 22: Velocity through Consistency with Zachary Auerbach

Apparently, yes

Page 23: Velocity through Consistency with Zachary Auerbach

The story of Mega• Start with tools that facilitate consistency

• Build consistent tooling around other tools that don’t

• Maintain your tooling (more on this later)

• Open-source it

• Test it in CI

Page 24: Velocity through Consistency with Zachary Auerbach

Let’s talk about bosh!

• What do you REALLY need in your manifest?

• Make it a stub

• spiff is terrible, but it works well enough (more on this later, too)

• Don’t think about manifests, think about properties specific to YOUR deployment

Page 25: Velocity through Consistency with Zachary Auerbach

Cloudformation

• Not idempotent (inconsistent)

• Wrap it in something that IS consistent

• Maintain your wrapper!

Page 26: Velocity through Consistency with Zachary Auerbach

concourse/CI

• Concourse ensures consistency

• All state is described in source-controlled files

• All builds are described by source controlled files

• Requires user discipline

Page 27: Velocity through Consistency with Zachary Auerbach

Let’s look at a git repo

Page 28: Velocity through Consistency with Zachary Auerbach

Maybe I’ll draw some stuff

Page 29: Velocity through Consistency with Zachary Auerbach