GitHub

ギットハブ

GitHub - ユーザー事例 - DMM.com様

GitHub EnterpriseとCircleCIを採用しエンジニアが開発に集中できる環境を構築。
DevOpsとソーシャルコーディングを可能にし
自動化による開発効率の向上と迅速なサービス提供を実現

DMM.com 様 DMM.com 様

DMM.com

月間約25 億ページビュー(2017 年1月)、主要サービス数約40(2018 年3月現在)、会員数2800 万人以上(2018 年1月)の総合エンターテインメントサイト「DMM.com」を運営。

Before
  • プロジェクトごとに閉じた縦割りの開発によって“車輪の再発明”が頻発
  • 複数のツールを用途ごとに切り替えながらの開発作業がエンジニアの思考を中断
  • 従来のCIツールは環境構築と専門知識が必要でCIの苦手意識を助長
矢印:横
矢印:縦
After
  • 開発スピードのさらなる向上が実現できる、全社横断的なコラボレーション基盤を構築
  • 課題管理、進捗管理、コード、レビュー、ナレッジ共有をGitHub Enterpriseに集約し、開発効率の向上を実現
  • 開発生産性を高める最新ツールと連携しやすくするための環境を整備
  • CI/CDによるビルドとデプロイの自動化で安定した品質の高頻度リリースを実現

DevOps 推進に必要な開発基盤とソーシャルコーディングの導入

DMM.comは、デジタルコンテンツ配信、オンラインゲーム、通販・レンタル、オンライン英会話、モノづくり支援、太陽光発電など40を超える事業を幅広く手掛ける総合サイトであり、その社内では、サイト運営だけではなく、マーケティング、フルフィルメント、カスタマーサポートやIT 基盤の開発、ネットワークインフラの運用などをトータルに自社で一手に担っている総合IT 企業でもある。

同社は2016年初頭から社内開発環境の大幅見直しに着手。主に2つのゴールに向け新たな開発環境の構築を行った。1つは、ビジネススピードとサービス品質の両立に向けたDevOps推進に関する新たな開発基盤の導入。もう1つは、ソーシャルコーディングの導入によるエンジニアの生産性と開発スピードの向上、およびエンジニア同士のコラボレーションの促進である。

CTO 室 佐藤 紘典氏は、その背景にソフトウェア開発環境の問題があったと指摘する。「以前は別のGit系リポジトリ管理ツールを活用するケースが多かったのですが、一覧性に課題がありプロジェクトごとにリポジトリが分断され個々にクローズドな形で開発が進められたことから、複数の部署が重複して開発してしまう、いわゆる“車輪の再発明”も頻繁に起こる状況でした。それが、DevOpsやソーシャルコーディングを目指すきっかけとなったのです」

そこで同社が注目したのは、ソフトウェア開発プラットフォームをSaaS 型サービスとして提供するGitHub.comと同様の機能を、企業向けとしてオンプレミス環境でセキュアに利用できる「GitHubEnterprise」だった。

効率的な開発環境を構築し
利用者が増加全社規模でのGitHub Enterprise導入を決定

他のGit系ツールに比べGitHub Enterpriseが有利な点は主に2つあった。第1に作業の効率化。これまでの開発手法は、課題のチケットを起票し、ソースコードを書き、ナレッジをリポジトリに蓄積するといった開発プロセスを、複数のツールを切り替えながら行わなければならず、エンジニアの思考が中断し、コード開発に集中できないという弊害があった。GitHubEnterpriseは課題管理、進捗管理、コード、レビュー、ナレッジ共有を行うことができるため全ての情報を一ヶ所に集約でき、ワンストップで開発を進められる点が開発効率の面で優れていると評価された。

第2に他のツールとの連携性の高さとGitHub APIを使った自動化。開発生産性を高める最新ツールの多くはGitHubとの連携を前提としている現状があり、そうしたものを社内に取り込んでいくためには中心にGitHub Enterpriseが必要だったという。

GitHub Enterpriseとの連携で最も有力視していたのが、CI(継続的インテグレーション)とCD(継続的デプロイメント)を実現する「CircleCI」のエンタープライズ版だ。以前からCIにオープンソースのJenkinsを使用してきたが、ネットワークやサーバなどのCI環境をあらかじめ構築する必要があり、管理も専門知識が必要で、それがCIへの苦手意識につながっていたという。CTO 室 唐澤 陽介氏は、「CircleCIはcircle.yml(YAML 形式で記載するCircleCIの定義ファイル)をテキストで書くだけでシンプルに開始でき、リポジトリと同じ場所で管理できるため管理負担も低い上に、GitHubEnterpriseからコードの変更をフックすることでリアルタイムにビルドを実行でき、マージ前のテストプロセスによって安定した品質のリリースを実現できます。また、設定ファイルの中に前提条件などがコードで表現できるので、再利用性がありノウハウが失われにくく、サービス動作環境の全体像を把握しやすい点も魅力でした」と語る。

