「第1回 GitHub Enterprise ユーザ会」レポート

2018/03/01(木)

GitHub Enterpriseユーザが渋谷に集結! 現場のリアルなノウハウと知見を共有し合ったコラボレーションな1日

3月1日、東京・渋谷のTECH PLAY SHIBUYAで、「第1回 GitHub Enterprise ユーザ会」が開催され、大盛況のうちに終了しました。

ソフトウェア開発プラットフォーム「GitHub」のオンプレミス版「GitHub Enterprise」は、企業でコーディングに携わるエンジニアにとって、今最も”使ってみたい”開発環境のひとつとして注目され、利用が急速に拡大しています。その国内一次代理店しての役割を担うマクニカが初めて開催するユーザ会とあって、当日は大勢のエンジニアで満席となりました。同じ志を持つ人たちの熱気溢れる雰囲気の中、ライトニングトークさながらのセッションが次々と行われ、中身のとても濃い4時間となりました。今回はその概要をご紹介します。

会場となった東京・渋谷のTECH PLAY SHIBUYAには70名もの参加者が足を運んでくれました

GitHub 社.からはオリジナルのTシャツが提供され、参加者全員に配られました
人気のGitHubキャラクター「オクトキャット」のステッカーも取り放題!

GitHub Enterpriseが国内に本格展開して3年近くが経過

開会に際し、株式会社マクニカ 営業統括部 アプリケーション営業部 第4課 課長 根本 竜也が挨拶に立ち、「2015年6月に国内一次代理店となって3年近く経過し、これまで100社以上の企業にGitHub Enterpriseをお使いいただいています。そうした中、お客様からは他社がGitHub Enterpriseをどのように利活用しているのか、運用管理はどうしているのかという質問を多く受けるようになり、ならばユーザ企業様同士で情報交換できる場を作りたいと考え、今回初めてユーザ会を開催するに至りました」と経緯を話しました。

「初めてのGitHub Enterpriseユーザ会を開催できとても嬉しく思います」
と話すマクニカの根本

開発者の開発生産性やセキュリティを更に向上させる新しい機能に期待

今回のユーザ会では、GitHub 本社からソリューションエンジニアのエド・パターソン氏が来日。冒頭のセッションで、GitHub.com Business/GitHub Enterpriseの管理・セキュリティ機能の更なる強化、ベスト・オブ・ブリード を実現するための機能強化や拡張計画などについて最新のロードマップを会場の参加者だけに公開しました。

GitHub 本社のパターソン氏も緊急来日

それらの情報はまだコンフィデンシャルなため、残念ながらこのレポートでお伝えすることはできませんが、近日中にマクニカから情報提供する予定ですので、楽しみにお待ちください。

DMM.comが自社のデプロイメント自動化手法を公開

GitHub Enterpriseを活用する国内企業も急速に増えています。ユーザ会ではマクニカが支援した導入企業にも事例セッションを担当していただきました。最初に登壇したのが、DMM.com 佐藤 紘典氏です。

DMM.comの佐藤氏

月間25億ページビュー、会員数2800万人以上の総合エンターテイメントサイト「DMM.com」を運営するDMM.comは、GitHub EnterpriseとCircleCIを連携する形でほぼ同時に導入。DevOpsとソーシャルコーディングを可能にし、自動化による開発効率の向上と迅速なサービス提供を実現させています。
今回佐藤氏は、自社の運用をケーススタディとして、デプロイメントの自動化を中心に解説しました。「DMM.comのデプロイメントのインフラはアプリケーションのみならずインフラもコード化しGitHub Enterpriseにホストされています。GitHub EnterpriseとCircleCIがWebフックで連動し、リポジトリにプッシュするとアプリケーションサーバのAMI(Amazon Machine Image)やAWS上のインフラ構成がTerraformで更新される仕組みです」と佐藤氏は説明します。

図1 DMM.comではGitHub EnterpriseとCircleCIを連携させてデプロイの自動化を実現

アプリケーションのデプロイメントは、featureブランチで変更をコミットし、GitHub Enterpriseにプッシュすると、それをトリガにCircleCIで静的解析とテストを実行します。さらにレビュワーによるレビューが行われそこで問題がなければ、Pull Requestを対象のブランチをマージすることでCircleCIのジョブが実行され、PackerでAWS上にAMIを登録するという流れです。

