公開日

MonoRepo - 信じられますか?

著者

"Google、Meta、Uber、Airbnb はほぼすべてのコードを 1 つのリポジトリに置いていると思いますか?

この手法はモノリポジトリと呼ばれます。

モノレポとマイクロレポ。どちらがベストか?なぜ企業が異なると異なるオプションを選択するのでしょうか?

モノレポは新しいものではありません。 Linux と Windows はどちらも Monorepo を使用して作成されました。スケーラビリティとビルド速度を向上させるために、Google は内部の専用ツールチェーンを開発してより迅速に拡張し、一貫性を保つための厳格なコーディング品質基準を開発しました。

Amazon と Netflix は、マイクロサービス哲学の主要な大使です。このアプローチでは、サービス コードが自然に個別のリポジトリに分離されます。スケールは速くなりますが、後々ガバナンスの問題点につながる可能性があります。

Monorepo 内では、各サービスはフォルダーであり、すべてのフォルダーには BUILD 構成と OWNERS 権限制御があります。すべてのサービス メンバーは、自分のフォルダーに対して責任を負います。

一方、Microrepo では、各サービスがそのリポジトリを担当し、ビルド構成と権限は通常リポジトリ全体に設定されます。

Monorepo では、ビジネスに関係なく依存関係がコードベース全体で共有されるため、バージョン アップグレードがあると、すべてのコードベースがバージョンをアップグレードします。

Microrepo では、依存関係は各リポジトリ内で制御されます。企業は、独自のスケジュールに基づいてバージョンをアップグレードする時期を選択します。

Monorepo にはチェックインの標準があります。 Google のコード レビュー プロセスは高いハードルを設定していることで有名で、ビジネスに関係なく Monorepo の一貫した品質基準を確保しています。

マイクロリポジトリは独自の標準を設定することも、ベスト プラクティスを組み込んで共有標準を採用することもできます。ビジネス向けにより速く拡張できますが、コードの品質は少し異なる可能性があります。

Google のエンジニアが Bazel を構築し、Meta が Buck を構築しました。 Nix、Lerna など、他にも利用可能なオープンソース ツールがあります。

長年にわたり、Microrepo では、Java の Maven と Gradle、NodeJS の NPM、C/C++ の CMake など、サポートされるツールが増えてきました。 "

Image

日本語版は Ai 支援を使用しているため、小さな間違いが存在する可能性があることをご了承ください。

著者

Ai Base Network (ABN), ABN ASIAは、アカデミアに深く関わり、アメリカ、オランダ、ハンガリー、日本、韓国、シンガポール、ベトナムでの仕事経験を持つ人々によって設立されました。ABN ASIAは、学問とテクノロジーが機会と出会う場所です。最先端のソリューションと優れたソフトウェア開発サービスにより、ビジネスがレベルアップし、グローバルシーンに挑戦できるよう支援しています。 私たちの取り組み: より速く。 より良い。 より信頼性が高くなります。 ほとんどの場合、価格も安くなります。

いつでも、ITサービス、デジタルコンサルティング、既製のソフトウェアソリューション、または提案依頼書(RFP)をお探しの際は、お気軽にお問い合わせください。お問い合わせ先は[email protected]です。お客様のテクノロジーに関するニーズにお応えします。

ABNAsia.org

© ABN ASIA