ダイレクトトランスファーによるグループマイグレーション

GitLab 13.7 で導入されました

直接転送によるグループマイグレーションは、ファイルエクスポートを使ったグループやプロジェクトのマイグレーションを進化させたものです。ゴールは、ユーザーがプロジェクトを含むグループ全体を、あるGitLabインスタンスから別のインスタンスへマイグレーションするのをより簡単にすることです。

デザインの決定

以下のアーキテクチャ図は、グループマイグレーションが現在のGitLab API を活用した一連のETLパイプラインでどのように機能するかを示しています。

Simplified Component Overview

ETL

ETL(抽出、変換、ロード)とは、複数のデータソースからのデータを単一の一貫したデータストアに統合し、データウェアハウスやその他のターゲットシステムにロードするデータインテグレーションプロセスです。

ETLアーキテクチャを使用すると、コードがより明示的になり、フォロー、テスト、拡張が容易になります。このアイデアは、インポートするリレーションごとに1つのETLパイプラインを持つことです。

API

現在のプロジェクトと グループのインポートはファイルベースなので、インポートするファイルを生成するためのエクスポートステップが必要です。

直接転送によるグループマイグレーションは、GitLab APIを活用してマイグレーションを高速化します。

また、私たちはGraphQLへの道を進んでいるため、直接転送によるグループマイグレーションはGraphQL APIカバレッジの拡大に貢献することができ、GitLabとそのユーザーの両方に利益をもたらします。

名前空間

マイグレーションプロセスは、マイグレーションを追跡するためのBulkImport レコードの作成から始まります。そこから、GitLabグループマイグレーションに関連するすべてのコードは、すべてのアプリケーションレイヤーで新しいBulkImports 名前空間の下に見つけることができます。