38
the best way to build and ship soware How GitHub makes GitHub a @helaili - @AlainHelaili - ! [email protected]

D-DAY 2015 Continuous delivery GITHUB

Embed Size (px)

Citation preview

Page 1: D-DAY 2015 Continuous delivery  GITHUB

the best way to build and ship software

How GitHub makes GitHub

a @helaili - @AlainHelaili - ! [email protected]

Page 2: D-DAY 2015 Continuous delivery  GITHUB
Page 3: D-DAY 2015 Continuous delivery  GITHUB

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?

Page 4: D-DAY 2015 Continuous delivery  GITHUB

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

Page 5: D-DAY 2015 Continuous delivery  GITHUB

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

Page 6: D-DAY 2015 Continuous delivery  GITHUB

"

Page 7: D-DAY 2015 Continuous delivery  GITHUB

"

GitHub Social Coding

Page 8: D-DAY 2015 Continuous delivery  GITHUB

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

Page 9: D-DAY 2015 Continuous delivery  GITHUB

the best way to build and ship software 9

"

Page 10: D-DAY 2015 Continuous delivery  GITHUB

"

What’s the secret?

Page 11: D-DAY 2015 Continuous delivery  GITHUB

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

Page 12: D-DAY 2015 Continuous delivery  GITHUB

the best way to build and ship software 12

"

DEVOPS

CONTINUOUS DELIVERY

The (very shorten) recipe

CHATOPS#

$

%

ASYNCHRONOUS COMMUNICATION&

Page 13: D-DAY 2015 Continuous delivery  GITHUB

"GitHub Flow

Page 14: D-DAY 2015 Continuous delivery  GITHUB

Create a Feature Branch

Page 15: D-DAY 2015 Continuous delivery  GITHUB

Add commits

Page 16: D-DAY 2015 Continuous delivery  GITHUB

Open a Pull Request

Page 17: D-DAY 2015 Continuous delivery  GITHUB

Discuss and Review Code

Page 18: D-DAY 2015 Continuous delivery  GITHUB
Page 19: D-DAY 2015 Continuous delivery  GITHUB
Page 20: D-DAY 2015 Continuous delivery  GITHUB

the best way to build and ship software

Page 21: D-DAY 2015 Continuous delivery  GITHUB

Ship

Page 22: D-DAY 2015 Continuous delivery  GITHUB

the best way to build and ship software

Page 23: D-DAY 2015 Continuous delivery  GITHUB

""hubot

Page 24: D-DAY 2015 Continuous delivery  GITHUB

the best way to build and ship software

Page 25: D-DAY 2015 Continuous delivery  GITHUB

the best way to build and ship software

Page 26: D-DAY 2015 Continuous delivery  GITHUB

the best way to build and ship software

Page 27: D-DAY 2015 Continuous delivery  GITHUB

the best way to build and ship software

Page 28: D-DAY 2015 Continuous delivery  GITHUB

the best way to build and ship software

Page 29: D-DAY 2015 Continuous delivery  GITHUB

the best way to build and ship software

Page 30: D-DAY 2015 Continuous delivery  GITHUB

the best way to build and ship software

Page 31: D-DAY 2015 Continuous delivery  GITHUB

the best way to build and ship software

Page 32: D-DAY 2015 Continuous delivery  GITHUB

the best way to build and ship software

Page 33: D-DAY 2015 Continuous delivery  GITHUB

the best way to build and ship software

Page 34: D-DAY 2015 Continuous delivery  GITHUB

the best way to build and ship software

Page 35: D-DAY 2015 Continuous delivery  GITHUB

the best way to build and ship software

Page 36: D-DAY 2015 Continuous delivery  GITHUB

Merge with master

Page 37: D-DAY 2015 Continuous delivery  GITHUB

"Questions?

Page 38: D-DAY 2015 Continuous delivery  GITHUB

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/