Learn how GitHub’s globally distributed teams use GitHub tooling to develop and design GitHub, collaborate with engineering, sales, marketing and legal and deploy more than 500 times a week. Experience ChatOps, feature toggles and refactoring in production based on life demos and real examples.
Agenda:
* Zen of GitHub as guiding philosophy for any new feature work, nature of features, internal and external communication
* remote nature of GitHub organization and its implications on standups, pair programming and working style (default to asynchronous)
* walk through the GitHub Flow based on examples from different teams (engineering, web site, legal, services, solution engineering)
* introduction of GitHub’s deployment API and life demo how to use it from Slack and Hubot
* introduction into ChatOps
* ChatOps examples from the DevOps team
* ChatOps in the context of continuous deployment at GitHub
* introduction to the confidence dashboard (deployment metrics)
* introduction to Haystack (exception monitor)
* Feature Toggles @ GitHub (based on flipper)
* Refactoring in production @ GitHub (based on scientist)
* Q & A
Unveiling Design Patterns: A Visual Guide with UML Diagrams
DevDay 2017: Johannes Nicolai - How GitHub uses GitHub to design, develop and deploy GitHub
1. the best way to build and ship software
How GitHub uses GitHub
to design, develop and deploy GitHub
Johannes Nicolai
a @jonico - ! jonico@github.com
4. How software is built
GitHub Facts
4
"
FOUNDED
2008
USERS
20M+
PROJECTS
50M+
MONTHLY
VISITORS
47M+
CORPORATE CUSTOMERS
67k+
UNIVERSITIES
1200+
GLOBAL RANK
51
FORTUNE100
53%
OFFICES
San Francisco
Tokyo, Amsterdam, Boulder
5. How software is built 5
#GitHub Enterprise - Run your own GitHub behind your FW
7. How software is built 7
#
OPEN SOURCE
LEADERS
SOFTWARE
SPECIALISTS
FORWARD THINKING
ENTERPRISES
How the world builds software
8. the best way to build and ship software
8
"
CONTINUOUS DELIVERY
The (very shorten) recipe
$
ASYNCHRONOUS COMMUNICATION%
COMMON PHILOSOPHY&
CHATOPS'
9. the best way to build and ship software
The Zen of GitHub
9
"
• 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
10. the best way to build and ship software
10
"
CONTINUOUS DELIVERY
The (very shorten) recipe
$
ASYNCHRONOUS COMMUNICATION%
COMMON PHILOSOPHY&
CHATOPS'
22. the best way to build and ship software
Deployment API
22
"
23. the best way to build and ship software
23
"
CONTINUOUS DELIVERY
The (very shorten) recipe
$
ASYNCHRONOUS COMMUNICATION%
COMMON PHILOSOPHY&
CHATOPS'
25. the best way to build and ship software
Hubot
25
"
26. the best way to build and ship software
Hubot
26
"
27. the best way to build and ship software
What do you mean, “devops”?
27
"
28. the best way to build and ship software
What do you mean, “devops”?
28
"
HTTP://WWW.EWEEK.COM/ENTERPRISE-APPS/SLIDESHOWS/DEVOPS-5-SIGNS-ENTERPRISES-NEED-TO-UNITE-THE-DEV-AND-OPS-CAMPS.HTML
29. the way people build software 29
'CHATOPS AS THE CULTURAL GLUE
{) { *
'+ DevOps
APPLICATION AUTOMATION INFRASTRUCTURE AUTOMATION
31. the best way to build and ship software
31
"
CONTINUOUS DELIVERY
The (very shorten) recipe
$
ASYNCHRONOUS COMMUNICATION%
COMMON PHILOSOPHY&
CHATOPS'
32. the best way to build and ship software
Deployments to production
32
"
33. the best way to build and ship software
Where Can I Deploy?
33
"
34. the best way to build and ship software
Deploy to test
34
"
35. the best way to build and ship software
Get deployment status back in PR
35
"
36. the best way to build and ship software
Deploy to production
36
"
37. the best way to build and ship software
Deploy to production - canary
37
"
38. the best way to build and ship software
Deploy to production - canary
38
"
39. the best way to build and ship software
Deploy to production - everywhere
39
"
40. the best way to build and ship software
Deployment confidence
40
"
41. the best way to build and ship software
Haystack
41
"
42. the best way to build and ship software
Hubot has your back
42
"
43. the best way to build and ship software
Hubot has your back
43
"
45. the best way to build and ship software
Wrap it up
45
"
46. the best way to build and ship software
46
"
CONTINUOUS DELIVERY
The (very shorten) recipe
$
ASYNCHRONOUS COMMUNICATION%
COMMON PHILOSOPHY&
CHATOPS'