velocity through consistency with zachary auerbach
Post on 13-Apr-2017
200 Views
Preview:
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