Slide 1

Slide 1 text

How people build software ! " The path to GitHub Enterprise success @pnsk

Slide 2

Slide 2 text

How people build software ! ! Introduction 2 • Junko Suzuki • @pnsk • Enterprise Support Engineer at GitHub

Slide 3

Slide 3 text

How people build software ! ! Introduction 3 • Joined Dec. 2015 • At my previous company I • Developed Web applications, platform systems • Managed tools like GitHub Enterprise

Slide 4

Slide 4 text

How people build software ! What is GitHub Enterprise? 4 !

Slide 5

Slide 5 text

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.

Slide 6

Slide 6 text

How people build software ! ! System design of GitHub Enterprise 6 API Admin User MySQL Elasticsearch Rails Application Redis

Slide 7

Slide 7 text

How people build software ! 7 On-premise version of GitHub

Slide 8

Slide 8 text

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/

Slide 9

Slide 9 text

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/

Slide 10

Slide 10 text

How people build software ! ! Collaboration Features 10 Code Review Project

Slide 11

Slide 11 text

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.

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

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.

Slide 14

Slide 14 text

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.

Slide 15

Slide 15 text

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.

Slide 16

Slide 16 text

How people build software ! ! GitHub APIs 16 GitHub Enterprise specific e.g. License API https://developer.github.com/v3/

Slide 17

Slide 17 text

How people build software ! ! GitHub APIs 17 GitHub Enterprise specific e.g. Admin Stats API https://developer.github.com/v3/enterprise/admin_stats/

Slide 18

Slide 18 text

How people build software ! Features for managing GitHub Enterprise 18 !

Slide 19

Slide 19 text

How people build software ! Monitoring 19 !

Slide 20

Slide 20 text

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.

Slide 21

Slide 21 text

How people build software ! ! Graphs 21 https://:8443/setup/monitor

Slide 22

Slide 22 text

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

Slide 23

Slide 23 text

How people build software ! ! Logging 23 • Log forwarding • Audit log

Slide 24

Slide 24 text

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/

Slide 25

Slide 25 text

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/

Slide 26

Slide 26 text

How people build software ! ! Audit log 26 Query • action:repo.add_member • repo:”test/test2” • -actor:pnsk

Slide 27

Slide 27 text

How people build software ! ! Audit log 27 You can download the output in JSON format

Slide 28

Slide 28 text

How people build software ! Recovery from system disaster 28 !

Slide 29

Slide 29 text

How people build software ! ! Recovery from system disaster 29 • Backup Utilities • High Availability replication

Slide 30

Slide 30 text

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.

Slide 31

Slide 31 text

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:

Slide 32

Slide 32 text

How people build software ! ! Backup Utilities 32 For disaster recovery of your GitHub Enterprise instance,

Slide 33

Slide 33 text

How people build software ! ! Backup Utilities 33 You can restore from your backup server using Backup Utilities

Slide 34

Slide 34 text

How people build software ! ! High Availability replication 34

Slide 35

Slide 35 text

How people build software ! ! High Availability replication 35 • Active/Passive configuration • One-way, asynchronous replication of all datastores (Git repositories, MySQL, Redis, and Elasticsearch)

Slide 36

Slide 36 text

How people build software ! ! High Availability replication 36 If your GitHub Enterprise is down because of a network or a hardware problem,

Slide 37

Slide 37 text

How people build software ! ! High Availability replication 37 You can promote the replica to become the new primary.

Slide 38

Slide 38 text

How people build software ! ! Recovery from system disaster 38 Backup Utilities •Data loss •Data corruption High Availability replication •Network trouble •Hardware trouble

Slide 39

Slide 39 text

How people build software ! How does an Enterprise Support Engineer work? 39 !

Slide 40

Slide 40 text

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

Slide 41

Slide 41 text

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

Slide 42

Slide 42 text

How people build software ! ! Enterprise Support teams 42 •Asia-Pacific •Europe •America

Slide 43

Slide 43 text

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

Slide 44

Slide 44 text

How people build software ! ! Asia-Pacific team 44

Slide 45

