velocity through consistency with zachary auerbach

Post on 13-Apr-2017

200 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

Velocity through Consistency

The Talk

MeThat’s a cat

MeWork at Pivotal

Write Code Yell A Lot

Cats

MeWork at Pivotal

Write Code Yell A Lot

Cats

This talk

• What is consistency?

• How does Pivotal consistency?

• Can I consistency?

• Is it hard to consistency?

You promised us velocity, Zak

This talk

• What is velocity?

• How does Pivotal velocity?

• Can I velocity?

• Is it hard to velocity?

What is velocity?

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

Can I velocity?

Yes, through consistency

A non-exhaustive list of…

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

Snowflakes

In other words

Inconsistency!

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

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

What inconsistency looks likeStare into the void and despair

Is it hard to consistency?

Apparently, yes

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

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

Cloudformation

• Not idempotent (inconsistent)

• Wrap it in something that IS consistent

• Maintain your wrapper!

concourse/CI

• Concourse ensures consistency

• All state is described in source-controlled files

• All builds are described by source controlled files

• Requires user discipline

Let’s look at a git repo

Maybe I’ll draw some stuff

top related