DevOps and the Chocolate Factory

This is you.

stick figure devops-er

Let me introduce you:

  • You have been making chocolate for a while now.
  • Your customers order small, manageable batches.
  • You make delicious chocolate.
  • Your customers agree.
  • You have heard that maybe "devops" will make you better.

Someone BIG wants to try your services.

"We would like to buy 10000 truffles."

stick figure of customer

You get to work

You deliver (on time!)

But the customer is unhappy.

stick figure of customer

?!

It was melted.

It was not what they expected.

The product was inconsistent.

What did you do wrong?

  • You didn't ensure that your chocolate would survive in the environment you were delivering to.
  • You didn't gather the requirements properly and made sure that you met them.
  • You didn't establish a consistent development pipeline.

But your biggest mistake is more existential...

You have been thinking about making chocolate, not a chocolate factory.

Welcome to

DevOps and the Chocolate Factory

Michelle Krejci

Warrior Princess
Photoshop Braveheart picture of Michelle Krejci

QA Engineering Lead @pantheon

@dev_meshev

craychee.io

Agenda

  1. Establish infrastructure to mimic production.
  2. Establish a development pipeline.
  3. Gather and check against requirements.
  4. Establish a deployment pipeline.
  5. Alternatives and supplements for all of the above.
Problem #1

How do you avoid melted chocolate?

You ask lots of questions before you begin work.

"Where will your chocolate live?"

"Do you have control over the environment?"

"Is it up-to-date?"

"How do you intend to keep your chocolate shop up-to-date?"

"What are your concerns for keeping your chocolate safe?"

"How fast do you want to be able to render chocolate?"

"What's the most important feature of your chocolate shop?"

"How do you plan on deploying more chocolate?"

If they don't know, figure it out for them.

Work in an environment tuned for its destination.

This means that you need a configurable virtual environment.

What you get:

  1. An ansible directory that can configure an ubuntu system to your specifications.
  2. A Vagrantfile to make it so.

Alternatives:

  1. Chef
  2. Puppet
  3. Bash
  4. Many, many more

Go Deeper

Go Deeper

Keep an eye on:

Problem #2

How do you make consistent chocolate?

You determine your workflow.

Then you make it executable.

"What ingredients do I need?"

"What ingredients must I keep our of my receipe?"

"What order to features need to be reverted?"

"When do I need to clear caches?"

"What variables need to be configured for development?"

"What variables need to be configured for production?"

"How am I going to manage it?"

Establish practices:

If your work doesn't build itself, it's not done.

A warning

Alternatives:

  1. Grunt
  2. Gulp
  3. Makefile
  4. Many, many more task runners

Keep an eye on:

Problem #3

How do you ensure that you make what they wanted?

You learn what stories they are telling.

"Who wants what and why?"

"What are your edge cases?"

"What actions do you anticipate your users are going to do with the chocolate?"

"What is the context that you anticipate your user taking actions?"

"What is achievable to complete in small steps?"

Conversations are more important than the tools and processes that execute their outcomes.

Distinguish between testing and checking.

Testing is always exploratory.

Supplements:

  1. Wraith
  2. a11y
  3. sitespeed.io

Go Deeper

Go Deeper

Problem #4

How do you consistently deploy?

You build a reliable deployment pipeline.

You are going to need a ship.

Every environment is different, but your process doesn't need to be.

Form opinions and then standardize on them.

Alternatives:

  1. Travis
  2. Jenkins

Go Deeper

Closing thoughts

Learn from my mistakes.

  1. Value conversations over rituals.
  2. Think about solutions not tools.
  3. The value of any practice depends on its context.
  4. There are no best practices.

"No one wants a quarter inch drill,

they want a quarter inch hole."

I am saying:

They really do want the drill.

They want to make the same thing over and over, fast.

So don't keep making holes.

Make chocolate factories.