Git LFS 対応でさらに賢くなったスマートミラーリング

Teams using Git are increasingly distributed across geographies当社は 1 月に Bitbucket Data Center 対応のスマートミラーリングを紹介しました。これはクローンに要する時間を削減することで各地に分散しているチームを支援するものです (コーヒー休憩を取るための言い訳も削減しました。すみません)。それと同時に、Git Large File Storage (LFS) も追加しました。これは、画像、動画、その他の巨大なメディア資産を使用する必要のあるチームに向けたものです。

これらの機能はどちらも Git を大規模に使用する支援をしますが、方向性は異なるものです。スマートミラーリングは、各地に分散したチームを支援するもので、Git LFS は巨大ファイルを管理する必要のあるチームを支援するものです。

いずれもそのままでも素晴らしいものですが、次のように考えてみてください。もし一緒に使ったら、分散開発チームは何ができるだろうか…? それで十分です! 当社は Bitbucket Data Center 4.5 でGit LFS サポートとスマートミラーリングを統合しました。

スマートミラーリングと Git LFS それぞれの性能

当社のチームは、エンジニアが世界中にいて同じリポジトリを頻繁に使用しています。私たちは、スマートミラーリングを使って 5GB のリポジトリをシドニーとサンフランシスコでクローンするとどうなるのかと考えていました。普通のクローンタスクには 1 時間以上かかります。しかし、ローカルミラーを使用するとこの時間はわずか 5 分にまで削減できることが分かりました (それはオーストラリア非公認の “公認” ミルク入りコーヒーを飲みに行くのに丁度いい時間です)。

また、バイナリファイルを含むこの同じリポジトリが各クローン操作を遅延させていたことも分かりました。また、バイナリを Git LFS へ移動することで、LFS が使用できるリポジトリの地理的に離れたクローン操作を (つまりローカルミラーを使用せずに) 5 分にまで改善することに成功しました

5 + 5 = …1?

私たちは本当に興奮して、目もくらみました。私たちは 2 つの機能の組み合わせを試す必要がありました。

まずは 5GB のリポジトリから調査を始めました。次に Git LFS による削減を行いました。次にスマートミラーリングを使ってシドニーとサンフランシスコ (私がよく使用している飛行記録によると 4,205 マイル離れています) のサーバー間でミラーしました。

これらの 2 つの変更により、元々のクローン時間が 1 時間以上速くなり、わずか 1 分程度になりました。

Bitbucket's smart mirroring clones massive Git repos in record time

5GB の Git リポジトリをシドニーからサンフランシスコまで 1 分未満でクローン。はい、1 分です。


その様子は以下の通りです。Git LFS オブジェクトのミラーリングがオンデマンドで機能します。つまり、クライアントが Git LFS オブジェクトをミラーサーバーからダウンロードするように要求すると、ミラーサーバーにオブジェクトがない場合にのみアップストリーム ノードから送信されます。その後同じオブジェクトをダウンロードする場合は、ミラーに保存されているコピーを直接ダウンロードします。それはまさにソフトウェア天国における素晴らしい組み合わせです。

ご自身で確認してください

まだ信じられませんか? 良いでしょう。疑うのも無理はありません! Bitbucket Data Center 4.5 にアップグレードするか、無料で試してご自身の目で確認してください。

Bitbucket Data Center 4.5 を試す


*本ブログは Atlassian Blogs の翻訳です。本文中の日時などは投稿当時のものですのでご了承ください。 *原文 : 2016 年 4 月 20 日 “Smart mirroring just got smarter with Git LFS support

About Kelvin Yap

Trading the beaches of Sydney for the fog of San Francisco, when he's not on his bike or advocating the adoption of the metric system in the US, Kelvin spends his time as a Product Marketing Manager for Atlassian's developer tools. Find me on Twitter! @kelvinyap

View all posts by Kelvin Yap »