会社内でGitHub.comを使う選択肢あり

GitHub.comを使った開発や情報共有に慣れているエンジニアやプログラマーであれば、プライベートのみならず、業務中にもGitHub.comのサービスを使いたいと思うだろう。

バージョン管理システムが導入されていない開発環境なら当然だし、よしんば導入されていたとしても、GitHub.comほどの利便性を備えたものはそう多くはない。「自社で開発してプルリクエストしたい」と考えるエンジニアは少なくないだろう。

しかし、企業には独のロジックがあり、GitHub.comのように開かれたプラットフォームをそのまま開発に使えるとことはそうそうない。多くの場合、社内または契約しているデータセンター内にバージョン管理システム、ストレージ、サーバを用意し、そうした共有システムを介してチームがクローズドにシステムの開発を行うことがほとんどだ。

実のところ、GitHubはGitHub Enterpriseという企業向けのサービスを提供しており、これを利用すれば企業内にオンプレミスでGitHub.comを構築できる。当然、料金はかかるが、社内でGitHub.comが使えれば、それだけで大きなアドバンテージだ。

気になるのは、GitHub.comとGitHub Enterpriseの違いだ。通常、クラウドとオンプレミスの双方でサービスを提供している場合、オンプレミスを多機能にしてプロダクトとしての価値を高めるという販売戦略をとることが多い。GitHub Enterpriseの場合、その真逆の戦略を採用している。「GitHub.comでできることはすべてGitHub Enterpriseでできる。これがGitHub Enterpriseの価値」と、GitHub, Solution Engineerの池田尚史氏は指摘する。

GitHub Solution Engineer 池田尚史氏

ユーザーから見ると、GitHub.comとGitHub Enterpriseの違いを感じることは難しい。強いて言えば、GitHub.comが何らかのトラブルでオフラインまたはサービス不能な状況に陥った場合、オンプレミスのGitHub Enterpriseは利用できるといったことだろう。業務中も週末も、同じUI/UXを利用できることは、エンジニアやプログラマーにとって大きなアドバンテージだ。使ってみないとわからないが、使ってみるとこれほど便利なことはない。

管理者向けの機能が追加されているGitHub Enterprise

とはいえ、GitHub Enterpriseに企業が利用する上で便利な機能が追加されている点ではGitHub.comと異なる。企業で利用する場合、企業のロジックにシステムが合わせる必要がある。統一されたアカウント管理、操作モニタリング、不具合発生時のフェールオーバ、従業員数に応えられるスケーラビリティ、組織構造に合わせたグループ機能、迅速に反応するサポート窓口などだ。GitHub Enterpriseにはこうした企業で必要となる機能が追加されているのだ。ユーザーからは見えない部分だが、管理する側としては、こうした機能が存在しないと導入することができない。

GitHub Enterpriseは組み込みの認証システムに加え、LDAPやSAML、CAS、2段階認証といった機能をサポートしている。アカウント管理にActive Directoryを導入している企業が大半ではないかと思うが、こうした組織で利用するための機能は提供されているというわけだ。

9月13日から15日にかけて開催された「GitHub Universe 2016」では、GitHub.comでもSAMLがサポートすることが発表されたが、これはGitHub EnterpriseからGitHub.comへの"機能の輸出"となる。こうした機能をGitHub.comに出してしまうと、外部の認証サービスを使ってアカウント管理したい企業がGitHub EnterpriseではなくGitHub.comを使ってしまうことになるようにも思うが、GitHubはあまり問題視していないようだ。GitHub.comで足りるなら、ぜひ使ってほしいというのがGitHubの基本姿勢だ。

加えて、GitHub Enterpriseには監査証跡が残るため、インシデントが発生した時に原因追及が行いやすいほか、ログを外部のサービスに飛ばす機能もあるため、導入済みの管理システム、例えばZabbixなどからモニタリングすることもできる。平日24時間365日のテクニカルサポートと、24時間365日の緊急サポートも提供される。これはGitHubが在宅勤務を推奨し、世界中に従業員がいるから実現できる対応体制だ。

ただ、「pre-receive hook」という機能だけはGitHub Enterpriseにしか存在していない。これは事前にコミット内容をチェックするために利用する機能で、例えばコミット対象にかなりサイズの大きなファイルが誤って混入しているとか、ユーザーIDとパスワードがハードコーディングされているとか、そうしたことを事前に検知するための機能だ。

GitHub Universe 2016では新機能が多数発表されたが、順次GitHub.comにローンチしていくことになり、GitHub Enterpriseにやってくるのはもうちょっと先になるだろう。管理者の元にアップデートの連絡がきたら、迅速にアップデート作業の日程を組んでくれることを祈るばかりだ。