puppetconf 2016: testing and delivering puppet – michael stahnke, puppet

Post on 16-Apr-2017

65 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

@stahnma

Testing and Delivering PuppetMichael Stahnke | Director of Engineering | @stahnma

@stahnma

Drawn Title Slide

Michael StahnkePuppet, Inc

Director of Engineering

@stahnma

@stahnma

Building and Testing PuppetWhat are we doing and Why are we doing it?

@stahnma

@stahnma

We have a CI system

@stahnma

@stahnma@stahnma

@stahnma

@stahnma

@stahnma

@stahnma

Definition of history

@stahnma

@stahnma

@stahnma

How is Pe formed?

@stahnma

@stahnma@stahnma

@stahnma@stahnma

@stahnma

We were excited about 500 builds a week

shipping 3 times a week new platforms

@stahnma

@stahnma

Composition

@stahnma

@stahnma

Growing jenkins

@stahnma

@stahnma

30-40% failure rate

@stahnma

@stahnma

Digging into failures

@stahnma

@stahnma

v

@stahnma

Failures are still valid

@stahnma

@stahnma

Errors are not

@stahnma

@stahnma

@stahnma@stahnma

@stahnma@stahnma

@stahnma@stahnma

@stahnma

Build our own tools

@stahnma

@stahnma

List of tools we’ve built

@stahnma

@stahnma

Dont’ forget JJB

@stahnma

@stahnma

@stahnma

Study through observation and experiment

What are we doing?

@stahnma

@stahnma

The scientific method

@stahnma

@stahnma

The hypothesis

@stahnma

@stahnma

The experiment

@stahnma

@stahnma

@stahnma

The GoalDeveloper must be able to make a small change and

measure it without intervention

@stahnma

A commit

@stahnma

@stahnma

What’s the required path?

@stahnma

@stahnma@stahnma

@stahnma

Review a change

@stahnma

@stahnma

@stahnma

The build Process

@stahnma

@stahnma

Fetch Sources

@stahnma

@stahnma

Patch thing if applicable

@stahnma

@stahnma

Build all components

@stahnma

@stahnma

Place components into an All in One Package

@stahnma

@stahnma

@stahnma

@stahnma

@stahnma@stahnma

@stahnma@stahnma

@stahnma@stahnma

@stahnma

@stahnma

The Component Process

@stahnma

@stahnma

The Composite Process

@stahnma@stahnma

@stahnma

The Control

@stahnma

@stahnma

The variables

@stahnma

@stahnma

Small variable illustration

@stahnma

@stahnma@stahnma

@stahnma

Challenges of on premise deliveryCost of being wrong

user’s ability to update multiple stream upgrade matrix

@stahnma

Error rate vs Failure

@stahnma

@stahnma

Today’s constraints

@stahnma

@stahnma

2% error rate story

@stahnma

@stahnma

Capacity problems

@stahnma

@stahnma

Entry point onto the system

@stahnma@stahnma

@stahnma@stahnma

@stahnma

What’s next

@stahnma

@stahnma

Mesos

@stahnma

@stahnma

ABS

@stahnma

Run me maybe

@stahnma

@stahnma

Dont’ forget JJB

@stahnma

@stahnma

Job DSL

@stahnma

@stahnma

People organization

@stahnma

@stahnma

Goals for our Team

@stahnma

@stahnma

Sidebar

@stahnma

@stahnma

Tools and Sources Slide

@stahnma

@stahnma

New platform

@stahnma

Start building

@stahnma

@stahnma

Facter/ T&P

@stahnma

@stahnma

Workflow for shipment

@stahnma

@stahnma

https://gist.github.com/stahnma/5d07b2a61387ab81e1f66e8ea4a32ab4

Final Thoughts

● Puppet is difficult to build and test, but that’s what makes it fun

● We’ve learned a ton along the way, we’re still going

● New mistakes and lessons are indications of forward progress

● We build our own tools when we see fit, but prefer not to

● The system is our factory floor

● The system performs science

● The people make the system

@stahnma

`

top related