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
    !
    "
    The path to GitHub Enterprise success
    @pnsk

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  5. 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.

    View Slide

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

    View Slide

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

    View Slide

  8. 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/

    View Slide

  9. 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/

    View Slide

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

    View Slide

  11. 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.

    View Slide

  12. 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

    View Slide

  13. 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.

    View Slide

  14. 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.

    View Slide

  15. 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.

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  19. How people build software
    !
    Monitoring
    19
    !

    View Slide

  20. 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.

    View Slide

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

    View Slide

  22. 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

    View Slide

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

    View Slide

  24. 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/

    View Slide

  25. 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/

    View Slide

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

    View Slide

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

    View Slide

  28. How people build software
    !
    Recovery from system disaster
    28
    !

    View Slide

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

    View Slide

  30. 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.

    View Slide

  31. 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:

    View Slide

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

    View Slide

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

    View Slide

  34. How people build software
    !
    !
    High Availability replication
    34

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  40. 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

    View Slide

  41. 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

    View Slide

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

    View Slide

  43. 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

    View Slide

  44. How people build software
    !
    !
    Asia-Pacific team
    44

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  48. How people build software
    !
    !
    Team meeting
    48

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  52. 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)

    View Slide

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

    View Slide

  54. 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

    View Slide

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

    View Slide

  56. 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.

    View Slide

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

    View Slide

  58. 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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  62. How people build software
    !
    Problems
    62
    !

    View Slide

  63. How people build software
    !
    System spec
    63

    View Slide

  64. 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.

    View Slide

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

    View Slide

  66. 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.

    View Slide

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

    View Slide

  68. 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.

    View Slide

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

    View Slide

  70. 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.

    View Slide

  71. How people build software
    !
    Specific issues in Japan
    71
    !

    View Slide

  72. 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.

    View Slide

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

    View Slide

  74. 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

    View Slide

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

    View Slide

  76. 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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  82. 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

    View Slide

  83. How people build software
    ! 83
    You can collaborate well.

    View Slide

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

    View Slide

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

    View Slide

  86. 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.

    View Slide

  87. How people build software
    !
    Thanks
    87

    View Slide

  88. How people build software
    !
    "

    View Slide