BT

MicrosoftがWindowsのコードリポジトリをGitに移動

| 作者: Abel Avram フォローする 11 人のフォロワー , 翻訳者 h_yoshida フォローする 1 人のフォロワー 投稿日 2017年7月12日. 推定読書時間: 4 分 |

原文(投稿日:2017/05/25)へのリンク

MicrosoftはWindowsのコードベースをSource Depotから、GVFSを使用したGitに移行する作業を完了した。

コーポレートVPのBrian Harry氏によると、同社は数年前に、エンジニアリングシステムの変更を決定した。社内で共通的に使用されているツールもいくつかあるが、ただひとつ、あるいは少数のチームだけが使用しているものもある。この状況はコラボレーションを難しくすると同時に、ツールやプロセスの違いに起因するマイナスの影響をもたらしている。Microsoftほどの規模の企業は、エンジニアリングシステムがカバーする分野も数多い – ソース管理、ビルド、リリース、テスト、テレメトリ、静的分析、セキュリティなど – ため、ひとつのステップで対応するには複雑過ぎる。そのため同社では、最初に作業計画、ソース管理、ビルドを対象とすることを決定した。

第1ステップのひとつは会社全体をVisual Studio Team Serviceで標準化し、そこから他のすべてのツールを使用可能にすることだった。ソース管理に関しては、大部分はTFSを使用しているものの、特に大規模な開発チーム - WindowsとOffice - で、同社が2000年代初めに導入したVCSであるSource Depotの使用が続けられていた。この2チームを別システムに移行する作業は、あまりにもコストが高いと考えられていたため、これまで誰もが尻込みしていたのだ。

いくつかの選択肢 - TFVC、Source Depot、Git、Mercurial - を議論した後、Microsoftは、Gitが適切な解であるかどうかを試してみることにした。中規模ないし小規模なリポジトリをGitに移行した時には問題がなくても、規模が大きな場合にはスケーリングに関する重大な問題が発生する。

当社ほど大規模なコードベースを持つ企業は多くありません。WindowsとOfficeは特に大規模で(他にもありますが),数千人のエンジニア,数百万のファイル,数千台のビルドマシンが常に稼働しています - 正直、気の遠くなる規模です。ここで明確にしておきますが,この記事で言うWindowsは,実際には非常に広い範囲 - PC用,モバイル用,サーバ用,HoloLens用,Xbox用など - を対象としています。Gitは分散型のバージョン管理システム(DVCS)なので,リポジトリとヒストリをすべてローカルマシンにコピーします。Windowsのソースでこれを行なうのは冗談のような話です(実際に私たちは、何度も笑わせてもらいました)。 TFVCとSource Depotについては,いずれも大規模なコードベースやチームを念頭に置いた綿密な最適化が行われているのですが、Gitはこれまで,これほどの規模で(あるいは多分,もっと小さな規模でも)採用されたことは「一度も」ありませんでしたし,「絶対に」うまく行かないだろう、と多くの人たちが断言していました。

数値で見るならば、Windowsのリポジトリはおよそ300GB、ファイル数は350万で、4,000人のエンジニアが、440のブランチで毎日1,700回程度のビルドを実施している。Gitリポジトリはクローン時にすべてをダウンロードする必要があるため、大規模なプロジェクトでは動作が遅くなる。この問題の解決策が、Git Virtual File System(GVFS)の導入による仮想化だ。GVFSを使用するGitでは、すべてのリソースがローカルにあるかのように動作するが、実際にはシステムがユーザの操作を監視して、必要に応じてリソースをネットワーク越しに取得する。仮想ファイルシステムを使用することによるgit.exeへの影響はほとんどない。Microsoftとしては、Gitにあまり手を入れたくなかったのだ。

Gitをフォークしたくはありませんでした - 厄介なことになりそうですから。また、コミュニティにコントリビューションとして返せないような変更は望んでいませんでした。そこで仮想ファイルシステムのドライバに関して、Gitの“内部”をできる限り詳細に調査することにしたのです。

3ヶ月以上の時間をかけることで、Microsoftは、Windowsチーム全体をSource DepotからVS Team ServicesのホストするGitに移行させた。移行は成功し、世界最大のGitリポジトリとなった、とHarry氏は述べている。当初発生したいくつかのパフォーマンス上の問題は、チューニングを行なうことで解決した。関係する開発者を対処とした内部調査では、70%以上がGitについて“非常に満足”あるいは“やや満足”と回答している。

MicrosoftはGVFSをオープンソースとして公開し、関心のある企業に対してその利用とコントリビューションを求めると同時に、非常に大規模なGitリポジトリを実現可能なソリューションとして推奨している。

 
 

この記事を評価

採用ステージ
スタイル
 
 

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

あなたの意見をお聞かせください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする
コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

ディスカッション

InfoQにログインし新機能を利用する


パスワードを忘れた方はこちらへ

Follow

お気に入りのトピックや著者をフォローする

業界やサイト内で一番重要な見出しを閲覧する

Like

より多いシグナル、より少ないノイズ

お気に入りのトピックと著者を選択して自分のフィードを作る

Notifications

最新情報をすぐ手に入れるようにしよう

通知設定をして、お気に入りコンテンツを見逃さないようにしよう!

BT