当社は 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 分程度になりました。
5GB の Git リポジトリをシドニーからサンフランシスコまで 1 分未満でクローン。はい、1 分です。
その様子は以下の通りです。Git LFS オブジェクトのミラーリングがオンデマンドで機能します。つまり、クライアントが Git LFS オブジェクトをミラーサーバーからダウンロードするように要求すると、ミラーサーバーにオブジェクトがない場合にのみアップストリーム ノードから送信されます。その後同じオブジェクトをダウンロードする場合は、ミラーに保存されているコピーを直接ダウンロードします。それはまさにソフトウェア天国における素晴らしい組み合わせです。
ご自身で確認してください
まだ信じられませんか? 良いでしょう。疑うのも無理はありません! Bitbucket Data Center 4.5 にアップグレードするか、無料で試してご自身の目で確認してください。