SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

特集記事

サイバーエージェントのGitHub活用 ~ 導入から運用体制、開発フロー、勉強会による現場への普及活動まで


  • X ポスト
  • このエントリーをはてなブックマークに追加

GitHub Enterpriseの運用体制

 GHEは、GitHubをオンプレミスな環境で利用できるようにしたプロダクトです。 クラウドサービスではなく、VMware[4]またはVirtualBox[5]上で動作するイメージとして提供されるため、GHEを安定稼働させるためには運用し続けるための体制が重要となります。

 Ameba事業本部では、全ての開発プロジェクトを横断的に支援する部署Ameba Dev. CenterがGHEを運用しています。 定期的なバージョンアップ、障害対応、アカウント管理、Organization管理など、安定稼働に必要な作業を一手に引き受けてくれています。 また、快適に利用できるように、次のような運用ルールも取り決めています。

  • プロジェクトリソースのバージョン管理以外の用途は禁止(バックアップ、DBのダンプ保存、パッケージやコンパイル後のコード保存)
  • 大きなメディアファイルやPhotoshopファイル(.psd)の登録は禁止[6]
  • リポジトリは最大1GBを目安にする[7]
  • プロジェクトに関わるものは全てOrganizationを利用

 こうした取り決めの下でGHEを利用することで、安定運用を続けることができています。

 また、Ameba Dev. CenterではJIRA[8]やHipchat[9]など、システム開発に必要な様々なツールを提供しており、GHEとの連携もサポートしてくれています。 至れり尽くせりで非常にありがたいです!

[4] 米VMWareが提供している仮想化ソフトウェア

[5] 米Oracleが提供している仮想化ソフトウェア

[6] これらのファイルは共有ディレクトリやSVNを推奨しています。

[7] 1GBを超えるとパフォーマンスにも影響があります(GitHub Help「What is my disk quota?」を参照)。

[8] 米Atlassianが提供している課題・プロジェクト管理ツール

[9] 米Atlassianが提供しているチャットツール

リポジトリの利用方法

 Gitリポジトリの利用方法は、プロジェクトの内容や特性によって異なってきます。 ここでは社内のプロジェクトを例に、リポジトリ管理の対象や採用している開発フローについて説明します。

リポジトリ管理対象

 多くのプロジェクトでは、次のような対象をリポジトリ管理しています。

Webサービスやネイティブアプリ、ライブラリなどのソースコード管理
これらは、後述する開発フローを利用しているケースがほとんどです。

管理画面、Jenkins[10]、バッチなどで利用しているスクリプトファイル
これらも運用に合わせて頻繁に変更されるため、リポジトリ管理しています。

開発環境や本番環境などの、環境別の設定ファイル
ソースコードと分離することで、開発フローと関係なく設定を任意のタイミングで変更できるメリットがあります。パスワードやシークレットキーなど、セキュリティ上考慮が必要な情報に関しては、リポジトリ管理からは除外しているケースもあります。

公開用コンテンツ管理(画像や音声ファイルなど)
そのまま公開可能なコンテンツをリポジトリ管理しています。Illustrator(.ai)やPhotoshop(.psd)などの作業中のファイルは、リポジトリの容量がすぐに肥大化してしまうため、Git上ではあまり管理していません。

プロジェクトの設計資料
一部のプロジェクトでは、設計資料などもMarkdown[11]などのテキスト形式でリポジトリ管理しています。バイナリファイルは競合すると綺麗なマージができませんので、テキスト形式のファイル以外は無理にリポジトリ管理せず、共有ディレクトリなどを利用しているケースも多いです。

Chef[12]リポジトリ
プロジェクトごとのChefリポジトリや、インフラチームが構築している共通Chefリポジトリなどがあります。

Jenkinsジョブ
Jenkinsのジョブも運用に合わせて変更することがありますので、バックアップに近い位置付けでリポジトリ管理しています。

 もちろん、ここで挙げた以外にも、リポジトリ管理している対象はたくさんあります。

[10] OSSの継続的インテグレーション(CI)ツール

[11] 文書を記述するための簡易マークアップ言語。GitHubのReadmeファイルでも利用されています。

[12] 米chefが提供しているインフラ環境の構成管理ツール

次のページ
GitHub Enterprise導入のメリット

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
特集記事連載記事一覧

もっと読む

この記事の著者

松下 雅和(マツシタマサカズ)

1978年生まれ。SIer2社を経て、2011年に株式会社サイバーエージェントに入社。主にソーシャルゲームのサーバサイド開発やインフラ構築に携わる。関連スキルはJava、JavaScript、Node.js、MongoDB、Cassandra、AWS、Scrumなど。趣味はロードバイク、カメラ、ゲー...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/8092 2014/09/09 14:26

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング