oscon: better collaboration through tooling

75
Better Collaboration through Tooling Open Source, ETC... David Lawrence - @endophage Ying Li - @cyli Docker Security Team

Upload: docker-inc

Post on 13-Jan-2017

1.705 views

Category:

Technology


2 download

TRANSCRIPT

Page 1: OSCON: Better Collaboration through Tooling

Better Collaboration through ToolingOpen Source, ETC...

David Lawrence - @endophageYing Li - @cyliDocker Security Team

Page 2: OSCON: Better Collaboration through Tooling
Page 3: OSCON: Better Collaboration through Tooling

ETC…?

Page 4: OSCON: Better Collaboration through Tooling

Process & Team Debt

Technical Debt

Page 5: OSCON: Better Collaboration through Tooling

“Nothing in the world is worth having or worth doing unless it means effort, pain, difficulty…”

Theodore Roosevelt

Page 6: OSCON: Better Collaboration through Tooling

Easy

Tidy

Consistent

Page 7: OSCON: Better Collaboration through Tooling

Onboarding

Page 8: OSCON: Better Collaboration through Tooling

Make It Easy

Page 9: OSCON: Better Collaboration through Tooling
Page 10: OSCON: Better Collaboration through Tooling

Pretty quickly you feel like...

Page 11: OSCON: Better Collaboration through Tooling
Page 12: OSCON: Better Collaboration through Tooling
Page 13: OSCON: Better Collaboration through Tooling

DEMO

Page 14: OSCON: Better Collaboration through Tooling

Make It Tidy

Page 15: OSCON: Better Collaboration through Tooling
Page 16: OSCON: Better Collaboration through Tooling
Page 17: OSCON: Better Collaboration through Tooling

docker-compose down \ --rmi local \ -v

Page 18: OSCON: Better Collaboration through Tooling

Make It Consistent

Page 19: OSCON: Better Collaboration through Tooling

Have you tried forcing an unexpected reboot?

Page 20: OSCON: Better Collaboration through Tooling
Page 21: OSCON: Better Collaboration through Tooling

N.B. These steps don’t excuse you from writing documentation.

Page 22: OSCON: Better Collaboration through Tooling

Maintaining

Page 23: OSCON: Better Collaboration through Tooling

computer overlords

I for one welcome our new

Page 24: OSCON: Better Collaboration through Tooling

Make It Easy

Page 25: OSCON: Better Collaboration through Tooling
Page 26: OSCON: Better Collaboration through Tooling
Page 27: OSCON: Better Collaboration through Tooling

Travis CircleCI GitlabCI Jenkins BambooGitHub

Gitlab

Bitbucket

Others VCSes

Page 28: OSCON: Better Collaboration through Tooling
Page 29: OSCON: Better Collaboration through Tooling
Page 30: OSCON: Better Collaboration through Tooling
Page 31: OSCON: Better Collaboration through Tooling
Page 32: OSCON: Better Collaboration through Tooling
Page 33: OSCON: Better Collaboration through Tooling
Page 34: OSCON: Better Collaboration through Tooling
Page 35: OSCON: Better Collaboration through Tooling
Page 36: OSCON: Better Collaboration through Tooling
Page 37: OSCON: Better Collaboration through Tooling
Page 38: OSCON: Better Collaboration through Tooling

Make It Tidy

Page 39: OSCON: Better Collaboration through Tooling
Page 40: OSCON: Better Collaboration through Tooling

Oh man, this is awesome!

Page 41: OSCON: Better Collaboration through Tooling
Page 42: OSCON: Better Collaboration through Tooling
Page 43: OSCON: Better Collaboration through Tooling

Make It Consistent

Page 44: OSCON: Better Collaboration through Tooling
Page 45: OSCON: Better Collaboration through Tooling
Page 46: OSCON: Better Collaboration through Tooling
Page 47: OSCON: Better Collaboration through Tooling

“a red pull request shouldn't even be up for review”

mnapoli - https://issues.piwik.org/7953

Page 48: OSCON: Better Collaboration through Tooling

codecov.io

coveralls.io

codeclimate.com

codacy.com

code coverage

coding style

Page 49: OSCON: Better Collaboration through Tooling

code coverage !=

test coverage

Page 50: OSCON: Better Collaboration through Tooling

def run_me(x, y): if (x < 0): a() if (x < y): b()

a() b()

run_me(-1, -1)

run_me(1, 2)

Page 51: OSCON: Better Collaboration through Tooling
Page 52: OSCON: Better Collaboration through Tooling
Page 53: OSCON: Better Collaboration through Tooling
Page 54: OSCON: Better Collaboration through Tooling
Page 55: OSCON: Better Collaboration through Tooling
Page 56: OSCON: Better Collaboration through Tooling
Page 57: OSCON: Better Collaboration through Tooling

“Any fool can write code that a computer can understand. Good programmers write code that humans can understand.”

Martin Fowler - Refactoring: Improving the Design of Existing Code

Page 58: OSCON: Better Collaboration through Tooling

Use the language standards (wherethey exist)

Page 59: OSCON: Better Collaboration through Tooling
Page 60: OSCON: Better Collaboration through Tooling

N.B: Code Review

• Design • Functionality • Security • Test coverage

Page 61: OSCON: Better Collaboration through Tooling

Deploying

Page 62: OSCON: Better Collaboration through Tooling

Make It Easy

Page 63: OSCON: Better Collaboration through Tooling

When production is on fire, don’t make people think.

Page 64: OSCON: Better Collaboration through Tooling

Write docker compose files.

Page 65: OSCON: Better Collaboration through Tooling

DEMO

Page 66: OSCON: Better Collaboration through Tooling

Make It Tidy

Page 67: OSCON: Better Collaboration through Tooling

We rarely deploy static binaries

Page 68: OSCON: Better Collaboration through Tooling
Page 69: OSCON: Better Collaboration through Tooling

Package your actual runtime!

Page 70: OSCON: Better Collaboration through Tooling

Make It Consistent

Page 71: OSCON: Better Collaboration through Tooling

“It works on my machine!”Every software engineer, ever.

Page 72: OSCON: Better Collaboration through Tooling

Did you mention Docker already?

Page 73: OSCON: Better Collaboration through Tooling

DEMO

Page 74: OSCON: Better Collaboration through Tooling

Onboarding

Maintaining

Deploying

Easy

Tidy

Consistent

Page 75: OSCON: Better Collaboration through Tooling

THANK YOU