ダイレクトトランスファーによるグループマイグレーション
GitLab 13.7 で導入されました。
直接転送によるグループマイグレーションは、ファイルエクスポートを使ったグループやプロジェクトのマイグレーションを進化させたものです。ゴールは、ユーザーがプロジェクトを含むグループ全体を、あるGitLabインスタンスから別のインスタンスへマイグレーションするのをより簡単にすることです。
デザインの決定
以下のアーキテクチャ図は、グループマイグレーションが現在のGitLab API を活用した一連のETLパイプラインでどのように機能するかを示しています。
ETL
ETL(抽出、変換、ロード)とは、複数のデータソースからのデータを単一の一貫したデータストアに統合し、データウェアハウスやその他のターゲットシステムにロードするデータインテグレーションプロセスです。
ETLアーキテクチャを使用すると、コードがより明示的になり、フォロー、テスト、拡張が容易になります。このアイデアは、インポートするリレーションごとに1つのETLパイプラインを持つことです。
API
現在のプロジェクトと グループのインポートはファイルベースなので、インポートするファイルを生成するためのエクスポートステップが必要です。
直接転送によるグループマイグレーションは、GitLab APIを活用してマイグレーションを高速化します。
また、私たちはGraphQLへの道を進んでいるため、直接転送によるグループマイグレーションはGraphQL APIカバレッジの拡大に貢献することができ、GitLabとそのユーザーの両方に利益をもたらします。
名前空間
マイグレーションプロセスは、マイグレーションを追跡するためのBulkImport
レコードの作成から始まります。そこから、GitLabグループマイグレーションに関連するすべてのコードは、すべてのアプリケーションレイヤーで新しいBulkImports
名前空間の下に見つけることができます。