Dropbox、GitHubと協力してモノレポのサイズを87GBから20GBに削減
DropboxはGitHubと協力してGitデルタ圧縮を最適化し、バックエンドモノレポを87GBから20GBに削減した。これによりクローン時間とCI性能が向上し、大規模エンジニアリングにおけるストレージ非効率の影響が明確になった。
キーポイント
モノレポサイズの大幅削減
DropboxはGitHubとの協業によりGitデルタ圧縮を最適化し、バックエンドモノレポの容量を87GBから20GBへ約77%削減した。
開発ワークフローの効率化
リポジトリサイズの縮小により、クローン時間の短縮とCIパイプラインのパフォーマンス向上が実現し、開発者の生産性が改善された。
大規模エンジニアリングへの示唆
モノレポのストレージ非効率性が大規模チームの作業フローに与える影響が明確になり、インフラ最適化の重要性が再確認された。
影響分析・編集コメントを表示
影響分析
本記事は、大規模テック企業におけるDevOpsインフラの最適化が、開発サイクルとコストに直接的な影響を与えることを示している。Gitの内部動作を深く理解し、ベンダーと連携して最適化するアプローチは、類似規模の組織にとって実用的なモデルとなる。AI開発基盤を含む大規模コードベース管理において、ストレージとビルド時間の最適化は継続的な競争力維持に不可欠である。
編集コメント
技術的な深みは限られるものの、大規模開発現場における「インフラ最適化の投資対効果」を数値で示した実務的な事例として評価できる。AI開発基盤の規模が拡大する中、Gitストレージとビルド時間の最適化は無視できないコスト削減要因となる。
Dropboxのエンジニアは、Gitのストレージおよびデルタ圧縮(delta compression)モデルにおける非効率な問題を解決することで、バックエンドのモノレポ(monorepo)のサイズを87GBから20GBに削減し、開発者の生産性と継続的インテグレーション(CI)のパフォーマンスを向上させました。この取り組みは、Dropbox内の各チーム間でバックエンドサービスや共有ライブラリの統合ポイントとして機能するリポジトリのスケールアップに伴う課題がきっかけとなりました。
モノレポが大きくなるにつれて、エンジニアリングチームは1時間以上かかる遅いクローン操作(clone operations)や、繰り返されるフェッチとビルドのオーバーヘッドによるCIパイプライン(CI pipeline)のパフォーマンス低下を経験し始めました。また、リポジトリの拡張はホスティング制限に達するリスクも高めました。Dropboxエンジニアリングチームの調査によると、この問題は主に大きなバイナリや誤ってコミットされたファイルによるものではなく、Gitの内部圧縮ヒューリスティック(compression heuristics)が大量の関連ファイルをどのように処理していたかに起因していました。
Gitはファイル間の類似性を特定し、差分を効率的に保存することでストレージを削減するデルタ圧縮(delta compression)を使用しています。大規模なスケールで運用する際、Dropboxのエンジニアはこれらのヒューリスティックが最適ではないパックファイル(packfiles)を生成し、実際のコード変更に対して不釣り合いに大きなリポジトリの成長を引き起こしていることを観察しました。期待される成長と実際に観測された成長の不一致は、リポジトリの内容だけでなく、ストレージ動作そのものに対するより深い調査を促しました。
DropboxシニアソフトウェアエンジニアのIshan Mishraは次のように指摘しています:
成長率は、Dropbox規模での通常の開発活動から予想されるものとは一致しませんでした。これは、私たちが保存している内容だけでなく、どのように保存されているかが問題だったことを示唆しています。
チームはモノレポを生産環境のインフラとして扱い、ストレージパターンを詳細に分析しました。最適化されたリパッキング戦略(repacking strategies)を実装し、Gitがオブジェクトデルタ(object deltas)を構造化する方法を調整して、デルタウィンドウとディプス(delta window and depth behavior)の動作を改善することに焦点を当てました。クローンやフェッチ操作のためのサーバーサイドパッキングはGitHubインフラを通じて管理されているため、Dropboxのエンジニアはこれらのパラメータを調整するためにGitHubチームと連携しました。運用リスクを軽減するため、本番環境への展開前にミラーリングされた環境で変更が検証されました。
Shailesh MishraはLinkedInの投稿で次のように述べています:「これは、ツールの前提条件が大規模なリポジトリ構造と衝突した結果でした。
これは、ツールの前提条件が大規模なリポジトリ構造と衝突した結果でした。
これらの最適化の後、リポジトリのサイズは87GBから20GBに減少し、約77%の削減となりました。クローン時間は1時間以上から15分未満に短縮され、データ転送と処理のオーバーヘッド削減によりCIパイプラインの実行も高速化しました。この改善はリポジトリのサイズ制限に達する可能性を低減し、開発者のオンボーディング期間の短縮にもつながりました。
Dropbox Gitデータサイズの削減(出典:Dropboxブログ記事)
Dropboxのエンジニアたちは、主要な教訓はバージョン管理システム(version control systems)を重要インフラ(critical infrastructure)として扱うことの重要性にあり、ストレージの動作がエンジニアリング速度(engineering velocity)に直接影響を与えるという点だと強調しました。この取り組みでは、ツールレベルの最適化(tooling-level optimization)、GitHubとの組織横断的な連携(cross-organizational collaboration)、そして段階的検証(staged validation)を組み合わせ、開発者のワークフローを混乱させることなく安全なロールアウトを実現しました。
著者について
Leela Kumili
Leelaはスターバックスのリードソフトウェアエンジニアであり、スケーラブルなクラウドネイティブシステム(cloud-native systems)や分散プラットフォーム(distributed platforms)の構築において深い専門知識を有しています。リワードプラットフォーム全体においてアーキテクチャ、デリバリー、運用の卓越性(operational excellence)を牽引し、システムの近代化、スケーラビリティの向上、信頼性の強化に向けた取り組みを主導しています。
技術的なリーダーシップに加え、Leelaは組織内のAIチャンピオン(AI Champion)としても活動し、LLMベースのツール(LLM-based tools)を活用して開発者の生産性やワークフローを改善する機会を特定し、AI導入のベストプラクティスを確立しています。本番環境対応システム(production-ready systems)の構築、開発者体験の向上、そしてエンジニアが技術的・戦略的な影響力を両立して成長できるようメンターとして指導することに情熱を注いでいます。彼女の興味関心はプラットフォームエンジニアリング(platform engineering)、分散システム、開発者生産性、そして技術的ソリューションとビジネス・プロダクトの目標を結びつけることにあります。
続きを読む / 表示を閉じる
原文を表示
Dropbox engineers have reduced the size of their backend monorepo from 87GB to 20GB by addressing inefficiencies in Git’s storage and delta compression model, improving developer productivity and continuous integration performance. The effort was driven by scaling challenges in a repository that serves as a central integration point for backend services and shared libraries across teams at Dropbox.
As the monorepo grew, engineering teams began experiencing slow clone operations that could take over an hour, along with degraded CI pipeline performance due to repeated fetch and build overhead. The expansion also increased the risk of reaching repository hosting limits. According to Dropbox engineering findings, the issue was not primarily caused by large binaries or accidental commits, but by how Git’s internal compression heuristics handled large sets of related files.
Git uses delta compression to reduce storage by identifying similarities between files and storing differences efficiently. At scale, Dropbox engineers observed that these heuristics produced suboptimal packfiles, resulting in disproportionately large repository growth compared to actual code changes. The mismatch between expected and observed growth prompted a deeper investigation into storage behavior rather than repository content alone.
As Ishan Mishra, Senior Software Engineer at Dropbox, noted:
The growth rate didn’t match what we would expect from normal development activity, even at Dropbox’s scale. That suggested the problem wasn’t just what we were storing, but how it was being stored.
The team treated the monorepo as production infrastructure and conducted a detailed analysis of storage patterns. They implemented optimized repacking strategies and adjusted how Git structures object deltas, focusing on improving delta window and depth behavior. Since server-side packing for clone and fetch operations is managed through GitHub infrastructure, Dropbox engineers collaborated with GitHub teams to tune these parameters. Changes were validated in mirrored environments before production rollout to reduce operational risk.
As Shailesh Mishra noted in a LinkedIn post: ‘This was a tooling assumption colliding with repo structure at scale.
This was a tooling assumption colliding with repo structure at scale.
Following these optimizations, the repository size decreased from 87GB to 20GB, representing an approximate 77 percent reduction. Clone times dropped from over an hour to under 15 minutes, while CI pipelines saw faster execution due to reduced data transfer and processing overhead. The improvements also reduced the likelihood of hitting repository size limits and shortened developer onboarding times.
Dropbox Git data size reduction (Source: Dropbox Blog Post)
Dropbox engineers emphasized that the primary learning was the importance of treating version control systems as critical infrastructure, where storage behavior directly impacts engineering velocity. The work combined tooling-level optimization, cross-organizational collaboration with GitHub, and staged validation to ensure safe rollout without disrupting developer workflows.
About the Author
Leela Kumili
Leela is a Lead Software Engineer at Starbucks with deep expertise in building scalable, cloud-native systems and distributed platforms. She drives architecture, delivery, and operational excellence across the Rewards Platform, leading efforts to modernize systems, improve scalability, and enhance reliability.
In addition to her technical leadership, Leela serves as an AI Champion for the organization, identifying opportunities to improve developer productivity and workflows using LLM-based tools and establishing best practices for AI adoption. She is passionate about building production-ready systems, enhancing developer experience, and mentoring engineers to grow in both technical and strategic impact. Her interests include platform engineering, distributed systems, developer productivity, and bridging technical solutions with business and product goals.
Show moreShow less
関連記事
React Navigation 8.0アルファ版:ネイティブ下部タブの標準化、TypeScript推論と履歴機能
React Navigation開発チームは、React NativeおよびWeb向けのルーティングライブラリ「8.0」アルファ版を公開した。下部タブのネイティブ実装を標準化し、TypeScript推論とディープリンク機能を強化した。
Google、Room 3.0を発表:Kotlinファーストの非同期マルチプラットフォーム永続化ライブラリ
GoogleはRoom 3.0を発表した。本バージョンは破壊的変更を導入し、Kotlin Multiplatform対応を強化するとともにJSとWasmへのサポートを追加した。
Grafana、LokiをKafka基盤に再設計しコーディングエージェント向け観測CLIをリリース
グラファナラボスはGrafana 13を発表した。LokiをKafka基盤に再設計し、AI監視機能を搭載する。また開発エージェント向け新CLI「GCX」も提供した。