また、インフラストラクチャーのデプロイメントも同様のフローですが、インフラはアプリのように頻繁に更新されないので、アプリケーションをデプロイしAWS上に最新のAMIを登録。その後、(Blue-Green Deployment)のBlueかGreenのうち、稼働していないアプリケーションプールのAMIを最新に更新した上で、ロードバランサーのターゲットグループが新しい方にだけ向くように切り替えを行います。

佐藤氏は、「このようにインフラストラクチャーのデプロイも全て自動化されているので、リポジトリをリビルドするだけで、アプリケーションを最新の状態に更新することができるのです」と語ります。

最後に、CircleCIを利用したChatOpsについても言及しました。ChatOps によるデプロイは、Slackを通じてHubotにメッセージを送信し、CircleCIのAPIを叩くという使い方をしています。ChatOpsを選んだ理由について、佐藤氏は、「いつでもどこからでもジョブを実行できるほか、ジョブの実行と結果の通知を集約して効率よく開発・運用できるのがポイントです」と話します。

複雑化するソフトウェア開発を高速・高品質に実施する開発基盤を構築したリコー

もう1つの事例セッションには、株式会社リコー デジタル推進本部 中根 悠太氏が登壇しました。

株式会社リコーの中根氏

「リコーの主力製品である複合機は、地域や業種によって機能が異なり、さまざまな要件が絡み合い組み込みソフトウェアの組み合わせがとても複雑になっています。また製造終了から5~10年間は製品のサポートが必要で、ソフトウェアを保持する必要があります」と中根氏は説明します。

製品ラインナップが多いので、ソフトウェアとハードウェアを別に開発し、QA(製品評価)フェーズで結合して出荷するプロセスで開発しています。さらにソフトウェアはモジュールに分割して機能を設計し、開発を効率化しています。近年は製品が多機能化し組み合わせのパターンが複雑になってきていることもあり、機能変更の影響範囲を特定するのも大変になってきたといいます。

「そこで当社は、モジュールの開発段階で、ビルド・レビュー・静的解析を行い、パスしたものだけを製品の結合環境に移行させるような、確実に品質をチェックするプロセスに変えたいと考え、GitHub Enterpriseを導入しました」と中根氏。

図2 リコーでは、GitHub Flowでマスターブランチに入れる前にモジュールの品質をチェック

具体的には、GitHub Flow機能を活用し、製品環境につながるマスターブランチに入れる前にモジュール開発のfeatureブランチの品質をチェックします。しかし、一般的なソフトウェア開発と異なり、複合機はモジュールごとにリポジトリを保有しているため、影響を受ける他のモジュールと一緒に、モジュールを使用する製品単位でチェックする必要があります。

そのため、GitHub Enterpriseでどの製品がどのモジュールを組み合わせているのかを管理し、レビューや製品ごとのチェックが通らないとPull Requestでマージできないような制御ができていないといけません。

「変更がどのモジュール・製品に影響するかをトレースする機能や、変更単位でビルド・静的解析を実行する機能、Pull Requestのチェックリストの自動作成機能などをアドオンしています。それにより、どんな変更が、どの製品に、いつ入ったかがわかるようになり、ソースコードからもPull Request内の変更内容を特定できるようになりました」と中根氏は語ります。

セッションの後半では、モジュール×製品の品質チェックのためのGitHub EnterpriseのAPI(Issue API、Timeline API、Status API)を活用した事例や、複合機の開発単位に合わせたGitHub Enterpriseの構成・規模が詳しく紹介されました。

中根氏は、「GitHub Enterpriseで複雑なプロダクトラインを持つ製品開発にPull Requestを導入して、WEB APIやWEB Hookを駆使した作り込みをし、開発環境のモダン化に成功したことにより、複雑化するソフトウェア開発を高速・高品質に行える開発基盤が完成しました」と評しています。

GitHub Enterpriseの全面導入を決めたセガゲームスのスマホゲーム開発

