D-DAY 2015 Continuous delivery GITHUB

Preview:

Citation preview

the best way to build and ship software

How GitHub makes GitHub

a @helaili - @AlainHelaili - ! helaili@github.com

the best way to build and ship software

Git

3

"

• Started by Linus Torvalds 2005 (search “torvalds git” on youtube)

• Easy branching and merging - content oriented, remembers origin

• Small and fast - local operations, smaller repos

• Distributed - VCS on my laptop, full copy incl. history

• Data assurance - sha1, gpg

• Staging area - crafted, meaningful commits

• Free and open source - did you read the first line of this slide?

"http://www.wired.com/2012/02/github-2/ Photo : Ariel Zambelich/Wired

the best way to build and ship software

An ideal patch flow

5

"

(0) YOU COME UP WITH AN ITCH. YOU CODE IT UP.

(1) SEND IT TO THE LIST AND CC PEOPLE WHO MAY NEED TO KNOW ABOUT THE CHANGE.

(2) YOU GET COMMENTS AND SUGGESTIONS FOR IMPROVEMENTS. YOU MAY EVEN GET THEM IN A "ON TOP OF YOUR CHANGE" PATCH FORM.

(3) POLISH, REFINE, AND RE-SEND TO THE LIST AND THE PEOPLE WHO SPEND THEIR TIME TO IMPROVE YOUR PATCH. GO BACK TO STEP (2).

(4) THE LIST FORMS CONSENSUS THAT THE LAST ROUND OF YOUR PATCH IS GOOD. SEND IT TO THE MAINTAINER AND CC THE LIST.

(5) A TOPIC BRANCH IS CREATED WITH THE PATCH AND IS MERGED TO ‘NEXT', AND COOKED FURTHER AND EVENTUALLY GRADUATES TO ‘MASTER'.

- HTTPS://GITHUB.COM/GIT/GIT/BLOB/MASTER/DOCUMENTATION/SUBMITTINGPATCHES

"

"

GitHub Social Coding

the best way to build and ship software

GitHub key facts

8

"

FOUNDED

2008

EMPLOYEES

382

UNIVERSITIES

USING GITHUB

1,000+

TOTAL REGISTERED

USERS

11M

TOTAL

REPOSITORIES

30M

PAYING

ORGANIZATIONS

>60,000

the best way to build and ship software 9

"

"

What’s the secret?

the best way to build and ship software

The Zen of GitHub

11

"

• Responsive is better than fast • It’s not fully shipped until it’s fast • Anything added dilutes everything else • Practicality beats purity • Approachable is better than simple • Mind your words, they are important • Speak like a human • Half measures are as bad as nothing at all • Encourage flow • Non-blocking is better than blocking • Favor focus over features • Avoid administrative distraction • Design for failure • Keep it logically awesome

the best way to build and ship software 12

"

DEVOPS

CONTINUOUS DELIVERY

The (very shorten) recipe

CHATOPS#

$

%

ASYNCHRONOUS COMMUNICATION&

"GitHub Flow

Create a Feature Branch

Add commits

Open a Pull Request

Discuss and Review Code

the best way to build and ship software

Ship

the best way to build and ship software

""hubot

the best way to build and ship software

the best way to build and ship software

the best way to build and ship software

the best way to build and ship software

the best way to build and ship software

the best way to build and ship software

the best way to build and ship software

the best way to build and ship software

the best way to build and ship software

the best way to build and ship software

the best way to build and ship software

the best way to build and ship software

Merge with master

"Questions?

the best way to build and ship software

Resources

38

"

• http://githubengineering.com/runnable-documentation/ • http://githubengineering.com/scripts-to-rule-them-all/ • http://githubengineering.com/exception-monitoring-and-response/ • http://githubengineering.com/deploying-branches-to-github-com/