Share
Embed
GitHub Constellation
The slides for GitHub Constellation Tokyo 2017 https://githubuniverse.com/constellation/
pnsk
June 06, 2017
Transcript
88 slides
-
How people build software ! " The path to GitHub
Enterprise success @pnsk -
How people build software ! ! Introduction 2 • Junko
Suzuki • @pnsk • Enterprise Support Engineer at GitHub -
How people build software ! ! Introduction 3 • Joined
Dec. 2015 • At my previous company I • Developed Web applications, platform systems • Managed tools like GitHub Enterprise -
How people build software ! ! How many companies are
using GitHub Enterprise 5 1500 companies are using GitHub Enterprise. About 10% of them are Japanese companies. -
How people build software ! ! System design of GitHub
Enterprise 6 API Admin User MySQL Elasticsearch Rails Application Redis -
How people build software ! ! Hosting Options 8 •
Hosting Options • AWS • Google Cloud Platform • VMWare • Azure • OpenStack KVM • XenServer https://help.github.com/enterprise/2.9/admin/guides/installation/provisioning-and-installation/ -
How people build software ! ! GitHub Enterprise releases 9
We aim for: 1 patch release per 2 weeks, 1 feature release per 3 months https://enterprise.github.com/releases/ -
How people build software ! ! Collaboration Features 10 Code
Review Project -
How people build software ! ! Integrations 11 • Continuous
integration • Travis CI • Jenkins • CircleCI Enterprise • etc. • Project management • JIRA • Redline • Trello • ZenHub Enterprise • Waffle Takeout • etc. • Chat • HipChat • Slack • IRC • etc. -
How people build software ! ! Limitation of Access to
repositories 12 A repository limited to only a company A repository limited to only specific person in your company There's a difference for limitation of access to repositories between GitHub.com and GitHub Enterprise -
How people build software ! ! Limitation of Access on
GitHub.com 13 To limit access, you must: • Use private repositories in an organization. • Add specific users to the repository or organization. • Or, add users to organization teams. -
How people build software ! ! Limitation of Access on
GitHub Enterprise 14 •You can use public repositories to give access to all company users. • Add specific users to private repositories or organizations. •Or, add users to organization teams. -
How people build software ! ! Authentication methods 15 •
Built-in • CAS • LDAP • SAML • Azure AD • Okta • OneLogin • PingOne • Shibboleth It’s easy to use an existing authentication system to manage users on your instance. -
How people build software ! ! GitHub APIs 16 GitHub
Enterprise specific e.g. License API https://developer.github.com/v3/ -
How people build software ! ! GitHub APIs 17 GitHub
Enterprise specific e.g. Admin Stats API https://developer.github.com/v3/enterprise/admin_stats/ -
How people build software ! ! SNMP 20 https://help.github.com/enterprise/2.9/admin/articles/monitoring-using-snmp/ GitHub
Enterprise supports a standard SNMP so that you can monitor the system status using monitoring tools like Nagios. -
How people build software ! ! collectd 22 GitHub Enterprise
collects system data with collectd and can send them to an external collectd server • RRD files • CSV files -
How people build software ! ! Logging 23 • Log
forwarding • Audit log -
How people build software ! ! Log forwarding 24 GitHub
Enterprise uses syslog-ng to forward system and application logs to a server. e.g) Logstash, splunk, etc. https://help.github.com/enterprise/2.9/admin/articles/log-forwarding/ -
How people build software ! ! Audit log 25 •
Actions • Authentication • Hooks • Issues and pull requests • Organizations • Repositories • Site admin tools • Teams • Users https://help.github.com/enterprise/2.9/admin/articles/audited-actions/ -
How people build software ! ! Audit log 26 Query
• action:repo.add_member • repo:”test/test2” • -actor:pnsk -
How people build software ! ! Audit log 27 You
can download the output in JSON format -
How people build software ! ! Recovery from system disaster
29 • Backup Utilities • High Availability replication -
How people build software ! ! Backup Utilities 30 •
Our product •https://github.com/github/backup-utils •The official way to do backups •You can recover from corrupted data. -
How people build software ! ! Backup Utilities 31 •Complete
GitHub Enterprise backup and recovery system via two simple utilities: • ghe-backup • ghe-restore • You can make a backup when the GitHub Enterprise instance is running. • Incremental backup of Git repository data. • Recommend scheduling the backup hourly using a cron job: -
How people build software ! ! Backup Utilities 32 For
disaster recovery of your GitHub Enterprise instance, -
How people build software ! ! Backup Utilities 33 You
can restore from your backup server using Backup Utilities -
How people build software ! ! High Availability replication 35
• Active/Passive configuration • One-way, asynchronous replication of all datastores (Git repositories, MySQL, Redis, and Elasticsearch) -
How people build software ! ! High Availability replication 36
If your GitHub Enterprise is down because of a network or a hardware problem, -
How people build software ! ! High Availability replication 37
You can promote the replica to become the new primary. -
How people build software ! ! Recovery from system disaster
38 Backup Utilities •Data loss •Data corruption High Availability replication •Network trouble •Hardware trouble -
How people build software ! How does an Enterprise Support
Engineer work? 39 ! -
How people build software ! ! Support 40 Web Support
for GitHub.com • https://github.com/support • Users of GitHub.com Enterprise Support for GitHub Enterprise • https://enterprise.github.com/support • System administrators of GitHub Enterprise -
How people build software ! ! Support 41 Web Support
for GitHub.com • https://github.com/contact • Users of GitHub.com Enterprise Support for GitHub Enterprise • https://enterprise.github.com/support • System administrators of GitHub Enterprise -
How people build software ! ! Enterprise Support teams 42
•Asia-Pacific •Europe •America -
How people build software ! ! Support time 43 https://help.github.com/enterprise/2.9/admin/guides/enterprise-support/
Standard ticket, •24 hours a day, 5 days a week in English Urgent ticket, •24 hours a day, 7 days a week in English -
How people build software ! ! Where do we work
in Japan? 45 Office Co-wokinrg space -
How people build software ! ! How do we work
together? 47 CHAT VIDEO CHAT GITHUB -
How people build software ! ! How do we work
together? 49 Singapore Melbourne Tokyo -
How people build software ! Open a ticket on our
GitHub Enterprise support site 51 https://enterprise.github.com/support -
How people build software ! ! How customers communicate with
us 52 • Email address • Subject • Description • Severity • Urgent • High • Moderate • Low • GitHub Enterprise Series • Attachments (logs, screenshot of a page) -
How people build software ! ! Tickets 53 A customer
opens a ticket: • System disaster • Bug report • Feature request • Questions • How to upgrade • Explain features • etc. -
How people build software ! ! 54 To help our
customers when they have problems we: • See if there is an existing internal issue about the problem • Get instance logs from the customer and investigate • Check if we can reproduce the issue • Fix the bug • If appropriate, provide a workaround Investigation -
How people build software ! ! How customers communicate with
us 55 We never get access to a customer's instance. -
How people build software ! ! How customers communicate with
us 56 Diagnostics • an overview of a GitHub Enterprise instance's settings and environment. Support Bundle • a compressed archive that contains logs and other important information from your instance. -
How people build software ! ! We provide Japanese language
support 57 lowply doublemarket pnsk -
How people build software ! ! We provide Japanese language
support 58 Standard ticket, •24 hours a day, 5 days a week in English •8 hours (9:00am-5:00pm) a day, 5 days a week in Japanese Urgent ticket, •24 hours a day, 7 days a week in English -
How people build software ! 59 If a customer opens
a ticket in Japanese, do only three support engineers in Japan investigate the problem? -
How people build software ! ! Workflow in English 60
Opened a ticket Investigate Reply Discuss with other engineers -
How people build software ! ! Workflow in Japanese 61
Opened a ticket Investigate Reply Translate into English Discuss with other engineers -
How people build software ! ! System spec 64 https://help.github.com/enterprise/2.9/admin/guides/installation/provisioning-and-installation/
A low spec instance can be the cause of many system problems. You should configure enough resources like memory, CPUs, and storage. -
How people build software ! ! Poor IO 66 Poor
IO has the potential to cause problems on a busy instance IO throughput • 45 MB/sec ŋŋŋ our minimum recommendation. • 100MB/sec ŋŋŋ our recommendation. -
How people build software ! ! Polling 68 Excessive polling
causes traffic or high load on a GitHub Enterprise instance which can lead to resource contention and potentially DOS the instance. Instead use webhooks to avoid unnecessary traffic to the GitHub Enterprise instance. -
How people build software ! Recovery from system disaster 69
https://enterprise.github.com/support -
How people build software ! ! Recovery from system disaster
70 To recover the GitHub Enterprise instance from system disaster quickly, we recommend configuring Backup Utilities and High Availability replication. -
How people build software ! ! Specific issues in Japan
72 •Japanese characters •The file/directory name •A double-byte space •A Shift_JIS encoded file •Character corruption If you run into a problem or if you have any requests, please give us a bug report or a feature request. -
How people build software ! 73 To succeed, the customer/administrator
must ensure the GitHub Enterprise instance doesn't crash. -
How people build software ! Don’t hesitate to open a
ticket when you have any questions or if you have any concerns or problems. 74 https://enterprise.github.com/support -
How people build software ! Include details in your inquiry
to help us help you as fast as possible. 75 https://enterprise.github.com/support -
How people build software ! Don't change the settings without
guidance from Enterprise Support to avoid making the problem worse. 76 https://enterprise.github.com/support -
How people build software ! Let us know how and
when you’ll upgrade your instance. 77 https://enterprise.github.com/support -
How people build software ! Run test upgrades on non
production environments first. 78 https://enterprise.github.com/support -
How people build software ! The required skills for GitHub
Enterprise administrators 79 ! -
How people build software ! ! The required skills 80
Technical skills • System Administrator experience. • Being a user of GitHub or GitHub Enterprise. -
How people build software ! ! The required skills 81
Communication skills •with your internal engineers (e.g. LDAP administrator) •with GitHub -
How people build software ! ! The required skills 82
Communication skills •with your internal engineers (e.g. LDAP administrator) •with GitHub •with users on the GitHub Enterprise -
How people build software ! 86 Don’t hesitate to open
a ticket when you have any questions or if you have any concerns or problems.