SlideShare a Scribd company logo
1 of 67
Download to read offline
Advanced GitHub Enterprise Administration
Lars Schneider | Technical Lead for GitHub, Autodesk Inc.
Todd O’Connor | Senior SCM Engineer, Adobe Systems Incorporated
© 2017 Adobe Systems Incorporated. All Rights Reserved.
© 2017 Autodesk Inc. All Rights Reserved.
Company Introduction
Adobe Systems Incorporated
• Founded December 1982
• 17,000+ employees in 37 countries
• Leading provider for Digital Media and Digital Marketing
Autodesk Inc.
• Founded January 1982
• 9,000+ employees worldwide
• Leader in 3D design, architecture, engineering, construction, manufacturing,
media, and entertainment industries software
2
© 2017 Adobe Systems Incorporated. All Rights Reserved.
© 2017 Autodesk Inc. All Rights Reserved.
Outline
• General Setup and Configuration
• Helping Administrators
• Helping Users
• Diagnosing and Addressing Issues
3
© 2017 Adobe Systems Incorporated. All Rights Reserved.
© 2017 Autodesk Inc. All Rights Reserved.
One More Thing...
4
ACME-Org
Org1
Org2
Org3
© 2017 Adobe Systems Incorporated. All Rights Reserved.
© 2017 Autodesk Inc. All Rights Reserved.
One More Thing...
5
3 ACME members contributed to
SharedComponents.
General Setup and Configuration
© 2017 Adobe Systems Incorporated. All Rights Reserved.
© 2017 Autodesk Inc. All Rights Reserved.
General Setup and Configuration
• Server Considerations
• Admin Center
• Server HA / DR Considerations
• Other Techniques
7
© 2017 Adobe Systems Incorporated. All Rights Reserved.
© 2017 Autodesk Inc. All Rights Reserved.
Server Considerations
• Dedicated VM host
• Allocate a lot of RAM
• Sustained memory usage should stay below 50% of total RAM under normal use
• Excess RAM used as disk cache - IO caching improves performance
significantly
• Increase number and/or speed of CPUs
• Large root partition
• Why? Logs can grow rapidly by users running commands that generate a lot of
log activity
• Can only (re)size when building a new server
• Keep fewer logs
8
© 2017 Adobe Systems Incorporated. All Rights Reserved.
© 2017 Autodesk Inc. All Rights Reserved.
Server Considerations continued …
• Use a staging server
• Covered by the GitHub license
• Use GitHub Backup utilities on a dedicated backup server (just a simple VM)
• Run backups often
• Dedicated backup server storage should be sized as large, if not larger than
your primary, in order to retain X number of backups
• Make sure to backup your backup server!
• Long term log retention
• Forward to an external server like Splunk
• Set this in the Management Console
9
© 2017 Adobe Systems Incorporated. All Rights Reserved.
© 2017 Autodesk Inc. All Rights Reserved.
Admin Center
Lots of configuration items to consider
• Force pushes
• Repository upload limit
• Don’t use unlimited!
• Large File Support (LFS)
• Keep large files out of your repos
• Cloned over and over …
• Reactivate suspended users
10
© 2017 Adobe Systems Incorporated. All Rights Reserved.
© 2017 Autodesk Inc. All Rights Reserved.
Server HA / DR Considerations
• Use a replica server
• Single server setup there is only a 1:1 pairing – one primary and one replica
• Cluster acts as its’ own HA so there is no separate replica – only a DR copy


HA : replica in same data center, very low (to no) latency, very quick recovery

Used when primary system fails 

(i.e. software crash, hardware failure, VM host failure, network outage (if HA is on separate network))

Only 1:1 mapping


DR : system at remote site, (re)built from backup/restore

Used in the event of prolonged outage or catastrophic event at the primary site
11
© 2017 Adobe Systems Incorporated. All Rights Reserved.
© 2017 Autodesk Inc. All Rights Reserved.
Other Techniques
• Overarching Org Owner
• Owner of every Org, useful for data mining
Ex. Web page of all Org owners to contact for access
• Aggressively suspend users that
• Have left the company
• Are not active in certain time period
• Consider selective Pre-receive hooks
• Block certain (restricted) filetypes (secret files, certificate files, …)
• Check commit messages for bug IDs or other business required information
12
© 2017 Adobe Systems Incorporated. All Rights Reserved.
© 2017 Autodesk Inc. All Rights Reserved.
New Features
• Rate Limits
• API, Abuse, Git
• Be careful, could hit limits quickly so be able to react quickly (Plan B)
• Dedicated alambic storage
• LFS, releases, file uploads, avatars, …
• GEO Replication (early access feature)
• Read access to replicas based on user’s location
13
Helping Administrators
© 2017 Adobe Systems Incorporated. All Rights Reserved.
© 2017 Autodesk Inc. All Rights Reserved.
Helping Administrators
• Leverage ghe-announce
• Self-service Portal
• Scotty: Helper Scripts
• How to write a support ticket
15
© 2017 Adobe Systems Incorporated. All Rights Reserved.
© 2017 Autodesk Inc. All Rights Reserved.
Leverage ghe-announce
• Sets a message that is visible to everyone - on every page
• Can use HTML
16
$ ghe-announce -s "<b>Useful links:</b> <a href='URL'>Self-service portal</a> | <a href='URL'>Wiki</a> |
<a href='URL'>Activity</a> | <a href='URL'>Stage</a> <i>(new release preview and testing only)</i>”
$ ghe-announce -h
Usage: ghe-announce [-s <message>|-u|-g]
Get, set or clear a global announcement banner, to be displayed to all users.
OPTIONS:
-h Show this message
-s MESSAGE Set a global announcement banner
-g Get the global announcement banner
-u Unset the global announcement banner
© 2017 Adobe Systems Incorporated. All Rights Reserved.
© 2017 Autodesk Inc. All Rights Reserved.
Self-service Portal
Useful for:
• Accounts that cannot login via a browser
• Create, manage SSH keys
• Setting up integrations where admin accounts/secret keys are involved
17
© 2017 Adobe Systems Incorporated. All Rights Reserved.
© 2017 Autodesk Inc. All Rights Reserved.
Self-service Portal …
18
© 2017 Adobe Systems Incorporated. All Rights Reserved.
© 2017 Autodesk Inc. All Rights Reserved.
Self-service Portal …
19
© 2017 Adobe Systems Incorporated. All Rights Reserved.
© 2017 Autodesk Inc. All Rights Reserved.
Self-service Portal …
20
© 2017 Adobe Systems Incorporated. All Rights Reserved.
© 2017 Autodesk Inc. All Rights Reserved.
Tools: Scotty
21
https://github.com/larsxschneider/scotty
© 2017 Adobe Systems Incorporated. All Rights Reserved.
© 2017 Autodesk Inc. All Rights Reserved.
Tools: Scotty
22
https://github.com/larsxschneider/scotty
SAFE: Read-only access!
DANGER: Modifies your instance!
© 2017 Adobe Systems Incorporated. All Rights Reserved.
© 2017 Autodesk Inc. All Rights Reserved.
Tools: Scotty - Help
23
$ ./reports/git-versions.sh -h
Prints the recently used Git client versions per IP address or per user.
Usage:
git-versions.sh
Options:
-u, --user Print results per user account (default: IP address)
-a, --all Process all available logs (rolled logs)
-n Dry-run; only show what would be done.
-h, --help Display this message.
Example:
git-versions.sh
https://github.com/larsxschneider/scotty
© 2017 Adobe Systems Incorporated. All Rights Reserved.
© 2017 Autodesk Inc. All Rights Reserved.
Tools: Scotty Usage
24
https://github.com/larsxschneider/scotty
$ ./reports/git-versions.sh
2.14.1 510
2.14.0 12
2.13.5 6
2.13.4 2
...
Data from the last 24h hours
$ ./reports/git-versions.sh -a
2.14.1 2011
2.14.0 31
2.13.5 97
2.13.4 3
...
Data from all available logs
(usually 7 days)
© 2017 Adobe Systems Incorporated. All Rights Reserved.
© 2017 Autodesk Inc. All Rights Reserved.
How to Write a Support Ticket?
25
• Search your previous tickets
• Explain the problem kindly, short, and precise
• Avoid company specific slang/abbreviations/code names
• Add details that might be relevant to the investigation:
• Steps to reproduce the problem
• Time of the incident in UTC
• IP address, Git/Git LFS/browser/OS version, ...
• Usernames, repository names, Pull Request/Issue IDs, ....
• Screenshots
• Set the appropriate severity (not everything is urgent!)
© 2017 Adobe Systems Incorporated. All Rights Reserved.
© 2017 Autodesk Inc. All Rights Reserved.
How to Write a Support Ticket?
26
• Send a support bundle from the instance
$ ghe-support-bundle -t <ticket-id>< 24h
$ ghe-support-bundle -x -t <ticket-id>> 24h
$ ghe-cluster-support-bundle -t <ticket-id>primary+replica
$ ghe-support-bundle -t <ticket-id> -f <path-to-file>upload arbitrary file
Run in "screen"!
© 2017 Adobe Systems Incorporated. All Rights Reserved.
© 2017 Autodesk Inc. All Rights Reserved.
How to Write a Support Ticket?
27
• Upload a file from a user client
• Send quick diagnostics
https://github.com/larsxschneider/scotty
$ ./admin/support-bundle-local-attach.sh <ticket-id> <path-to-file>
$ ./admin/send-ghe-diagnostics.sh <ticket-id>
Helping Users
© 2017 Adobe Systems Incorporated. All Rights Reserved.
© 2017 Autodesk Inc. All Rights Reserved.
Helping Users
• Unassociated Commits
• Recover Branches
• Completely Delete Git Repositories
29
© 2017 Adobe Systems Incorporated. All Rights Reserved.
© 2017 Autodesk Inc. All Rights Reserved.
Unassociated Commits
30
$ git push
[master c417679] Commit with invalid email
...
remote: Resolving deltas: 100% (1/1), completed with 1 local object.
remote: WARNING:
remote: WARNING: The author of at least one commit on 'master' does not have an Autodesk email address.
remote: WARNING: commit: c417679e0a184062f887066137b08aa13161c3cb
remote: WARNING: author email: lars@mydomain.com
remote: WARNING:
remote: WARNING: Fix the issue by configuring the Autodesk Git environment: https://autodesk.com/github
remote: WARNING:
To https://autodesk.com/demo/repo
df9beef..c417679 master -> master
[user]
name = Lars Schneider
email = lars@mydomain.com
~/.gitconfig
© 2017 Adobe Systems Incorporated. All Rights Reserved.
© 2017 Autodesk Inc. All Rights Reserved.
• Pre-Receive Hooks

https://github.com/github/platform-samples
• Autodesk Git Environment

https://github.com/Autodesk/enterprise-config-for-git
Unassociated Commits
31
© 2017 Adobe Systems Incorporated. All Rights Reserved.
© 2017 Autodesk Inc. All Rights Reserved.
Recover Branches
32
© 2017 Adobe Systems Incorporated. All Rights Reserved.
© 2017 Autodesk Inc. All Rights Reserved.
!
https://github.com/larsxschneider/scotty
Recover Branches
32
© 2017 Adobe Systems Incorporated. All Rights Reserved.
© 2017 Autodesk Inc. All Rights Reserved.
!
$ ./reports/repo-audit.sh org/repo | grep thebranch
refs/heads/fix/doc-build-scripts
9e3f1805a4b6d94982896eeed466729c74f3e1d7
0000000000000000000000000000000000000000
Lars Schneider <lars.schneider@autodesk.com> 1505314979 +0200
{
"real_ip": "10.111.222.33",
"repo_name": "myorg/myrepo",
"repo_public": true,
"user_login": "schneil",
"user_agent": "Mozilla/5.0 ...",
"from": "branches#destroy",
"via": "branches page delete button",
"user_name": "Lars Schneider",
"user_email": "lars.schneider@autodesk.com",
"server": "git-autodesk-com-primary",
"user_id": 210
}
$ ./reports/repo-audit.sh org/repo | grep thebranch
refs/heads/thebranch
9300c21e0da295d304ca1cb2e1dd72d62657f8b3
0000000000000000000000000000000000000000
Lars Schneider <lars.schneider@autodesk.com> 1505314979 +0200
{
"real_ip": "10.111.222.33",
"repo_name": "org/repo",
"repo_public": true,
"user_login": "lars",
"user_agent": "Mozilla/5.0 ...",
"from": "branches#destroy",
"via": "branches page delete button",
"user_name": "Lars Schneider",
"user_email": "lars.schneider@autodesk.com",
"server": "git-company-com-primary",
"user_id": 123
}
$ ./reports/repo-audit.sh org/repo | grep thebranch
refs/heads/thebranch
9300c21e0da295d304ca1cb2e1dd72d62657f8b3
0000000000000000000000000000000000000000
Lars Schneider <lars.schneider@autodesk.com> 1505314979 +0200
{
"real_ip": "10.111.222.33",
"repo_name": "org/repo",
"repo_public": true,
"user_login": "lars",
"user_agent": "Mozilla/5.0 ...",
"from": "branches#destroy",
"via": "branches page delete button",
"user_name": "Lars Schneider",
"user_email": "lars.schneider@autodesk.com",
"server": "git-company-com-primary",
"user_id": 123
}
Recover Branches
32
"
https://git.company.com/org/repo/tree/9300c
© 2017 Adobe Systems Incorporated. All Rights Reserved.
© 2017 Autodesk Inc. All Rights Reserved.
Recover Branches
https://help.github.com/articles/about-protected-branches/
33
© 2017 Adobe Systems Incorporated. All Rights Reserved.
© 2017 Autodesk Inc. All Rights Reserved.
Completely Delete Git Repositories
34
$ ./admin/repo-purge-archived.sh org repo
https://github.com/larsxschneider/scotty
GitHub Enterprise appliance does not instantly purge repositories
after deletion. They are held on disk for 90 days before disk deletion.
Does not take care of forks, clones, and backups!âš 
Debugging Git and GitHub
© 2017 Adobe Systems Incorporated. All Rights Reserved.
© 2017 Autodesk Inc. All Rights Reserved.
Debug: Local Client - What is Git doing?
$ git clone https://gitserver.com/org/repo.git
36
© 2017 Adobe Systems Incorporated. All Rights Reserved.
© 2017 Autodesk Inc. All Rights Reserved.
Debug: Local Client - What is Git doing?
$ git clone https://gitserver.com/org/repo.git
Cloning into 'repo'...
remote: Counting objects: 31, done.
remote: Total 31 (delta 0), reused 0 (delta 0), pack-reused 31
Unpacking objects: 100% (31/31), done.
Downloading test.bin (6 B)
Downloading test2.bin (6 B)
37
© 2017 Adobe Systems Incorporated. All Rights Reserved.
© 2017 Autodesk Inc. All Rights Reserved.
Debug: Local Client - What is Git doing?
$ GIT_TRACE=1 git clone https://gitserver.com/org/repo.git
12:27:45.113068 git.c:328 trace: built-in: git 'clone' 'https://gitserver.com/org/repo.git' 'test'
Cloning into 'test'...
12:27:45.119455 run-command.c:626 trace: run_command: 'git-remote-https' 'origin' 'https://server/org/repo.git'
12:27:46.029989 run-command.c:626 trace: run_command: 'git credential-osxkeychain get'
12:27:46.036845 git.c:560 trace: exec: 'git-credential-osxkeychain' 'get'
12:27:46.037392 run-command.c:626 trace: run_command: 'git-credential-osxkeychain' 'get'
12:27:46.310512 run-command.c:626 trace: run_command: 'git credential-osxkeychain store'
12:27:46.317397 git.c:560 trace: exec: 'git-credential-osxkeychain' 'store'
12:27:46.317963 run-command.c:626 trace: run_command: 'git-credential-osxkeychain' 'store'
12:27:46.348240 run-command.c:626 trace: run_command: 'fetch-pack' '--stateless-rpc' '--stdin' ...
12:27:46.351145 git.c:328 trace: built-in: git 'fetch-pack' '--stateless-rpc' '--stdin' ...
remote: Counting objects: 31, done.
remote: Total 31 (delta 0), reused 0 (delta 0), pack-reused 31
12:27:46.616268 run-command.c:626 trace: run_command: 'unpack-objects' '--pack_header=2,31'
12:27:46.620899 git.c:328 trace: built-in: git 'unpack-objects' '--pack_header=2,31'
Unpacking objects: 100% (31/31), done.
...
38
© 2017 Adobe Systems Incorporated. All Rights Reserved.
© 2017 Autodesk Inc. All Rights Reserved.
Debug: Local Client - What is Git doing?
$ GIT_TRACE_PERFORMANCE=1 git fetch
13:35:10.004634 trace.c:435 performance: 0.018234000 s: git command: 'git' 'credential-osxkeychain' 'get'
13:35:10.533870 trace.c:435 performance: 0.028022000 s: git command: 'git' 'credential-osxkeychain' 'store'
remote: Counting objects: 16, done.
remote: Compressing objects: 100% (16/16), done.
remote: Total 16 (delta 1), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (16/16), done.
13:35:11.472630 trace.c:435 performance: 0.009882000 s: git command: '/usr/git-core/git' 'unpack-objects' ...
13:35:11.473454 trace.c:435 performance: 0.913069000 s: git command: '/usr/git-core/git' 'fetch-pack' ...
13:35:11.757573 trace.c:435 performance: 0.272907000 s: git command: '/usr/git-core/git' 'rev-list' ...
From https://server/org/repo
* [new branch] foo -> origin/foo
13:35:11.791641 trace.c:435 performance: 0.001260000 s: git command: '/usr/git-core/git' 'gc' '--auto'
13:35:11.791864 trace.c:435 performance: 2.897341000 s: git command: 'git' 'fetch'
39
© 2017 Adobe Systems Incorporated. All Rights Reserved.
© 2017 Autodesk Inc. All Rights Reserved.
Debug: Local Client - What is Git doing?
$ GIT_CURL_VERBOSE=1 git fetch
* Couldn't find host server in the .netrc file; using defaults
* Trying 10.35.74.87...
* Connected to server (10.22.33.44) port 443 (#0)
* TLS 1.2 connection using TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
* Server certificate: gitserver.com
* Server certificate: Symantec Class 3 Extended Validation SHA256 SSL CA
* Server certificate: VeriSign Universal Root Certification Authority
> GET /org/repo.git/info/refs?service=git-upload-pack HTTP/1.1
Host: gitserver.com
User-Agent: git/2.14.1
Accept: */*
Accept-Encoding: gzip
Pragma: no-cache
< HTTP/1.1 401 Authorization Required
< Server: GitHub Babel 2.0
< Content-Type: text/plain
< Content-Length: 26
< WWW-Authenticate: Basic realm="GitHub"
...
HTTPS
40
© 2017 Adobe Systems Incorporated. All Rights Reserved.
© 2017 Autodesk Inc. All Rights Reserved.
Debug: Local Client - What is Git doing?
$ GIT_SSH_COMMAND="ssh -vvv" git fetch
OpenSSH_6.9p1, LibreSSL 2.1.8
debug1: Reading configuration data /Users/bob/.ssh/config
debug1: /Users/bob/.ssh/config line 6: Applying options for github.com
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 21: Applying options for *
debug2: ssh_connect: needpriv 0
debug1: Connecting to github.com [192.30.253.113] port 22.
debug1: Connection established.
debug1: identity file /Users/bob/.ssh/private_rsa type 1
debug1: key_load_public: No such file or directory
debug1: identity file /Users/bob/.ssh/private_rsa-cert type -1
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_6.9
debug1: Remote protocol version 2.0, remote software version libssh_0.7.0
debug1: no match: libssh_0.7.0
debug2: fd 5 setting O_NONBLOCK
debug1: Authenticating to github.com:22 as 'git'
debug3: hostkeys_foreach: reading file "/Users/bob/.ssh/known_hosts"
debug3: record_hostkey: found key type RSA in file /Users/bob/.ssh/known_hosts:1
...
SSHSSH
41
© 2017 Adobe Systems Incorporated. All Rights Reserved.
© 2017 Autodesk Inc. All Rights Reserved.
Debug: Local Client - Git Environment Variables
https://git-scm.com/book/en/v2/Git-Internals-Environment-Variables
42
© 2017 Adobe Systems Incorporated. All Rights Reserved.
© 2017 Autodesk Inc. All Rights Reserved.
Debug: GitHub Enterprise Components
Client HAProxy babeld gitauth
nginx alambic
unicorn
lfs-server
43
© 2017 Adobe Systems Incorporated. All Rights Reserved.
© 2017 Autodesk Inc. All Rights Reserved.
Debug: GitHub Enterprise Components
Client HAProxy
./reports/haproxy-requests.sh -d
132556 Sep 14 alambic
264 Sep 14 babeld_git
320429 Sep 14 babeld_http
94388 Sep 14 babeld_ssh
34 Sep 14 babeld_svn
1977 Sep 14 codeload
276 Sep 14 dumbhttp
1154 Sep 14 ernicorn
661 Sep 14 http_protocol
14905 Sep 14 https_protocol
15405 Sep 14 lfs_server
10152 Sep 14 longpoll
227937 Sep 14 web_unicorns
/var/log/haproxy.log
• Handles all GitHub Enterprise traffic
• What kind of requests are made?
• How many requests are made?
• Where the requests come from?
https://github.com/larsxschneider/scotty
44
© 2017 Adobe Systems Incorporated. All Rights Reserved.
© 2017 Autodesk Inc. All Rights Reserved.
$ ./reports/babeld-errors.sh -d
Sep 14 | 1154 Permission
Sep 14 | 3279 failed to verify pubkey
Sep 14 | 4408 Invalid username or password
Sep 14 | 4927 account is suspended
Sep 14 | 4991 Repository not found
Sep 14 | 9905 not a valid username or token
...
$ ./reports/babeld-errors-sources.sh
297 10.133.144.225
524 10.155.177.213
573 10.177.97.130
669 10.111.381.104
3166 10.22.136.197
4106 10.33.96.220
...
Debug: GitHub Enterprise Components
Client HAProxy babeld
/var/log/babeld/babeld.log
• Handles all Git traffic
• What kind of Git errors happen?
• What clients generate Git errors?
https://github.com/larsxschneider/scotty
45
© 2017 Adobe Systems Incorporated. All Rights Reserved.
© 2017 Autodesk Inc. All Rights Reserved.
Debug: GitHub Enterprise Components
Client HAProxy babeld gitauth
/var/log/github/gitauth.log
• Authenticates users for Git access
• What are the HTTPS/SSH authentication issues?
• Who authenticates with username/password?
https://github.com/larsxschneider/scotty
$ ./reports/auth-http-without-token.sh
456 alice path=revit/server.git
668 bot path=autocad/autocad.git
46
© 2017 Adobe Systems Incorporated. All Rights Reserved.
© 2017 Autodesk Inc. All Rights Reserved.
Web content proxy
Debug: GitHub Enterprise Components
Client HAProxy babeld gitauth
nginx
/var/log/nginx/*.log
47
© 2017 Adobe Systems Incorporated. All Rights Reserved.
© 2017 Autodesk Inc. All Rights Reserved.
Debug: GitHub Enterprise Components
Client HAProxy babeld gitauth
nginx alambic
• Avatars
• Releases
• Uploads
48
© 2017 Adobe Systems Incorporated. All Rights Reserved.
© 2017 Autodesk Inc. All Rights Reserved.
Debug: GitHub Enterprise Components
Client HAProxy babeld gitauth
nginx alambic
GitHub Enterprise website
/var/log/github/unicorn.log
unicorn$ /reports/unicorn-errors.sh -d
10887 2017-09-14 HTTP 404
8 2017-09-14 HTTP 406
1545 2017-09-14 HTTP 422
493 ...
76741 not verifying SSL hostname of LDA...
https://github.com/larsxschneider/scotty
49
© 2017 Adobe Systems Incorporated. All Rights Reserved.
© 2017 Autodesk Inc. All Rights Reserved.
Debug: GitHub Enterprise Components
Client HAProxy babeld gitauth
nginx alambic
unicorn
lfs-server
/var/log/lfs-server/lfs-server.log
50
… one more thing
© 2017 Adobe Systems Incorporated. All Rights Reserved.
© 2017 Autodesk Inc. All Rights Reserved. 52
hubble
––enterprise
collaboration, usage, health
visualization
for
GitHub Enterprise
© 2017 Adobe Systems Incorporated. All Rights Reserved.
© 2017 Autodesk Inc. All Rights Reserved.
=== HUBBLE ENTERPRISE ===
> all systems at 100 %
> interactive demo online:
> autodesk.github.io/hubble
53
© 2017 Adobe Systems Incorporated. All Rights Reserved.
© 2017 Autodesk Inc. All Rights Reserved.
https://github.com/autodesk/hubble
Hubble – Collaboration Visualization
5454
ACME-Org
© 2017 Adobe Systems Incorporated. All Rights Reserved.
© 2017 Autodesk Inc. All Rights Reserved.
https://github.com/autodesk/hubble
Hubble – Collaboration Visualization
5555
ACME-Org
Org1
Org2
Org3
© 2017 Adobe Systems Incorporated. All Rights Reserved.
© 2017 Autodesk Inc. All Rights Reserved.
https://github.com/autodesk/hubble
Hubble – Collaboration Visualization
5656
ACME-Client
ACME-Server
© 2017 Adobe Systems Incorporated. All Rights Reserved.
© 2017 Autodesk Inc. All Rights Reserved.
https://github.com/autodesk/hubble
Hubble – Collaboration Visualization
13 ACME members contributed to
SharedComponents.
57
ProductA
ProductC
ProductB
© 2017 Adobe Systems Incorporated. All Rights Reserved.
© 2017 Autodesk Inc. All Rights Reserved.
https://github.com/autodesk/hubble
Hubble – Usage Visualization
58
© 2017 Adobe Systems Incorporated. All Rights Reserved.
© 2017 Autodesk Inc. All Rights Reserved.
https://github.com/autodesk/hubble
Hubble – Usage Visualization
59
© 2017 Adobe Systems Incorporated. All Rights Reserved.
© 2017 Autodesk Inc. All Rights Reserved.
https://github.com/autodesk/hubble
Hubble – Usage Visualization
60
© 2017 Adobe Systems Incorporated. All Rights Reserved.
© 2017 Autodesk Inc. All Rights Reserved.
https://github.com/autodesk/hubble
Hubble – Usage Visualization
61
© 2017 Adobe Systems Incorporated. All Rights Reserved.
© 2017 Autodesk Inc. All Rights Reserved.
https://github.com/autodesk/hubble
Hubble – Usage Visualization
62
Repository size: ~200 MB
© 2017 Adobe Systems Incorporated. All Rights Reserved.
© 2017 Autodesk Inc. All Rights Reserved.
=== HUBBLE ENTERPRISE ===
> all systems at 100 %
> interactive demo online:
> autodesk.github.io/hubble
63
© 2017 Adobe Systems Incorporated. All Rights Reserved.
© 2017 Autodesk Inc. All Rights Reserved.
• Hubble Enterprise - GitHub Enterprise Dashboard

https://github.com/Autodesk/hubble
• Scotty - GitHub Enterprise Helper Scripts

https://github.com/larsxschneider/scotty
• Enterprise Config for Git

https://github.com/Autodesk/enterprise-config-for-git
• GitHub Enterprise Pre-Receive Hooks

https://github.com/github/platform-samples
Summary @kit3bus
Follow for updates!
toddocon@adobe.com
lars.schneider@autodesk.com
Ask questions!
65
Advanced GitHub Enterprise Administration Guide

More Related Content

What's hot

How To Become A DevOps Engineer | Who Is A DevOps Engineer? | DevOps Engineer...
How To Become A DevOps Engineer | Who Is A DevOps Engineer? | DevOps Engineer...How To Become A DevOps Engineer | Who Is A DevOps Engineer? | DevOps Engineer...
How To Become A DevOps Engineer | Who Is A DevOps Engineer? | DevOps Engineer...Simplilearn
 
Maven Nexus
Maven NexusMaven Nexus
Maven Nexusericndunn
 
Devops Devops Devops
Devops Devops DevopsDevops Devops Devops
Devops Devops DevopsKris Buytaert
 
Azure DevOps & GitHub... Better Together!
Azure DevOps & GitHub... Better Together!Azure DevOps & GitHub... Better Together!
Azure DevOps & GitHub... Better Together!Lorenzo Barbieri
 
Distributed tracing using open tracing &amp; jaeger 2
Distributed tracing using open tracing &amp; jaeger 2Distributed tracing using open tracing &amp; jaeger 2
Distributed tracing using open tracing &amp; jaeger 2Chandresh Pancholi
 
GitHub Actions with Node.js
GitHub Actions with Node.jsGitHub Actions with Node.js
GitHub Actions with Node.jsStefan Stölzle
 
DevOps Tutorial For Beginners | DevOps Tutorial | DevOps Tools | DevOps Train...
DevOps Tutorial For Beginners | DevOps Tutorial | DevOps Tools | DevOps Train...DevOps Tutorial For Beginners | DevOps Tutorial | DevOps Tools | DevOps Train...
DevOps Tutorial For Beginners | DevOps Tutorial | DevOps Tools | DevOps Train...Simplilearn
 
Chris OBrien - Azure DevOps for managing work
Chris OBrien - Azure DevOps for managing workChris OBrien - Azure DevOps for managing work
Chris OBrien - Azure DevOps for managing workChris O'Brien
 
(DVO401) Deep Dive into Blue/Green Deployments on AWS
(DVO401) Deep Dive into Blue/Green Deployments on AWS(DVO401) Deep Dive into Blue/Green Deployments on AWS
(DVO401) Deep Dive into Blue/Green Deployments on AWSAmazon Web Services
 
Introduction to DevOps Tools | DevOps Training | DevOps Tutorial for Beginner...
Introduction to DevOps Tools | DevOps Training | DevOps Tutorial for Beginner...Introduction to DevOps Tools | DevOps Training | DevOps Tutorial for Beginner...
Introduction to DevOps Tools | DevOps Training | DevOps Tutorial for Beginner...Edureka!
 
Difference between Github vs Gitlab vs Bitbucket
Difference between Github vs Gitlab vs BitbucketDifference between Github vs Gitlab vs Bitbucket
Difference between Github vs Gitlab vs Bitbucketjeetendra mandal
 
Jfrog artifactory artifact management c tamilmaran presentation - copy
Jfrog artifactory artifact management c tamilmaran presentation - copyJfrog artifactory artifact management c tamilmaran presentation - copy
Jfrog artifactory artifact management c tamilmaran presentation - copyTAMILMARAN C
 
CI/CD Best Practices for Your DevOps Journey
CI/CD Best  Practices for Your DevOps JourneyCI/CD Best  Practices for Your DevOps Journey
CI/CD Best Practices for Your DevOps JourneyDevOps.com
 
Docker Advanced registry usage
Docker Advanced registry usageDocker Advanced registry usage
Docker Advanced registry usageDocker, Inc.
 
CICD Pipeline Using Github Actions
CICD Pipeline Using Github ActionsCICD Pipeline Using Github Actions
CICD Pipeline Using Github ActionsKumar Shìvam
 
Modern CI/CD Pipeline Using Azure DevOps
Modern CI/CD Pipeline Using Azure DevOpsModern CI/CD Pipeline Using Azure DevOps
Modern CI/CD Pipeline Using Azure DevOpsGlobalLogic Ukraine
 

What's hot (20)

How To Become A DevOps Engineer | Who Is A DevOps Engineer? | DevOps Engineer...
How To Become A DevOps Engineer | Who Is A DevOps Engineer? | DevOps Engineer...How To Become A DevOps Engineer | Who Is A DevOps Engineer? | DevOps Engineer...
How To Become A DevOps Engineer | Who Is A DevOps Engineer? | DevOps Engineer...
 
"DevOps > CI+CD "
"DevOps > CI+CD ""DevOps > CI+CD "
"DevOps > CI+CD "
 
Maven Nexus
Maven NexusMaven Nexus
Maven Nexus
 
Devops Devops Devops
Devops Devops DevopsDevops Devops Devops
Devops Devops Devops
 
Azure DevOps & GitHub... Better Together!
Azure DevOps & GitHub... Better Together!Azure DevOps & GitHub... Better Together!
Azure DevOps & GitHub... Better Together!
 
Distributed tracing using open tracing &amp; jaeger 2
Distributed tracing using open tracing &amp; jaeger 2Distributed tracing using open tracing &amp; jaeger 2
Distributed tracing using open tracing &amp; jaeger 2
 
GitHub Actions with Node.js
GitHub Actions with Node.jsGitHub Actions with Node.js
GitHub Actions with Node.js
 
DevOps Tutorial For Beginners | DevOps Tutorial | DevOps Tools | DevOps Train...
DevOps Tutorial For Beginners | DevOps Tutorial | DevOps Tools | DevOps Train...DevOps Tutorial For Beginners | DevOps Tutorial | DevOps Tools | DevOps Train...
DevOps Tutorial For Beginners | DevOps Tutorial | DevOps Tools | DevOps Train...
 
Chris OBrien - Azure DevOps for managing work
Chris OBrien - Azure DevOps for managing workChris OBrien - Azure DevOps for managing work
Chris OBrien - Azure DevOps for managing work
 
(DVO401) Deep Dive into Blue/Green Deployments on AWS
(DVO401) Deep Dive into Blue/Green Deployments on AWS(DVO401) Deep Dive into Blue/Green Deployments on AWS
(DVO401) Deep Dive into Blue/Green Deployments on AWS
 
Introduction to DevOps Tools | DevOps Training | DevOps Tutorial for Beginner...
Introduction to DevOps Tools | DevOps Training | DevOps Tutorial for Beginner...Introduction to DevOps Tools | DevOps Training | DevOps Tutorial for Beginner...
Introduction to DevOps Tools | DevOps Training | DevOps Tutorial for Beginner...
 
Difference between Github vs Gitlab vs Bitbucket
Difference between Github vs Gitlab vs BitbucketDifference between Github vs Gitlab vs Bitbucket
Difference between Github vs Gitlab vs Bitbucket
 
Jfrog artifactory artifact management c tamilmaran presentation - copy
Jfrog artifactory artifact management c tamilmaran presentation - copyJfrog artifactory artifact management c tamilmaran presentation - copy
Jfrog artifactory artifact management c tamilmaran presentation - copy
 
CI/CD Best Practices for Your DevOps Journey
CI/CD Best  Practices for Your DevOps JourneyCI/CD Best  Practices for Your DevOps Journey
CI/CD Best Practices for Your DevOps Journey
 
Docker Advanced registry usage
Docker Advanced registry usageDocker Advanced registry usage
Docker Advanced registry usage
 
DevOps - A Gentle Introduction
DevOps - A Gentle IntroductionDevOps - A Gentle Introduction
DevOps - A Gentle Introduction
 
Azure DevOps
Azure DevOpsAzure DevOps
Azure DevOps
 
CICD Pipeline Using Github Actions
CICD Pipeline Using Github ActionsCICD Pipeline Using Github Actions
CICD Pipeline Using Github Actions
 
Devops
DevopsDevops
Devops
 
Modern CI/CD Pipeline Using Azure DevOps
Modern CI/CD Pipeline Using Azure DevOpsModern CI/CD Pipeline Using Azure DevOps
Modern CI/CD Pipeline Using Azure DevOps
 

Similar to Advanced GitHub Enterprise Administration Guide

DevNetCreate Workshop - build a react app - React crash course
DevNetCreate Workshop - build a react app - React crash courseDevNetCreate Workshop - build a react app - React crash course
DevNetCreate Workshop - build a react app - React crash courseCisco DevNet
 
Up and Running with Amazon Linux WorkSpaces (BAP207-R1) - AWS re:Invent 2018
Up and Running with Amazon Linux WorkSpaces (BAP207-R1) - AWS re:Invent 2018Up and Running with Amazon Linux WorkSpaces (BAP207-R1) - AWS re:Invent 2018
Up and Running with Amazon Linux WorkSpaces (BAP207-R1) - AWS re:Invent 2018Amazon Web Services
 
SPUnite17 Migrating your Customizations from On-prem to SharePoint Online
SPUnite17 Migrating your Customizations from On-prem to SharePoint OnlineSPUnite17 Migrating your Customizations from On-prem to SharePoint Online
SPUnite17 Migrating your Customizations from On-prem to SharePoint OnlineNCCOMMS
 
Updates on webSpoon and other innovations from Hitachi R&D
Updates on webSpoon and other innovations from Hitachi R&DUpdates on webSpoon and other innovations from Hitachi R&D
Updates on webSpoon and other innovations from Hitachi R&DHiromu Hota
 
Seminole County Teach In 2017: Crooms Acadamy of Information Technology
Seminole County Teach In 2017: Crooms Acadamy of Information TechnologySeminole County Teach In 2017: Crooms Acadamy of Information Technology
Seminole County Teach In 2017: Crooms Acadamy of Information TechnologyEd Burns
 
Atlassian tools at Inventive Designers
Atlassian tools at Inventive DesignersAtlassian tools at Inventive Designers
Atlassian tools at Inventive DesignersTars Joris
 
Aiming for automatic updates - Drupal Dev Days Lisbon 2018
Aiming for automatic updates - Drupal Dev Days Lisbon 2018Aiming for automatic updates - Drupal Dev Days Lisbon 2018
Aiming for automatic updates - Drupal Dev Days Lisbon 2018hernanibf
 
Don't Repeat Our Mistakes! Lessons Learned from Running Go Daddy's Private Cl...
Don't Repeat Our Mistakes! Lessons Learned from Running Go Daddy's Private Cl...Don't Repeat Our Mistakes! Lessons Learned from Running Go Daddy's Private Cl...
Don't Repeat Our Mistakes! Lessons Learned from Running Go Daddy's Private Cl...Mike Dorman
 
Open Development - an Engineering Manager's Perspective
Open Development - an Engineering Manager's PerspectiveOpen Development - an Engineering Manager's Perspective
Open Development - an Engineering Manager's PerspectiveMichael Marth
 
BSides Leeds - Performing JavaScript Static Analysis
BSides Leeds -  Performing JavaScript Static AnalysisBSides Leeds -  Performing JavaScript Static Analysis
BSides Leeds - Performing JavaScript Static AnalysisLewis Ardern
 
Case study
Case studyCase study
Case studykaran saini
 
BAP205-Build an Amazon AppStream 2.0 Environment to Stream Desktop Applicatio...
BAP205-Build an Amazon AppStream 2.0 Environment to Stream Desktop Applicatio...BAP205-Build an Amazon AppStream 2.0 Environment to Stream Desktop Applicatio...
BAP205-Build an Amazon AppStream 2.0 Environment to Stream Desktop Applicatio...Amazon Web Services
 
A Tale of Two Pizzas: Accelerating Software Delivery with AWS Developer Tools
A Tale of Two Pizzas: Accelerating Software Delivery with AWS Developer ToolsA Tale of Two Pizzas: Accelerating Software Delivery with AWS Developer Tools
A Tale of Two Pizzas: Accelerating Software Delivery with AWS Developer ToolsAmazon Web Services
 
Walk through an enterprise Linux migration
Walk through an enterprise Linux migrationWalk through an enterprise Linux migration
Walk through an enterprise Linux migrationRogue Wave Software
 
Better, Faster, Easier: How to Make Git Really Work in the Enterprise
Better, Faster, Easier: How to Make Git Really Work in the EnterpriseBetter, Faster, Easier: How to Make Git Really Work in the Enterprise
Better, Faster, Easier: How to Make Git Really Work in the EnterprisePerforce
 
Continuous X for Open Source: Get Sh!t Delivered
Continuous X for Open Source: Get Sh!t DeliveredContinuous X for Open Source: Get Sh!t Delivered
Continuous X for Open Source: Get Sh!t DeliveredBrent Pabst
 
Node.Js: Basics Concepts and Introduction
Node.Js: Basics Concepts and Introduction Node.Js: Basics Concepts and Introduction
Node.Js: Basics Concepts and Introduction Kanika Gera
 

Similar to Advanced GitHub Enterprise Administration Guide (20)

DevNetCreate Workshop - build a react app - React crash course
DevNetCreate Workshop - build a react app - React crash courseDevNetCreate Workshop - build a react app - React crash course
DevNetCreate Workshop - build a react app - React crash course
 
Up and Running with Amazon Linux WorkSpaces (BAP207-R1) - AWS re:Invent 2018
Up and Running with Amazon Linux WorkSpaces (BAP207-R1) - AWS re:Invent 2018Up and Running with Amazon Linux WorkSpaces (BAP207-R1) - AWS re:Invent 2018
Up and Running with Amazon Linux WorkSpaces (BAP207-R1) - AWS re:Invent 2018
 
SPUnite17 Migrating your Customizations from On-prem to SharePoint Online
SPUnite17 Migrating your Customizations from On-prem to SharePoint OnlineSPUnite17 Migrating your Customizations from On-prem to SharePoint Online
SPUnite17 Migrating your Customizations from On-prem to SharePoint Online
 
Updates on webSpoon and other innovations from Hitachi R&D
Updates on webSpoon and other innovations from Hitachi R&DUpdates on webSpoon and other innovations from Hitachi R&D
Updates on webSpoon and other innovations from Hitachi R&D
 
VM-aware Adaptive Storage Cache Prefetching
VM-aware Adaptive Storage Cache PrefetchingVM-aware Adaptive Storage Cache Prefetching
VM-aware Adaptive Storage Cache Prefetching
 
Seminole County Teach In 2017: Crooms Acadamy of Information Technology
Seminole County Teach In 2017: Crooms Acadamy of Information TechnologySeminole County Teach In 2017: Crooms Acadamy of Information Technology
Seminole County Teach In 2017: Crooms Acadamy of Information Technology
 
S903 palla
S903 pallaS903 palla
S903 palla
 
Atlassian tools at Inventive Designers
Atlassian tools at Inventive DesignersAtlassian tools at Inventive Designers
Atlassian tools at Inventive Designers
 
Aiming for automatic updates - Drupal Dev Days Lisbon 2018
Aiming for automatic updates - Drupal Dev Days Lisbon 2018Aiming for automatic updates - Drupal Dev Days Lisbon 2018
Aiming for automatic updates - Drupal Dev Days Lisbon 2018
 
Don't Repeat Our Mistakes! Lessons Learned from Running Go Daddy's Private Cl...
Don't Repeat Our Mistakes! Lessons Learned from Running Go Daddy's Private Cl...Don't Repeat Our Mistakes! Lessons Learned from Running Go Daddy's Private Cl...
Don't Repeat Our Mistakes! Lessons Learned from Running Go Daddy's Private Cl...
 
Open Development - an Engineering Manager's Perspective
Open Development - an Engineering Manager's PerspectiveOpen Development - an Engineering Manager's Perspective
Open Development - an Engineering Manager's Perspective
 
BSides Leeds - Performing JavaScript Static Analysis
BSides Leeds -  Performing JavaScript Static AnalysisBSides Leeds -  Performing JavaScript Static Analysis
BSides Leeds - Performing JavaScript Static Analysis
 
Case study
Case studyCase study
Case study
 
BAP205-Build an Amazon AppStream 2.0 Environment to Stream Desktop Applicatio...
BAP205-Build an Amazon AppStream 2.0 Environment to Stream Desktop Applicatio...BAP205-Build an Amazon AppStream 2.0 Environment to Stream Desktop Applicatio...
BAP205-Build an Amazon AppStream 2.0 Environment to Stream Desktop Applicatio...
 
A Tale of Two Pizzas: Accelerating Software Delivery with AWS Developer Tools
A Tale of Two Pizzas: Accelerating Software Delivery with AWS Developer ToolsA Tale of Two Pizzas: Accelerating Software Delivery with AWS Developer Tools
A Tale of Two Pizzas: Accelerating Software Delivery with AWS Developer Tools
 
Walk through an enterprise Linux migration
Walk through an enterprise Linux migrationWalk through an enterprise Linux migration
Walk through an enterprise Linux migration
 
Better, Faster, Easier: How to Make Git Really Work in the Enterprise
Better, Faster, Easier: How to Make Git Really Work in the EnterpriseBetter, Faster, Easier: How to Make Git Really Work in the Enterprise
Better, Faster, Easier: How to Make Git Really Work in the Enterprise
 
Shaun-Ellis-feb25
Shaun-Ellis-feb25Shaun-Ellis-feb25
Shaun-Ellis-feb25
 
Continuous X for Open Source: Get Sh!t Delivered
Continuous X for Open Source: Get Sh!t DeliveredContinuous X for Open Source: Get Sh!t Delivered
Continuous X for Open Source: Get Sh!t Delivered
 
Node.Js: Basics Concepts and Introduction
Node.Js: Basics Concepts and Introduction Node.Js: Basics Concepts and Introduction
Node.Js: Basics Concepts and Introduction
 

Recently uploaded

Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmSujith Sukumaran
 
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Natan Silnitsky
 
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...OnePlan Solutions
 
Advantages of Odoo ERP 17 for Your Business
Advantages of Odoo ERP 17 for Your BusinessAdvantages of Odoo ERP 17 for Your Business
Advantages of Odoo ERP 17 for Your BusinessEnvertis Software Solutions
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Angel Borroy LĂłpez
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Andreas Granig
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsAhmed Mohamed
 
Cyber security and its impact on E commerce
Cyber security and its impact on E commerceCyber security and its impact on E commerce
Cyber security and its impact on E commercemanigoyal112
 
2.pdf Ejercicios de programaciĂłn competitiva
2.pdf Ejercicios de programaciĂłn competitiva2.pdf Ejercicios de programaciĂłn competitiva
2.pdf Ejercicios de programación competitivaDiego Iván Oliveros Acosta
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaHanief Utama
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Velvetech LLC
 
How to Track Employee Performance A Comprehensive Guide.pdf
How to Track Employee Performance A Comprehensive Guide.pdfHow to Track Employee Performance A Comprehensive Guide.pdf
How to Track Employee Performance A Comprehensive Guide.pdfLivetecs LLC
 
Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfFerryKemperman
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfAlina Yurenko
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Matt Ray
 
What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....kzayra69
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWave PLM
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEEVICTOR MAESTRE RAMIREZ
 
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company OdishaBalasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odishasmiwainfosol
 

Recently uploaded (20)

Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalm
 
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
 
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
 
Advantages of Odoo ERP 17 for Your Business
Advantages of Odoo ERP 17 for Your BusinessAdvantages of Odoo ERP 17 for Your Business
Advantages of Odoo ERP 17 for Your Business
 
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort ServiceHot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML Diagrams
 
Cyber security and its impact on E commerce
Cyber security and its impact on E commerceCyber security and its impact on E commerce
Cyber security and its impact on E commerce
 
2.pdf Ejercicios de programaciĂłn competitiva
2.pdf Ejercicios de programaciĂłn competitiva2.pdf Ejercicios de programaciĂłn competitiva
2.pdf Ejercicios de programaciĂłn competitiva
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief Utama
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...
 
How to Track Employee Performance A Comprehensive Guide.pdf
How to Track Employee Performance A Comprehensive Guide.pdfHow to Track Employee Performance A Comprehensive Guide.pdf
How to Track Employee Performance A Comprehensive Guide.pdf
 
Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdf
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
 
What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need It
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEE
 
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company OdishaBalasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
 

Advanced GitHub Enterprise Administration Guide

  • 1. Advanced GitHub Enterprise Administration Lars Schneider | Technical Lead for GitHub, Autodesk Inc. Todd O’Connor | Senior SCM Engineer, Adobe Systems Incorporated
  • 2. © 2017 Adobe Systems Incorporated. All Rights Reserved. © 2017 Autodesk Inc. All Rights Reserved. Company Introduction Adobe Systems Incorporated • Founded December 1982 • 17,000+ employees in 37 countries • Leading provider for Digital Media and Digital Marketing Autodesk Inc. • Founded January 1982 • 9,000+ employees worldwide • Leader in 3D design, architecture, engineering, construction, manufacturing, media, and entertainment industries software 2
  • 3. © 2017 Adobe Systems Incorporated. All Rights Reserved. © 2017 Autodesk Inc. All Rights Reserved. Outline • General Setup and Configuration • Helping Administrators • Helping Users • Diagnosing and Addressing Issues 3
  • 4. © 2017 Adobe Systems Incorporated. All Rights Reserved. © 2017 Autodesk Inc. All Rights Reserved. One More Thing... 4 ACME-Org Org1 Org2 Org3
  • 5. © 2017 Adobe Systems Incorporated. All Rights Reserved. © 2017 Autodesk Inc. All Rights Reserved. One More Thing... 5 3 ACME members contributed to SharedComponents.
  • 6. General Setup and Configuration
  • 7. © 2017 Adobe Systems Incorporated. All Rights Reserved. © 2017 Autodesk Inc. All Rights Reserved. General Setup and Configuration • Server Considerations • Admin Center • Server HA / DR Considerations • Other Techniques 7
  • 8. © 2017 Adobe Systems Incorporated. All Rights Reserved. © 2017 Autodesk Inc. All Rights Reserved. Server Considerations • Dedicated VM host • Allocate a lot of RAM • Sustained memory usage should stay below 50% of total RAM under normal use • Excess RAM used as disk cache - IO caching improves performance significantly • Increase number and/or speed of CPUs • Large root partition • Why? Logs can grow rapidly by users running commands that generate a lot of log activity • Can only (re)size when building a new server • Keep fewer logs 8
  • 9. © 2017 Adobe Systems Incorporated. All Rights Reserved. © 2017 Autodesk Inc. All Rights Reserved. Server Considerations continued … • Use a staging server • Covered by the GitHub license • Use GitHub Backup utilities on a dedicated backup server (just a simple VM) • Run backups often • Dedicated backup server storage should be sized as large, if not larger than your primary, in order to retain X number of backups • Make sure to backup your backup server! • Long term log retention • Forward to an external server like Splunk • Set this in the Management Console 9
  • 10. © 2017 Adobe Systems Incorporated. All Rights Reserved. © 2017 Autodesk Inc. All Rights Reserved. Admin Center Lots of configuration items to consider • Force pushes • Repository upload limit • Don’t use unlimited! • Large File Support (LFS) • Keep large files out of your repos • Cloned over and over … • Reactivate suspended users 10
  • 11. © 2017 Adobe Systems Incorporated. All Rights Reserved. © 2017 Autodesk Inc. All Rights Reserved. Server HA / DR Considerations • Use a replica server • Single server setup there is only a 1:1 pairing – one primary and one replica • Cluster acts as its’ own HA so there is no separate replica – only a DR copy 
 HA : replica in same data center, very low (to no) latency, very quick recovery
 Used when primary system fails 
 (i.e. software crash, hardware failure, VM host failure, network outage (if HA is on separate network))
 Only 1:1 mapping 
 DR : system at remote site, (re)built from backup/restore
 Used in the event of prolonged outage or catastrophic event at the primary site 11
  • 12. © 2017 Adobe Systems Incorporated. All Rights Reserved. © 2017 Autodesk Inc. All Rights Reserved. Other Techniques • Overarching Org Owner • Owner of every Org, useful for data mining Ex. Web page of all Org owners to contact for access • Aggressively suspend users that • Have left the company • Are not active in certain time period • Consider selective Pre-receive hooks • Block certain (restricted) filetypes (secret files, certificate files, …) • Check commit messages for bug IDs or other business required information 12
  • 13. © 2017 Adobe Systems Incorporated. All Rights Reserved. © 2017 Autodesk Inc. All Rights Reserved. New Features • Rate Limits • API, Abuse, Git • Be careful, could hit limits quickly so be able to react quickly (Plan B) • Dedicated alambic storage • LFS, releases, file uploads, avatars, … • GEO Replication (early access feature) • Read access to replicas based on user’s location 13
  • 15. © 2017 Adobe Systems Incorporated. All Rights Reserved. © 2017 Autodesk Inc. All Rights Reserved. Helping Administrators • Leverage ghe-announce • Self-service Portal • Scotty: Helper Scripts • How to write a support ticket 15
  • 16. © 2017 Adobe Systems Incorporated. All Rights Reserved. © 2017 Autodesk Inc. All Rights Reserved. Leverage ghe-announce • Sets a message that is visible to everyone - on every page • Can use HTML 16 $ ghe-announce -s "<b>Useful links:</b> <a href='URL'>Self-service portal</a> | <a href='URL'>Wiki</a> | <a href='URL'>Activity</a> | <a href='URL'>Stage</a> <i>(new release preview and testing only)</i>” $ ghe-announce -h Usage: ghe-announce [-s <message>|-u|-g] Get, set or clear a global announcement banner, to be displayed to all users. OPTIONS: -h Show this message -s MESSAGE Set a global announcement banner -g Get the global announcement banner -u Unset the global announcement banner
  • 17. © 2017 Adobe Systems Incorporated. All Rights Reserved. © 2017 Autodesk Inc. All Rights Reserved. Self-service Portal Useful for: • Accounts that cannot login via a browser • Create, manage SSH keys • Setting up integrations where admin accounts/secret keys are involved 17
  • 18. © 2017 Adobe Systems Incorporated. All Rights Reserved. © 2017 Autodesk Inc. All Rights Reserved. Self-service Portal … 18
  • 19. © 2017 Adobe Systems Incorporated. All Rights Reserved. © 2017 Autodesk Inc. All Rights Reserved. Self-service Portal … 19
  • 20. © 2017 Adobe Systems Incorporated. All Rights Reserved. © 2017 Autodesk Inc. All Rights Reserved. Self-service Portal … 20
  • 21. © 2017 Adobe Systems Incorporated. All Rights Reserved. © 2017 Autodesk Inc. All Rights Reserved. Tools: Scotty 21 https://github.com/larsxschneider/scotty
  • 22. © 2017 Adobe Systems Incorporated. All Rights Reserved. © 2017 Autodesk Inc. All Rights Reserved. Tools: Scotty 22 https://github.com/larsxschneider/scotty SAFE: Read-only access! DANGER: Modifies your instance!
  • 23. © 2017 Adobe Systems Incorporated. All Rights Reserved. © 2017 Autodesk Inc. All Rights Reserved. Tools: Scotty - Help 23 $ ./reports/git-versions.sh -h Prints the recently used Git client versions per IP address or per user. Usage: git-versions.sh Options: -u, --user Print results per user account (default: IP address) -a, --all Process all available logs (rolled logs) -n Dry-run; only show what would be done. -h, --help Display this message. Example: git-versions.sh https://github.com/larsxschneider/scotty
  • 24. © 2017 Adobe Systems Incorporated. All Rights Reserved. © 2017 Autodesk Inc. All Rights Reserved. Tools: Scotty Usage 24 https://github.com/larsxschneider/scotty $ ./reports/git-versions.sh 2.14.1 510 2.14.0 12 2.13.5 6 2.13.4 2 ... Data from the last 24h hours $ ./reports/git-versions.sh -a 2.14.1 2011 2.14.0 31 2.13.5 97 2.13.4 3 ... Data from all available logs (usually 7 days)
  • 25. © 2017 Adobe Systems Incorporated. All Rights Reserved. © 2017 Autodesk Inc. All Rights Reserved. How to Write a Support Ticket? 25 • Search your previous tickets • Explain the problem kindly, short, and precise • Avoid company specific slang/abbreviations/code names • Add details that might be relevant to the investigation: • Steps to reproduce the problem • Time of the incident in UTC • IP address, Git/Git LFS/browser/OS version, ... • Usernames, repository names, Pull Request/Issue IDs, .... • Screenshots • Set the appropriate severity (not everything is urgent!)
  • 26. © 2017 Adobe Systems Incorporated. All Rights Reserved. © 2017 Autodesk Inc. All Rights Reserved. How to Write a Support Ticket? 26 • Send a support bundle from the instance $ ghe-support-bundle -t <ticket-id>< 24h $ ghe-support-bundle -x -t <ticket-id>> 24h $ ghe-cluster-support-bundle -t <ticket-id>primary+replica $ ghe-support-bundle -t <ticket-id> -f <path-to-file>upload arbitrary file Run in "screen"!
  • 27. © 2017 Adobe Systems Incorporated. All Rights Reserved. © 2017 Autodesk Inc. All Rights Reserved. How to Write a Support Ticket? 27 • Upload a file from a user client • Send quick diagnostics https://github.com/larsxschneider/scotty $ ./admin/support-bundle-local-attach.sh <ticket-id> <path-to-file> $ ./admin/send-ghe-diagnostics.sh <ticket-id>
  • 29. © 2017 Adobe Systems Incorporated. All Rights Reserved. © 2017 Autodesk Inc. All Rights Reserved. Helping Users • Unassociated Commits • Recover Branches • Completely Delete Git Repositories 29
  • 30. © 2017 Adobe Systems Incorporated. All Rights Reserved. © 2017 Autodesk Inc. All Rights Reserved. Unassociated Commits 30 $ git push [master c417679] Commit with invalid email ... remote: Resolving deltas: 100% (1/1), completed with 1 local object. remote: WARNING: remote: WARNING: The author of at least one commit on 'master' does not have an Autodesk email address. remote: WARNING: commit: c417679e0a184062f887066137b08aa13161c3cb remote: WARNING: author email: lars@mydomain.com remote: WARNING: remote: WARNING: Fix the issue by configuring the Autodesk Git environment: https://autodesk.com/github remote: WARNING: To https://autodesk.com/demo/repo df9beef..c417679 master -> master [user] name = Lars Schneider email = lars@mydomain.com ~/.gitconfig
  • 31. © 2017 Adobe Systems Incorporated. All Rights Reserved. © 2017 Autodesk Inc. All Rights Reserved. • Pre-Receive Hooks
 https://github.com/github/platform-samples • Autodesk Git Environment
 https://github.com/Autodesk/enterprise-config-for-git Unassociated Commits 31
  • 32. © 2017 Adobe Systems Incorporated. All Rights Reserved. © 2017 Autodesk Inc. All Rights Reserved. Recover Branches 32
  • 33. © 2017 Adobe Systems Incorporated. All Rights Reserved. © 2017 Autodesk Inc. All Rights Reserved. ! https://github.com/larsxschneider/scotty Recover Branches 32
  • 34. © 2017 Adobe Systems Incorporated. All Rights Reserved. © 2017 Autodesk Inc. All Rights Reserved. ! $ ./reports/repo-audit.sh org/repo | grep thebranch refs/heads/fix/doc-build-scripts 9e3f1805a4b6d94982896eeed466729c74f3e1d7 0000000000000000000000000000000000000000 Lars Schneider <lars.schneider@autodesk.com> 1505314979 +0200 { "real_ip": "10.111.222.33", "repo_name": "myorg/myrepo", "repo_public": true, "user_login": "schneil", "user_agent": "Mozilla/5.0 ...", "from": "branches#destroy", "via": "branches page delete button", "user_name": "Lars Schneider", "user_email": "lars.schneider@autodesk.com", "server": "git-autodesk-com-primary", "user_id": 210 } $ ./reports/repo-audit.sh org/repo | grep thebranch refs/heads/thebranch 9300c21e0da295d304ca1cb2e1dd72d62657f8b3 0000000000000000000000000000000000000000 Lars Schneider <lars.schneider@autodesk.com> 1505314979 +0200 { "real_ip": "10.111.222.33", "repo_name": "org/repo", "repo_public": true, "user_login": "lars", "user_agent": "Mozilla/5.0 ...", "from": "branches#destroy", "via": "branches page delete button", "user_name": "Lars Schneider", "user_email": "lars.schneider@autodesk.com", "server": "git-company-com-primary", "user_id": 123 } $ ./reports/repo-audit.sh org/repo | grep thebranch refs/heads/thebranch 9300c21e0da295d304ca1cb2e1dd72d62657f8b3 0000000000000000000000000000000000000000 Lars Schneider <lars.schneider@autodesk.com> 1505314979 +0200 { "real_ip": "10.111.222.33", "repo_name": "org/repo", "repo_public": true, "user_login": "lars", "user_agent": "Mozilla/5.0 ...", "from": "branches#destroy", "via": "branches page delete button", "user_name": "Lars Schneider", "user_email": "lars.schneider@autodesk.com", "server": "git-company-com-primary", "user_id": 123 } Recover Branches 32 " https://git.company.com/org/repo/tree/9300c
  • 35. © 2017 Adobe Systems Incorporated. All Rights Reserved. © 2017 Autodesk Inc. All Rights Reserved. Recover Branches https://help.github.com/articles/about-protected-branches/ 33
  • 36. © 2017 Adobe Systems Incorporated. All Rights Reserved. © 2017 Autodesk Inc. All Rights Reserved. Completely Delete Git Repositories 34 $ ./admin/repo-purge-archived.sh org repo https://github.com/larsxschneider/scotty GitHub Enterprise appliance does not instantly purge repositories after deletion. They are held on disk for 90 days before disk deletion. Does not take care of forks, clones, and backups!âš 
  • 38. © 2017 Adobe Systems Incorporated. All Rights Reserved. © 2017 Autodesk Inc. All Rights Reserved. Debug: Local Client - What is Git doing? $ git clone https://gitserver.com/org/repo.git 36
  • 39. © 2017 Adobe Systems Incorporated. All Rights Reserved. © 2017 Autodesk Inc. All Rights Reserved. Debug: Local Client - What is Git doing? $ git clone https://gitserver.com/org/repo.git Cloning into 'repo'... remote: Counting objects: 31, done. remote: Total 31 (delta 0), reused 0 (delta 0), pack-reused 31 Unpacking objects: 100% (31/31), done. Downloading test.bin (6 B) Downloading test2.bin (6 B) 37
  • 40. © 2017 Adobe Systems Incorporated. All Rights Reserved. © 2017 Autodesk Inc. All Rights Reserved. Debug: Local Client - What is Git doing? $ GIT_TRACE=1 git clone https://gitserver.com/org/repo.git 12:27:45.113068 git.c:328 trace: built-in: git 'clone' 'https://gitserver.com/org/repo.git' 'test' Cloning into 'test'... 12:27:45.119455 run-command.c:626 trace: run_command: 'git-remote-https' 'origin' 'https://server/org/repo.git' 12:27:46.029989 run-command.c:626 trace: run_command: 'git credential-osxkeychain get' 12:27:46.036845 git.c:560 trace: exec: 'git-credential-osxkeychain' 'get' 12:27:46.037392 run-command.c:626 trace: run_command: 'git-credential-osxkeychain' 'get' 12:27:46.310512 run-command.c:626 trace: run_command: 'git credential-osxkeychain store' 12:27:46.317397 git.c:560 trace: exec: 'git-credential-osxkeychain' 'store' 12:27:46.317963 run-command.c:626 trace: run_command: 'git-credential-osxkeychain' 'store' 12:27:46.348240 run-command.c:626 trace: run_command: 'fetch-pack' '--stateless-rpc' '--stdin' ... 12:27:46.351145 git.c:328 trace: built-in: git 'fetch-pack' '--stateless-rpc' '--stdin' ... remote: Counting objects: 31, done. remote: Total 31 (delta 0), reused 0 (delta 0), pack-reused 31 12:27:46.616268 run-command.c:626 trace: run_command: 'unpack-objects' '--pack_header=2,31' 12:27:46.620899 git.c:328 trace: built-in: git 'unpack-objects' '--pack_header=2,31' Unpacking objects: 100% (31/31), done. ... 38
  • 41. © 2017 Adobe Systems Incorporated. All Rights Reserved. © 2017 Autodesk Inc. All Rights Reserved. Debug: Local Client - What is Git doing? $ GIT_TRACE_PERFORMANCE=1 git fetch 13:35:10.004634 trace.c:435 performance: 0.018234000 s: git command: 'git' 'credential-osxkeychain' 'get' 13:35:10.533870 trace.c:435 performance: 0.028022000 s: git command: 'git' 'credential-osxkeychain' 'store' remote: Counting objects: 16, done. remote: Compressing objects: 100% (16/16), done. remote: Total 16 (delta 1), reused 0 (delta 0), pack-reused 0 Unpacking objects: 100% (16/16), done. 13:35:11.472630 trace.c:435 performance: 0.009882000 s: git command: '/usr/git-core/git' 'unpack-objects' ... 13:35:11.473454 trace.c:435 performance: 0.913069000 s: git command: '/usr/git-core/git' 'fetch-pack' ... 13:35:11.757573 trace.c:435 performance: 0.272907000 s: git command: '/usr/git-core/git' 'rev-list' ... From https://server/org/repo * [new branch] foo -> origin/foo 13:35:11.791641 trace.c:435 performance: 0.001260000 s: git command: '/usr/git-core/git' 'gc' '--auto' 13:35:11.791864 trace.c:435 performance: 2.897341000 s: git command: 'git' 'fetch' 39
  • 42. © 2017 Adobe Systems Incorporated. All Rights Reserved. © 2017 Autodesk Inc. All Rights Reserved. Debug: Local Client - What is Git doing? $ GIT_CURL_VERBOSE=1 git fetch * Couldn't find host server in the .netrc file; using defaults * Trying 10.35.74.87... * Connected to server (10.22.33.44) port 443 (#0) * TLS 1.2 connection using TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 * Server certificate: gitserver.com * Server certificate: Symantec Class 3 Extended Validation SHA256 SSL CA * Server certificate: VeriSign Universal Root Certification Authority > GET /org/repo.git/info/refs?service=git-upload-pack HTTP/1.1 Host: gitserver.com User-Agent: git/2.14.1 Accept: */* Accept-Encoding: gzip Pragma: no-cache < HTTP/1.1 401 Authorization Required < Server: GitHub Babel 2.0 < Content-Type: text/plain < Content-Length: 26 < WWW-Authenticate: Basic realm="GitHub" ... HTTPS 40
  • 43. © 2017 Adobe Systems Incorporated. All Rights Reserved. © 2017 Autodesk Inc. All Rights Reserved. Debug: Local Client - What is Git doing? $ GIT_SSH_COMMAND="ssh -vvv" git fetch OpenSSH_6.9p1, LibreSSL 2.1.8 debug1: Reading configuration data /Users/bob/.ssh/config debug1: /Users/bob/.ssh/config line 6: Applying options for github.com debug1: Reading configuration data /etc/ssh/ssh_config debug1: /etc/ssh/ssh_config line 21: Applying options for * debug2: ssh_connect: needpriv 0 debug1: Connecting to github.com [192.30.253.113] port 22. debug1: Connection established. debug1: identity file /Users/bob/.ssh/private_rsa type 1 debug1: key_load_public: No such file or directory debug1: identity file /Users/bob/.ssh/private_rsa-cert type -1 debug1: Enabling compatibility mode for protocol 2.0 debug1: Local version string SSH-2.0-OpenSSH_6.9 debug1: Remote protocol version 2.0, remote software version libssh_0.7.0 debug1: no match: libssh_0.7.0 debug2: fd 5 setting O_NONBLOCK debug1: Authenticating to github.com:22 as 'git' debug3: hostkeys_foreach: reading file "/Users/bob/.ssh/known_hosts" debug3: record_hostkey: found key type RSA in file /Users/bob/.ssh/known_hosts:1 ... SSHSSH 41
  • 44. © 2017 Adobe Systems Incorporated. All Rights Reserved. © 2017 Autodesk Inc. All Rights Reserved. Debug: Local Client - Git Environment Variables https://git-scm.com/book/en/v2/Git-Internals-Environment-Variables 42
  • 45. © 2017 Adobe Systems Incorporated. All Rights Reserved. © 2017 Autodesk Inc. All Rights Reserved. Debug: GitHub Enterprise Components Client HAProxy babeld gitauth nginx alambic unicorn lfs-server 43
  • 46. © 2017 Adobe Systems Incorporated. All Rights Reserved. © 2017 Autodesk Inc. All Rights Reserved. Debug: GitHub Enterprise Components Client HAProxy ./reports/haproxy-requests.sh -d 132556 Sep 14 alambic 264 Sep 14 babeld_git 320429 Sep 14 babeld_http 94388 Sep 14 babeld_ssh 34 Sep 14 babeld_svn 1977 Sep 14 codeload 276 Sep 14 dumbhttp 1154 Sep 14 ernicorn 661 Sep 14 http_protocol 14905 Sep 14 https_protocol 15405 Sep 14 lfs_server 10152 Sep 14 longpoll 227937 Sep 14 web_unicorns /var/log/haproxy.log • Handles all GitHub Enterprise traffic • What kind of requests are made? • How many requests are made? • Where the requests come from? https://github.com/larsxschneider/scotty 44
  • 47. © 2017 Adobe Systems Incorporated. All Rights Reserved. © 2017 Autodesk Inc. All Rights Reserved. $ ./reports/babeld-errors.sh -d Sep 14 | 1154 Permission Sep 14 | 3279 failed to verify pubkey Sep 14 | 4408 Invalid username or password Sep 14 | 4927 account is suspended Sep 14 | 4991 Repository not found Sep 14 | 9905 not a valid username or token ... $ ./reports/babeld-errors-sources.sh 297 10.133.144.225 524 10.155.177.213 573 10.177.97.130 669 10.111.381.104 3166 10.22.136.197 4106 10.33.96.220 ... Debug: GitHub Enterprise Components Client HAProxy babeld /var/log/babeld/babeld.log • Handles all Git traffic • What kind of Git errors happen? • What clients generate Git errors? https://github.com/larsxschneider/scotty 45
  • 48. © 2017 Adobe Systems Incorporated. All Rights Reserved. © 2017 Autodesk Inc. All Rights Reserved. Debug: GitHub Enterprise Components Client HAProxy babeld gitauth /var/log/github/gitauth.log • Authenticates users for Git access • What are the HTTPS/SSH authentication issues? • Who authenticates with username/password? https://github.com/larsxschneider/scotty $ ./reports/auth-http-without-token.sh 456 alice path=revit/server.git 668 bot path=autocad/autocad.git 46
  • 49. © 2017 Adobe Systems Incorporated. All Rights Reserved. © 2017 Autodesk Inc. All Rights Reserved. Web content proxy Debug: GitHub Enterprise Components Client HAProxy babeld gitauth nginx /var/log/nginx/*.log 47
  • 50. © 2017 Adobe Systems Incorporated. All Rights Reserved. © 2017 Autodesk Inc. All Rights Reserved. Debug: GitHub Enterprise Components Client HAProxy babeld gitauth nginx alambic • Avatars • Releases • Uploads 48
  • 51. © 2017 Adobe Systems Incorporated. All Rights Reserved. © 2017 Autodesk Inc. All Rights Reserved. Debug: GitHub Enterprise Components Client HAProxy babeld gitauth nginx alambic GitHub Enterprise website /var/log/github/unicorn.log unicorn$ /reports/unicorn-errors.sh -d 10887 2017-09-14 HTTP 404 8 2017-09-14 HTTP 406 1545 2017-09-14 HTTP 422 493 ... 76741 not verifying SSL hostname of LDA... https://github.com/larsxschneider/scotty 49
  • 52. © 2017 Adobe Systems Incorporated. All Rights Reserved. © 2017 Autodesk Inc. All Rights Reserved. Debug: GitHub Enterprise Components Client HAProxy babeld gitauth nginx alambic unicorn lfs-server /var/log/lfs-server/lfs-server.log 50
  • 54. © 2017 Adobe Systems Incorporated. All Rights Reserved. © 2017 Autodesk Inc. All Rights Reserved. 52 hubble ––enterprise collaboration, usage, health visualization for GitHub Enterprise
  • 55. © 2017 Adobe Systems Incorporated. All Rights Reserved. © 2017 Autodesk Inc. All Rights Reserved. === HUBBLE ENTERPRISE === > all systems at 100 % > interactive demo online: > autodesk.github.io/hubble 53
  • 56. © 2017 Adobe Systems Incorporated. All Rights Reserved. © 2017 Autodesk Inc. All Rights Reserved. https://github.com/autodesk/hubble Hubble – Collaboration Visualization 5454 ACME-Org
  • 57. © 2017 Adobe Systems Incorporated. All Rights Reserved. © 2017 Autodesk Inc. All Rights Reserved. https://github.com/autodesk/hubble Hubble – Collaboration Visualization 5555 ACME-Org Org1 Org2 Org3
  • 58. © 2017 Adobe Systems Incorporated. All Rights Reserved. © 2017 Autodesk Inc. All Rights Reserved. https://github.com/autodesk/hubble Hubble – Collaboration Visualization 5656 ACME-Client ACME-Server
  • 59. © 2017 Adobe Systems Incorporated. All Rights Reserved. © 2017 Autodesk Inc. All Rights Reserved. https://github.com/autodesk/hubble Hubble – Collaboration Visualization 13 ACME members contributed to SharedComponents. 57 ProductA ProductC ProductB
  • 60. © 2017 Adobe Systems Incorporated. All Rights Reserved. © 2017 Autodesk Inc. All Rights Reserved. https://github.com/autodesk/hubble Hubble – Usage Visualization 58
  • 61. © 2017 Adobe Systems Incorporated. All Rights Reserved. © 2017 Autodesk Inc. All Rights Reserved. https://github.com/autodesk/hubble Hubble – Usage Visualization 59
  • 62. © 2017 Adobe Systems Incorporated. All Rights Reserved. © 2017 Autodesk Inc. All Rights Reserved. https://github.com/autodesk/hubble Hubble – Usage Visualization 60
  • 63. © 2017 Adobe Systems Incorporated. All Rights Reserved. © 2017 Autodesk Inc. All Rights Reserved. https://github.com/autodesk/hubble Hubble – Usage Visualization 61
  • 64. © 2017 Adobe Systems Incorporated. All Rights Reserved. © 2017 Autodesk Inc. All Rights Reserved. https://github.com/autodesk/hubble Hubble – Usage Visualization 62 Repository size: ~200 MB
  • 65. © 2017 Adobe Systems Incorporated. All Rights Reserved. © 2017 Autodesk Inc. All Rights Reserved. === HUBBLE ENTERPRISE === > all systems at 100 % > interactive demo online: > autodesk.github.io/hubble 63
  • 66. © 2017 Adobe Systems Incorporated. All Rights Reserved. © 2017 Autodesk Inc. All Rights Reserved. • Hubble Enterprise - GitHub Enterprise Dashboard
 https://github.com/Autodesk/hubble • Scotty - GitHub Enterprise Helper Scripts
 https://github.com/larsxschneider/scotty • Enterprise Config for Git
 https://github.com/Autodesk/enterprise-config-for-git • GitHub Enterprise Pre-Receive Hooks
 https://github.com/github/platform-samples Summary @kit3bus Follow for updates! toddocon@adobe.com lars.schneider@autodesk.com Ask questions! 65