20億行のコードを保存し、毎日4万5000回のコミットを発行しているGoogleが、単一のリポジトリで全社のソースコードを管理している理由

2015年9月24日

Googleは検索サービスやGoogle Apps、Google Cloud Platformなど巨大なサービスを多数運営しています。その同社は、20億行にもおよぶソースコードの管理をサービスやプロジェクトごとに分けず、すべて単一のリポジトリで管理しているそうです。

先週9月14日にサンノゼで開催されたイベント「@Scale」で、Googleによるセッション「The Motivation for a Monolithic Codebase: Why Google Stores Billions of Lines of Code in a Single Repsitory」(単一コードベースへの取り組み:なぜGoogleは単一リポジトリに数十億行ものコードを保存しているのか)」が行われ、その模様がYouTubeで公開されています

なぜGoogleは単一のリポジトリでソースコード管理を行っているのか。セッションの要点をまとめました。

Why Google Stores Billions of Lines of Code in a Single Repsitory

Googleにおけるソースコードマネジメントストラテジについて。

Googleではソースコードをモノリシックな単一のリポジトリに保存している。これまで何度も複数のリポジトリにするかどうか議論してきたが、そのたびに単一のリポジトリの方がよいという結論に達してきた。

なぜそうしてきたのかを紹介する。

その前に、Googleのコードの規模を紹介しよう。いくつかは初めて発表する数字だ。

fig

ファイル数は10億、ソースコードは900万ファイルで、これにドキュメントファイルやコンフィグレーションファイルなどが別にある。コードは全部で20億行。

リポジトリのユーザーは世界中に約2万5000人。コードに対して1日約4万5000回のコミットが行われており、約1万5000が人によるもので、約3万が自動化によるもの。

特に2004年にGmailをローンチしてからコードの変更が急速に増えてきている。特に、最近は自動化に伴うコミット数が急激に成長している。

Googleのデベロッパーは、クラウド上のパーソナルなワークスペースにコードをコピーし、プログラミングし、レビューを受け、コミットする。

コードの自動分析、自動テストはこの作業のさまざまな段階で行われている。

単一レポジトリの利点

fig

共有されるライブラリのフォークがない、どのバージョンのファイルが信頼すべきものなのかといった混乱が生じない。

デベロッパーは社内のすべてのコードを自分たちのツールで触ることができるため、必要なライブラリや関数を見つけやすい。

コンパイラチームでは、社内の最新コードを使ってコンパイルやコード生成を試すことができる。

古いAPIを自信を持って削除できる

死蔵されているコードを見つけ、削除するツールを利用して、コードの健全性を高めている

数千ファイルの同時変更でも1回のコミットで確実に実行できるため、ファイル更新などの問題が発生しにくい。


関連記事

このエントリーをはてなブックマークに追加
follow us in feedly

タグ : Google , クラウド , 開発ツール



≫次の記事
Uberはデータセンターが落ちたときのために運転手たちのスマートフォンをバックアップに使っている
≪前の記事
Amazon S3に安価な「頻繁にアクセスしないデータ」用オプションが追加。価格は半額程度

Loading...

Blogger in Chief

photo of jniino Junichi Niino(jniino)
IT系の雑誌編集者、オンラインメディア発行人を経て独立。新しいオンラインメディアの可能性を追求しています。
詳しいプロフィール


Publickeyの新着情報をチェックしませんか?
Twitterで : @Publickey
Facebookで : Publickeyのページ
RSSリーダーで : Feed



Publickey 最新記事 10本

Publickey Topics 最新記事 10本


PR - Books


fig

fig

fig

fig



blog comments powered by Disqus