セルフマネージド GitLab から GitLab.com へのマイグレーション
顧客が GitLab.com へマイグレーションするのを支援する際に把握しておくべき事項。
このページでは、GitLab、Bitbucket Server、または GitHub(Enterprise または .com)から、宛先 GitLab インスタンス(セルフマネージドまたは SaaS)へのマイグレーションのスコーピングについて説明します。これらのマイグレーションでは、通常、自動化ツールである Congregate を使用します。他の SCM システムからのマイグレーションや、GitLab 以外の CI/CD マイグレーションは、このマイグレーションツールの対象外であり、別途スコーピングする必要があります。
services calculator を使用して、SA、CSM/CSM がスコーピング Issue を作成し、エンゲージメントマネージャーと協力して顧客向けのサービス見積りを反復・改善できます。この Issue では、SCM マイグレーションスコーピング質問に追加コンテキストを含めており、以下でプレビューできます。
| SCM マイグレーションスコーピング質問 | 顧客の回答 | 回答例 | 質問する理由 |
|---|---|---|---|
| ソース SCM システム | to-do | Bitbucket Server、GitLab セルフマネージド | GitLab PS には、最も一般的なソースシステムのマイグレーションを促進する自動化があります。マイグレーション時間を正確にスコーピングするために、データがどのシステムから来ているかを把握する必要があります。 |
| 宛先 GitLab デプロイメント(SaaS、セルフマネージド(HA)、セルフマネージド(シングルノード)) | to-do | SaaS | マイグレーション中に必要となるデータのスループットを処理するのに十分な強さの宛先システムデプロイメントを保証するために質問します。 |
| ソース GitLab バージョン(最新の 2 つ前以内である必要あり) | to-do | 13.4 | マイグレーションサービスは、プロジェクトのインポート/エクスポート API を含む多くの GitLab API を活用します。こちらにドキュメント化された 特定の互換性ガイドラインがあります。 |
| 宛先 GitLab バージョン(ソースの 2 マイナーバージョン以内である必要あり) | to-do | 14.1 | マイグレーションサービスは、プロジェクトのインポート/エクスポート API を含む多くの GitLab API を活用します。こちらにドキュメント化された 特定の互換性ガイドラインがあります。 |
| ユーザーの総数** | to-do | BB = 225、GLSM = 775 | データ要素が適切に関連付けられることを保証するため、データのマイグレーションの前提となるステップとしてユーザーをマイグレーションします。これはマイグレーションエンゲージメントにおける個別のタスクであり、ユーザー数を入力としてスコーピングする必要があります。 |
| ポートフォリオ総数(ステークホルダー代表を伴う) | to-do | 6 | マイグレーション中に必要となる調整量を特定するためのプロキシメトリックとして総ポートフォリオを使用します。物事をスムーズに進めるために、各ポートフォリオリーダーがマイグレーションプロセスを理解し、賛同する必要があります。この調整時間はマイグレーションエンゲージメントに組み込まれています。 |
| Git リポジトリの総数 | to-do | BB = 1,234; GL = 4321 | 工数日数を見積もるために、マイグレーションされるリポジトリの総数を把握する必要があります。注: Bitbucket プロジェクトには複数の git リポジトリを含めることができます。リポジトリの総数が必要です。 |
| 5GB を超える GitLab リポジトリの総数 | to-do | BB N/A、GL = 3 | GitLab セルフマネージドから GitLab.com へのマイグレーションにのみ適用されます。5GB を超えるリポジトリは、Cloudflare の 5 GB 制限のため手動でマイグレーションする必要があります。プロジェクトサイズの合計ではなく、リポジトリサイズのみを気にすることに注意してください。 |
| CI/CD システム | to-do | Jenkins | 顧客が IT オペレーションを再開できるよう、新しい SCM システムへのパイプラインジョブの再ポイントにかかる時間を見積もるために、どの CI/CD システムが使用されているかを把握する必要があります。 |
| CI/CD ジョブの総数(CI/CD ジョブはマイグレーションされなくてもカットオーバーが必要) | to-do | 4567 | エンゲージメントには CI/CD ジョブをソースリポジトリに再ポイントすることが含まれる場合があります。これに該当する場合、何個のジョブを再設定する必要があるかを把握する必要があります。 |
| 一般的なレジストリサイズ | to-do | 159MB | レジストリサイズが異常に大きい場合、マイグレーションの速度に影響する可能性があります。注: この質問は、GitLab がソースシステムであるマイグレーションにのみ適用されます。 |
| SSO ID プロバイダー | to-do | Auth0 | これはマイグレーションエンゲージメントの成功のための基盤であるため、マイグレーション前にすでに導入されていることを確認したいと考えています。サポートされている ID プロバイダーの全リスト はこちらを参照してください。 |
| ソースシステムの OS とバージョン | to-do | Ubuntu v21.10 | マイグレーション前にソースシステムのアップグレードが必要/含まれる場合、新しいバージョンの GitLab をサポートするために OS を顧客側でアップグレードする必要がないことを確認したいと考えています。詳細は インストール要件 を参照してください。 |
| ソースシステムの DB バージョン | to-do | PostgreSQL 13.0 | マイグレーション前にソースシステムのアップグレードが必要/含まれる場合、新しいバージョンの GitLab をサポートするために DB をアップグレードする必要がないことを確認したいと考えています。詳細は インストール要件 を参照してください。 |
注意:
注: Bitbucket のプロジェクトは GitLab のグループに相当します。Bitbucket のリポジトリは GitLab のプロジェクトに相当します。
Azure DevOps(旧称 Team Foundation Server)にはソースコードリポジトリ以上のものが含まれているため、ADO マイグレーションをスコーピングする際には追加の質問が必要です。ADO の 5 つの一般的なコンポーネントは次のとおりです。
| 質問 | 回答 | 回答例 | 質問する理由 |
|---|---|---|---|
| 全般 | |||
| SaaS かセルフホストか? | Azure DevOps(SaaS) | ADO Server(セルフホスト)の場合、ソフトウェアバージョンとその他の詳細(SQL バージョンなど)を把握する必要があります。これは、適切なマイグレーションアプローチを選ぶのに役立ちます。 | |
| マイグレーションが必要な組織は何個ありますか? | 1 | この質問への回答は、現在の状態、必要な作業量を理解し、GitLab の将来のアーキテクチャに貢献するのに役立ちます。 | |
| 組織あたりのプロジェクト数は? | 500 | この質問への回答は、マイグレーションの時間とアプローチを見積もるのに役立ちます。 | |
| プロジェクト/リポジトリの比率は? | 1:1 | この質問への回答に基づき、リファクタリング/再構成のための追加のアドバイザリサービスが必要となる場合があります。 | |
| Azure Boards | |||
| ADO で workitem を使用していますか? | はい | workitem を保持する必要がある場合、追加のマイグレーションおよび/またはアドバイザリのアクティビティをエンゲージメントに追加する必要があります。注: ADO workitem には、GitLab Issue でサポートされていない機能(例: カスタムフィールドおよびワークフロー)があります。スコーピング中に、これらの違いを顧客が認識していることを確認してください。 | |
| どのテンプレートを使用していますか? | Scrum、Agile、SCCM | 現在の状態を理解し、GitLab の Issue がすべての機能をサポートしていることを確認するためです。 | |
| ボードでどのカスタマイズを使用していますか? | 追加のスイミングレーン、カスタムフィールドなど | この回答に基づき、可能なこと/不可能なことを議論し、代替案を提案するための追加のアドバイザリサービスが必要となる場合があります。 | |
| Azure Repos | |||
| SCM に Git または TFVC を使用していますか? | Git | これは ADO サーバーとのやり取り方法に影響し、Git への変換が必要かどうかを決定します。 | |
| コードリポジトリは何個ありますか? | 500 | これは上記の一般的なアプローチの決定に影響します。 | |
| コードリポジトリでブランチを使用していますか? | はい | 一部のリポジトリで答えがいいえの場合、顧客は履歴を保持するためにリポジトリ内の特定のフォルダーをブランチに変換するか、履歴のないリポジトリのフラットファイルマイグレーションを受け入れるかを選択する必要があります。 | |
| コードリポジトリで履歴を保持する必要がありますか? | はい | 答えがいいえで、顧客が ADO を使用している場合、リポジトリを Git に変換する必要はありません。 | |
| Azure Pipelines | |||
| ソフトウェアのビルドに ADO を使用していますか? | はい | 答えがはいの場合、CI/CD コンサルティング/トランスフォーメーションのアクティビティがエンゲージメントに追加されます。 | |
| コードリポジトリあたり何個のビルド/ビルドテンプレートが使用されていますか? | 1 | これは複雑性の指標です。コードリポジトリには複数の異なるビルド定義が含まれることがあります。 | |
| 複数のソリューション(.sln)またはプロジェクト(.csproj)ファイルが同じパッケージをビルドしていますか? | はい | はいの場合、これらのソリューション/プロジェクトファイルを GitLab パイプラインで動作するようリファクタリングするためのアドバイザリサービスが必要となる場合があります。 | |
| ビルドサーバーは何台使用していますか? | 1 | 通常、ビルドサーバーをよりエフェメラルなものに変換するため、使用中のビルドサーバーが多いほど、よりエフェメラルなものに移行するために必要な開発が多くなります。 | |
| ビルドプロセスで使用されている特定のフラグはありますか? もしあれば、何ですか? | はい | これは、顧客が移行プロセス中に使用するためにこのデータを測定していることを示します。 | |
| クラシックリリースを使用していますか? | いいえ | 答えがはいの場合、YAML(pipeline as code)の概念について教育するために追加の作業が必要となる場合があります。 | |
| UI ビルド定義を使用していますか? | いいえ | はいの場合、CI/CD コンサルティング/トランスフォーメーションのアクティビティが追加されます。 | |
| すべての定義(ビルド/リリース)に YAML を使用していますか? | はい | この質問の答えが「はい」の場合、SOW に追加の作業とアドバイザリサービス(CI/CD コンサルティング/トランスフォーメーションのアクティビティなど)が含まれる場合があります。 | |
| ビルド/テスト/リリースプロセスの一部として、マーケットプレイスからの拡張機能を使用していますか? 拡張機能のリストを提供してください(答えが「はい」の場合) | はい。テンプレートのリンティング用 ARM-ttk 拡張機能。 | はいの場合、GitLab にこれと同等のものがあるか(または代替ソリューションを提案するか)を確認する必要があります。 | |
| どのタイプのエージェントを使用していますか? | セルフホスト、Microsoft ホスト(windows-latest、ubuntu-latest など) | この回答に基づき、提案するランナーアーキテクチャと GitLab がそれをサポートしているか、また同様の状態を達成するためにどれだけの作業が必要かを判断します。 | |
| 特別な要件はありますか(ネットワーク接続、ビルド/テスト/リリースプロセスに必要なコンポーネントなど)? | はい、Visual Studio 2017 の機能(レガシーソフトウェアなど)が必要 | 答えに基づき、カスタムランナーイメージ(機能をインストールするためなど)が必要かどうかを判断します。 | |
| 将来 CI/CD で何か特別なものを使用/追加する計画はありますか? | GPU 最適化エージェント | 答えに基づき、将来的な制限を回避するために GitLab Runner についての判断を行います。 | |
| Azure Test Plans | |||
| テスト計画を使用していますか、また GitLab で同様の機能が必要ですか? | はい | 答えに基づき、GitLab で同等の機能を提案する必要があります。 | |
| Azure Artifacts | |||
| アーティファクトフィードを使用していますか? | はい | 現在の状態を理解するためです。 | |
| どのタイプのフィードですか? | Maven、npm、NuGet | 現在の状態を理解し、GitLab に同じ機能があることを確認するためです(GitLab Package Registry を参照)。 | |
| ビルド/パイプラインアーティファクトを使用していますか? | はい | ||
| パッケージの保持ポリシーは何ですか?また、それらをマイグレーションする必要がありますか? | 365 日、マイグレーション不要 | マイグレーションのための追加作業、または既存の ADO フィードを保持するアドバイザリサービス、もしくは GitLab Package Registry を使用するようアプリケーションをリファクタリングするための追加作業を見積もるためです。 | |
| インテグレーション | |||
| ADO サーバーに紐づいた外部ツール/アプリケーションはありますか? | はい。メトリクス収集のために TFS から日次でプルする社内ツールを使用しています。 | 答えがはいの場合、それらのツールを Git からプルするように移行するために、追加のアクティビティを SOW に追加する必要があります。 |
git push -u)を使って行います。source project url と destination parent path を含む .csv ファイルを提供して、プロジェクトが宛先システムのどこに配置されるかを伝える必要があります。また、この再編成を伴うマイグレーションの前に、顧客または当方が事前にグループ構造を作成する必要があります。新しいグループ階層の作成のための時間をスコープに追加する必要があります。