Upgrade to Pro — share decks privately, control downloads, hide ads and more …

GitHub Constellation

pnsk
June 06, 2017

GitHub Constellation

The slides for GitHub Constellation Tokyo 2017 https://githubuniverse.com/constellation/

pnsk

June 06, 2017
Tweet

More Decks by pnsk

Other Decks in Technology

Transcript

  1. How people build software ! ! Introduction 2 • Junko

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

    Dec. 2015 • At my previous company I • Developed Web applications, platform systems • Managed tools like GitHub Enterprise
  3. 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.
  4. How people build software ! ! System design of GitHub

    Enterprise 6 API Admin User MySQL Elasticsearch Rails Application Redis
  5. 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/
  6. 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/
  7. 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.
  8. 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
  9. 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.
  10. 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.
  11. 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.
  12. How people build software ! ! GitHub APIs 16 GitHub

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

    Enterprise specific e.g. Admin Stats API https://developer.github.com/v3/enterprise/admin_stats/
  14. 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.
  15. 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
  16. 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/
  17. 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/
  18. How people build software ! ! Audit log 26 Query

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

    can download the output in JSON format
  20. How people build software ! ! Recovery from system disaster

    29 • Backup Utilities • High Availability replication
  21. 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.
  22. 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:
  23. How people build software ! ! Backup Utilities 32 For

    disaster recovery of your GitHub Enterprise instance,
  24. How people build software ! ! Backup Utilities 33 You

    can restore from your backup server using Backup Utilities
  25. How people build software ! ! High Availability replication 35

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

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

    You can promote the replica to become the new primary.
  28. How people build software ! ! Recovery from system disaster

    38 Backup Utilities •Data loss •Data corruption High Availability replication •Network trouble •Hardware trouble
  29. 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
  30. 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
  31. How people build software ! ! Enterprise Support teams 42

    •Asia-Pacific •Europe •America
  32. 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
  33. How people build software ! ! Where do we work

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

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

    together? 49 Singapore Melbourne Tokyo
  36. How people build software ! Open a ticket on our

    GitHub Enterprise support site 51 https://enterprise.github.com/support
  37. 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)
  38. How people build software ! ! Tickets 53 A customer

    opens a ticket: • System disaster • Bug report • Feature request • Questions • How to upgrade • Explain features • etc.
  39. 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
  40. How people build software ! ! How customers communicate with

    us 55 We never get access to a customer's instance.
  41. 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.
  42. 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
  43. How people build software ! 59 If a customer opens

    a ticket in Japanese, do only three support engineers in Japan investigate the problem?
  44. How people build software ! ! Workflow in English 60

    Opened a ticket Investigate Reply Discuss with other engineers
  45. How people build software ! ! Workflow in Japanese 61

    Opened a ticket Investigate Reply Translate into English Discuss with other engineers
  46. 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.
  47. 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.
  48. 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.
  49. How people build software ! Recovery from system disaster 69

    https://enterprise.github.com/support
  50. 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.
  51. 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.
  52. How people build software ! 73 To succeed, the customer/administrator

    must ensure the GitHub Enterprise instance doesn't crash.
  53. 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
  54. How people build software ! Include details in your inquiry

    to help us help you as fast as possible. 75 https://enterprise.github.com/support
  55. 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
  56. How people build software ! Let us know how and

    when you’ll upgrade your instance. 77 https://enterprise.github.com/support
  57. How people build software ! Run test upgrades on non

    production environments first. 78 https://enterprise.github.com/support
  58. How people build software ! ! The required skills 80

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

    Communication skills •with your internal engineers (e.g. LDAP administrator) •with GitHub
  60. 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
  61. 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.