DMM.com では、2016年始めから限定的にGitHub.comを使用し、6月頃まで業務適合性を調査したところ、開発効率が高まることが確認できたため全社規模でのGitHub Enterprise導入を決定した。「企業で活用するために不可欠な、ツールとしての安定性の高さや、バージョンアップ、HA(高可用性)構成、バックアップなどへの対応、さらにはセキュリティ機能なども重視しました」と佐藤氏は述べる。

12月に正式にGitHub Enterpriseの採用が決定し、既存ツールからの置き換えを順次進めながら、2017 年11月までにエンジニア総数に近いシート数まで順調に導入が進んでいる。

一方、CircleCIもGitHub Enterprise 導入と同時に採用が決定し、2017 年3月から導入を開始し、順次ユーザ数を増やしながら活用されている。「今後はGitHub EnterpriseとCircleCIをペアで活用することを前提に、CircleCIにも全員がアカウントを持てるよう増やしていく予定です」と唐澤氏は述べる。

GitHub Enterprise およびCircleCI の導入をサポートしたのは国内一次代理店のマクニカ。導入直後から活用が確定したチームを対象に勉強会などを実施したほか、迅速に問い合わせ対応を行い、導入から安定運用までトータルに支援を行っている。

効率的な開発環境を構築し利用者が増加全社規模でのGitHub Enterprise導入を決定

エンジニアに使いやすい環境を整え開発スピードが20%程度アップ

「導入から約1 年を経た現在、新しいサービス開発はGitHub EnterpriseとCircleCIを使って進められており、チケットはGitHub Enterprise のIssue機能で管理し、ナレッジもGitHub Enterprise のWiki 機能に集約するなど開発効率は確実に向上しつつあります。コラボレーションや“車輪の再発明”の防止についてはまだ課題を残すものの、CI/CDによるインテグレーションテストやデプロイの自動化の効果が浸透してきたと感じています」と佐藤氏は述べる。

GitHub Enterprise+CircleCI によるデプロイの自動化に加え、同社ではBlue-GreenDeployment(本番環境とアップデート環境を用意しデプロイの自動化とダウンタイムゼロを目的としたリリース手法)の実施も進め、ユーザが利用している状態でも安全にデプロイすることが可能な環境が整っているという。
「昔はデプロイするにもスケジュールを決めるなど非常に慎重に行っていましたが、現在は細かな単位で頻繁にリリースするようになり、心理的な負担が軽減するとともに、手戻りなどのトラブルも減少し、迅速なサービス提供が実現されています」(佐藤氏)

また唐澤氏も、「GitHub API を使用してPullRequest のマージ作業を自動化するためのBotを社内で開発したり、CircleCI APIを利用することでチャットツールのインターフェイスから簡単にデプロイしたりするなど、ユニークな機能を独自に開発し公開するユーザも増えエンジニアにとっては使いやすいようです。本質的な業務により集中できるようになり、体感的に20%程度はスピードアップされていると思います」と現状を分析する。

さらに、デプロイの自動化はIaC(Infrastructureas Code:ソフトウェア開発のプラクティスをシステム管理に応用するための方法論)の可能性も広げ、インフラ構成をコード化してCircleCIで自由にデプロイするような運用を行っているチームが増えているという。

今後は、デザイナーやディレクター、あるいは人事部などにもGitHub Enterprise が利用できる環境を整えることが目標という唐澤氏は、「GitHubEnterpriseをサービス開発にまつわる情報が容易に共有できる“場所” にしたいと思っています。そのために社内制度と共存しながら徐々にユーザを増やしていく計画です」と話す。

そして今回のプロジェクトを振り返り、佐藤氏は「GitHub Enterprise とCircleCI の導入は開発チームと運用チームがお互いに協調し合い頻繁にコミュニケーションを取ることで効率性を高めるDevOps の実現と、ソーシャルコーディングやコラボレーション開発などの定着が目的で、従来はそこに至るまでの障壁が大きく避けてきた事も多かったのですが、現在はあえてDevOpsを唱える必要もないほど自発的に取り組めるようになったことが最大の成果だと思っています」と総括する。

お問い合わせ・資料請求

株式会社マクニカ  GitHub 担当

月~金 8:45~17:30