Upload
devops-d-day
View
294
Download
2
Embed Size (px)
Citation preview
the best way to build and ship software
How GitHub makes GitHub
a @helaili - @AlainHelaili - ! [email protected]
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/