続いて、比較的短い15分ずつのライトニング形式によるAdmin(運用・管理)セッションが行われました。
トップバッターは、株式会社セガゲームス 開発統括部 開発支援部 上田 展生氏。「GitHub Enterprise導入規模の拡大時にやるべきこと」をテーマに、GitHub Enterpriseを活用するに至るまでの経緯を赤裸々に語りました。

株式会社セガゲームスの上田氏

セガゲームスのスマートフォンゲームの開発部門(プログラマー、デザイナー、プランナーなど合計で400~500人規模)では、以前に全員がSubversion(SVN)を活用していましたが、さまざまな葛藤や紆余曲折を経て、現在は約300人がGitHub Enterpriseを利用するようになったといいます。

GitHub Enterprise導入に向け、まず2016年1月に、わずか3名で導入委員会立ち上げ、評価版を元に小さな開発チームに働きかけました。その後、新規プロジェクトへの説得が成功してユーザは50に拡大。利用者向けの説明会などサポートも開始して、利用プロジェクトの規模拡大に合わせて100ユーザに増量するとともに、委員会の3名中1名はGitHub専任にしたといいます。

上田氏は「GitHub Enterpriseを使ってもらえるプロジェクトを増やすよりも、プロジェクト内でユーザを増やすほうが導入はスムーズにいくと分かったのです」と振り返ります。会社に対しては正式導入を提案する一方で、ネガティブな意見へのカウンターも準備をしたといいます。

例えば、「SVNではダメなのか?」という問いに対しては、Googleトレンドの比較データを示し、SVNがいかに遅れているかを説明。また、「レビューの価値がよく分からない」という意見に対しては、具体的に工数削減によるコスト削減効果を試算し公開しました。

その結果、2017年1月にGitHub Enterpriseの本格導入が決定。新規プロジェクトはすべてGitHub Enterpriseでコードを管理する方針となり、使い方のドキュメントの拡充や、社内ハンズオンの実施、トラブル対応などを整備しました。

「しかしまだ、“Gitが難しい”、“操作が面倒くさい”、“メリットを感じてない”といった意見があることも事実。オリジナルのサポートツール(GitHubクライアント「Pengit」)の作成や、積極的な教育活動の実施、利用プロジェクト間の情報展開などの施策を進めています」と上田氏は抱負を述べます。

図3 セガゲームスの「Pengit」の画面例。
TortoiseSVNライクなUI、直感的な競合解決、Pull Requestを使った簡潔な作業が特徴

頻度の高いアップデート作業の簡素化と可視化を実現したアイレット

次に、「GitHub Enterpriseアップデート作業効率化の試み」と題して、アイレット株式会社 cloudpack事業部 川原 洋平氏が登場。同社はcloudpackという事業名でAWSを利用する際の運用・保守の代行サービスを提供しています。川原氏は、福岡からリモートで、お客様からお預かりしているAWS環境の構築や運用に携わっており、GitHub Enterpriseもそのひとつだといいます。

「GitHub Enterpriseのアップデートは頻度が非常に多く、RSSに流れてくる通知をSlackと連携して常に監視しています」と状況を説明する川原氏は、アップデート作業の事前・事後の作業(日程調整や報告業務)に工数がかかり、運用業務のほとんどがGitHub Enterpriseのアップデート作業に費やされていたといいます。

そこで、作業効率化するために、アップデート通知のRSSを検知して稼働中のGitHub Enterpriseバージョンと比較し、アップデート対象であれば自動でバックログを起票することで、お客様と日程調整を開始できる仕組みを構築しました。

また、アップデート作業の連絡→メンテナンスモード(APIを活用)→監視停止→AMIバックアップ→アップデートの確認→監視再開→作業完了の報告、といった作業をスクリプト化しました。

「これにより、アップデート作業を運用チームで回せるようになるとともに、手順が簡素化されるようになりました。また、作業の進捗を可視化することにより、タイムラグなくアップデートに対応し、万が一の事態にもすぐに対応できるようになりました」と話す川原氏。今後は、より人の手を介さない仕組み作りを進める考えだといいます。

外部クラウド認証基盤と組み合わせ効率的な管理を実現したパナソニック