Slide 45 text

How people build software ! ! Where do we work in Japan? 45 Office Co-wokinrg space

Slide 46

Slide 46 text

How people build software ! 46 Work from anywhere, Communicate very often.

Slide 47

Slide 47 text

How people build software ! ! How do we work together? 47 CHAT VIDEO CHAT GITHUB

Slide 48

Slide 48 text

How people build software ! ! Team meeting 48

Slide 49

Slide 49 text

How people build software ! ! How do we work together? 49 Singapore Melbourne Tokyo

Slide 50

Slide 50 text

How people build software ! How customers communicate with us 50 !

Slide 51

Slide 51 text

How people build software ! Open a ticket on our GitHub Enterprise support site 51 https://enterprise.github.com/support

Slide 52

Slide 52 text

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)

Slide 53

Slide 53 text

How people build software ! ! Tickets 53 A customer opens a ticket: • System disaster • Bug report • Feature request • Questions • How to upgrade • Explain features • etc.

Slide 54

Slide 54 text

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

Slide 55

Slide 55 text

How people build software ! ! How customers communicate with us 55 We never get access to a customer's instance.

Slide 56

Slide 56 text

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.

Slide 57

Slide 57 text

How people build software ! ! We provide Japanese language support 57 lowply doublemarket pnsk

Slide 58

Slide 58 text

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

Slide 59

Slide 59 text

How people build software ! 59 If a customer opens a ticket in Japanese, do only three support engineers in Japan investigate the problem?

Slide 60

Slide 60 text

How people build software ! ! Workflow in English 60 Opened a ticket Investigate Reply Discuss with other engineers

Slide 61

Slide 61 text

How people build software ! ! Workflow in Japanese 61 Opened a ticket Investigate Reply Translate into English Discuss with other engineers

Slide 62

Slide 62 text

How people build software ! Problems 62 !

Slide 63

Slide 63 text

How people build software ! System spec 63

Slide 64

Slide 64 text

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.

Slide 65

Slide 65 text

How people build software ! Poor IO 65 https://enterprise.github.com/support

Slide 66

Slide 66 text

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.

Slide 67

Slide 67 text

How people build software ! Polling 67 https://enterprise.github.com/support

Slide 68

Slide 68 text

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.

Slide 69

Slide 69 text

How people build software ! Recovery from system disaster 69 https://enterprise.github.com/support

Slide 70

Slide 70 text

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.

Slide 71

Slide 71 text

How people build software ! Specific issues in Japan 71 !

Slide 72

Slide 72 text

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.

Slide 73

Slide 73 text

How people build software ! 73 To succeed, the customer/administrator must ensure the GitHub Enterprise instance doesn't crash.

Slide 74

Slide 74 text

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

Slide 75

Slide 75 text

How people build software ! Include details in your inquiry to help us help you as fast as possible. 75 https://enterprise.github.com/support

Slide 76

Slide 76 text

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

Slide 77

Slide 77 text

How people build software ! Let us know how and when you’ll upgrade your instance. 77 https://enterprise.github.com/support

Slide 78

Slide 78 text

How people build software ! Run test upgrades on non production environments first. 78 https://enterprise.github.com/support

Slide 79

Slide 79 text

How people build software ! The required skills for GitHub Enterprise administrators 79 !

Slide 80

Slide 80 text

How people build software ! ! The required skills 80 Technical skills • System Administrator experience. • Being a user of GitHub or GitHub Enterprise.

Slide 81

Slide 81 text

How people build software ! ! The required skills 81 Communication skills •with your internal engineers (e.g. LDAP administrator) •with GitHub

Slide 82

Slide 82 text

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

Slide 83

Slide 83 text

How people build software ! 83 You can collaborate well.

Slide 84

Slide 84 text

How people build software ! 84 You can succeed in business.

Slide 85

Slide 85 text

How people build software ! 85 https://enterprise.github.com/support

Slide 86

Slide 86 text

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.

Slide 87

Slide 87 text

How people build software ! Thanks 87

Slide 88

Slide 88 text

How people build software ! "