Adminセッションの最後は、「GitHub Enterprise導入事例紹介 ~インターネットクラウド上でのGitHub Enterprise環境構築~」と題して、パナソニック株式会社 テクノロジーイノベーション本部 情報企画部 瀬野 良太朗氏が務めました。

パナソニック株式会社の瀬野氏

GitHub Enterprise導入の目的は、ソフトウェア開発領域が年々拡大する中で、オープンイノベーション実現に向けたソースコード集約と共有(OSS化)だとし、「開発スタイルとして、Panasonic内でのオープンソース化実現と、将来的な社外オープン化によるラピッドプログラミングの加速をめざしました」と瀬野氏は語ります。

そのため、あえて社外のクラウド(AWS)の仮想マシン上にGitHub Enterpriseを配置し、インターネット上で公開することで社外からもアクセスできる環境を構築しましたが、不正アクセス(なりすまし)や情報漏えい・データ改ざん、バックドアなどのセキュリティリスクが大きな課題となったといいます。

図4 パナソニックの解決策。GitHub Enterpriseや構築基盤側での対策に加え、外部のクラウド認証基盤と組み合わせることでより効率的な管理を実現

対策として、IaaS基盤制御(認証強化、アクセスログ・アプリ操作ログ管理、高位権限者ログ管理・監視)に加え、外部クラウド認証基盤(Azure AD)と連携することで、より効果的な管理を実現。具体的には、接続元IPによる通過制限の設定、Office365とのSAML連携(マルチクラウドSSO)、高位権限者ログ収集の仕組みの構築などです。

この取り組みの結果、1)GitHub Enterpriseをクラウドで利用する場合のセキュリティリスクは別ソリューションとの組み合わせで解決した。2)SAML認証連携により自社で保有している対策済み認証基盤連携も実現できた。3)GitHub Enterprise単独のアクセスログ管理に加え、ログ分析やセキュリティリスク検知の実現もできた。4)GitHubサーバを公開したことで社内の利用が進み他社とのOSS運用も加速した、といった知見を得ることができたと瀬野氏は分析します。

ストレスフリーでモダンな開発環境をGitHub Enterpriseで実現したシンプレクス

ここで、シンプレクス株式会社の伊東 嗣音氏による「GitHub Enterprise導入から社内普及までの軌跡 ~エバンジェリストとしての取り組みについて~」と題した特別セッションが設けられました。

シンプレクス株式会社の伊東氏

同社のビジネスは、日本の大手金融機関に向けて、金融とITの両方に精通したプロフェッショナルがキャピタル系・リテール系双方の金融フロントソリューションを提供し、コンサルティングからシステム開発、運用・保守に至るまで一貫して支援するのが特徴です。伊東氏はシステム開発の現場でリーダーや統括を務め、GitHub Enterprise導入時から社内エバンジェリストと運用管理者を兼務してきました。

GitHub Enterprise導入以前のコード管理はSVNが中心で、“やはりモダンな開発を当たり前にやりたい”という有志による草の根的に導入されたGit由来のOSSクローンが偏在していたといいます。「インスタンスが点在し、未統制の不健全な状況だったので監査上の問題があったほか、インスタンス管理者が独自にバックアップやリソース監視を実施するなどコスト増も問題でした」と伊東氏は振り返ります。

最もメジャーなGitHub Enterpriseを導入することによって、1)コードレビューを重視する企業文化の醸成、2)中堅・上位エンジニアの知見をシェアできる仕組み作り、3)ストレスフリーでモダンな開発環境の整備などをめざしました。

GitHub Enterpriseの導入後、組織全体での開発効率の向上や、レビュー効率の飛躍的な向上、開発チームのレベルアップなどが実現しています。

伊東氏は、エンジニアの立場としては、自分の開発プロジェクトの全案件でGitHub Enterpriseを使い、プロジェクトがスムーズに推進できることを証明したかったといいます。また、エバンジェリストの立場としては、布教すべきターゲットを明確にし、アーリーマジョリティに理解を広げてキャズムを超えることと、マネジメント層とエンジニア層の両方からの理解を得ることを意識したと述べます。

例えば、プレイングマネージャーではない金融業務・マネジメント寄りのPM層向けには、GitやGitHubの用語の解説から始め、GitHub Enterpriseの特徴、導入によるさまざまな効果、どういう形で顧客のバリューにつながるのかなどを説明し、技術理解のギャップをシンプルに埋めていったといいます。

一方、エンジニア層向けには、エバンジェリストとしてSVNからの移行・導入時のハードルをひたすら下げることに専念。移行・導入サポート、周辺サービスとの連携支援、開発プロセスの標準セットの提供、アフターフォローなどを実施しました。

図5 開発プロセスの標準セットの例。実際に伊東氏が開発リーダーを担当しているプロジェクトで用意・利用しているもの(効果実証済み)

伊東氏は、GitHub Enterpriseの社内普及に必要なこととして、1)パッション溢れるエバンジェリストがいること。ひとりで頑張る必要はなく、エバンジェリストチームで明るい未来を語る牽引力が必要。2)エバンジェリストに説得力があること。現場の問題の本質を理解できていない単なる社内サービス管理者であってはならず、組織・プロジェクトを成功させることで評価され、尊敬されること。3)組織がエバンジェリストを正しく評価すること。数値化や可視化が難しいリーダーシップを組織がどう評価できるかが鍵となり、技術者全員が“エバンジェりたくなる”ようなフィードバックが重要だと列挙しました。

GitHub EnterpriseやCircleCIの活用を支援するパートナー企業のソリューション

今回のユーザ会の終盤では、マクニカのパートナー企業からGitHub Enterpriseの導入をサポートする開発支援ツールなども紹介されました。

伊藤忠テクノソリューションズ株式会社(CTC)は、ユーザ企業のAWS環境上にDevOpsの実装を加速するCI(継続的インテグレーション)/CD(継続的デベロップメント)パイプラインをワンクリックで自動生成可能なサイト(https://www.ignite.ci/)を公開しました。アプリケーションのタイプを選択し、CI/CDパイプラインを生成すると、それが実行環境をプロビジョニングして、デモアプリケーションもデプロイすることが可能になります。CTC クラウドサービス本部 クラウドインテグレーション部 吉田 健氏は、「DevOpsを加速させるためには技術領域だけではなく文化の醸成も必要です」と訴えます。

CTCの吉田氏

また、株式会社アジャイルウェアでは、マネージャ業務に最適化したプロジェクト管理ツール「Lychee Redmine」を提供。GitHub Enterpriseとも連携するこの製品は、発売からわずか3年で300社近い導入実績を持つベストセラーとなっています。また、Web上での議事録作成・共有サービス「GIJI」も提供。株式会社アジャイルウェア 営業 水口 崇氏は、「議題共有、議事録共有、議事録承認など、会議の3つのムダを省き、Lychee Redmineで決定事項の連携も可能。会議に関わる時間を短縮し、働き方改革を加速します」と説明します。

株式会社アジャイルウェアの水口氏

さらに、マクニカではGitHub Enterpriseと連携するCircleCIのエンタープライズ版の拡販にも力を入れています。一般的なCIでは各開発者がローカルの端末上でテストを実行し、プッシュする作業が必要ですが、CircleCIはGitHub Enterpriseにプッシュされると同時に自動でインテグレーションテストを実行し、ビルドやデプロイなどの自動実行も可能になります。

「CircleCI.com(クラウド版)とCircleCIエンタープライズ(オンプレミス版)とは基本的に同じ機能が提供されています。エンタープライズ版は、GitHub Enterpriseと密に連携できる設計が組まれており、LDAP運用やカスタマイズ性の高さなどが強化されています」とCircleCI社 開発エンジニア金 洋国氏は説明します。

CircleCI社の金氏

マクニカでは、国内一次代理店の責務として、GitHub EnterpriseとCircleCI(エンタープライズ版)の構築(インスタンス構築・初期設定・バックアップ・HA構成)、保守(日本語での無償テクニカルサポート)、運用(アップグレード・管理者向けトレーニング・エコシステムとの連携サポート)、定着(ハンズオントレーニング)などの各種サービスを提供しています。各ツールベンダーとエンドユーザ企業・パートナー企業との架け橋となるよう、さらにサポートを強化していく考えです。

お問い合わせ・資料請求

株式会社マクニカ  GitHub 担当

月~金 8:45~17:30