移行タイプは、移行対象と環境によって決まります。各タイプには、技術的な考慮事項、障害モード、計画要件があります。どのタイプ、または複数のタイプの組み合わせがプロジェクトに適用されるかを理解することは、移行戦略が下すべき最初の決定の 1 つです。
データベース移行
データベース移行は、ベンダーの切り替えまたはデータベース・ソフトウェアのアップグレードのために、2 つのデータベース・システム間でデータまたはアプリケーションを転送するものです。一般的なトリガーには、データベース・ベンダーからの製品寿命の発表、ライセンス・コストの変更、現在のプラットフォームの性能制限、オープンソースの代替案への移行などがあります。
スキーマの違いは、複雑さの主な原因です。2 つのデータベースは、次のような構造的に互換性のない方法で概念的に類似したデータを保存する場合があります。
- 異なるデータ型
- 命名規則
- 制約ルール
- インデックス作成のアプローチ
1 つのデータベースの方言に記述されたストアドプロシージャとカスタム関数は、多くの場合、ターゲットシステムの書き換えを必要とします。
アプリケーション間の依存関係も、課題をさらに複雑にします。ほとんどの実稼働データベースは、複数のアプリケーションから読み書きするために使用されます。これらの各アプリケーションは、カットオーバー前にターゲットデータベースに対してテストする必要があり、ベンダー固有の動作に依存するクエリを特定して書き換える必要があります。このステップを省略することは、データベースの移行が検証に失敗する最も一般的な理由の 1 つです。
注意点:
- プラットフォーム間で異なる動作をする暗黙的なデータ型の変換
- テキストデータを破損させる文字エンコーディングの違い(UTF-8 と Latin-1 など)
- ベンダー間でクリーンに転送されないシーケンスと自動増分の動作
- ベンダー固有の SQL 方言で記述されたトリガーとストアド・プロシージャ
クラウドの移行
クラウドの移行は、データやアプリケーションをオンプレミス環境からクラウド・インフラ、またはクラウド・プロバイダ間での移動を意味します。多くの場合、データベースの移行、ストレージの移行、アプリケーションの移行が並行して実行されるため、これらの移行はスコープ内で最大規模で、組織的に最も複雑な移行タイプです。
最小限の変更でワークロードをクラウドに移動させるリフトアンドシフト移行は、実行が最速である一方で、性能やコストの問題が残ることがよくあります。クラウドネイティブ・サービスを活用するためにワークロードをリプラットフォームまたはリファクタリングすることは、移行の複雑さを増大させる一方で、通常は長期的な成果をもたらします。
コンプライアンス要件、データ・レジデンシー・ルール、ネットワーク遅延など、オンプレミスの移行では直面することのできない要素が加わります。GDPR、HIPAA、その他の規制により、データが通過または保存される場所が、たとえ一時的であっても制限される場合があります。大規模なデータセットを移動する組織にとって、ネットワーク帯域幅は真のボトルネックとなり得ます。一部の移行では、ネットワーク経由の転送よりも物理的なデータ転送サービスを利用した方が、高速で低コストになる場合があります。
クラウド間の移行(AWS、Microsoft Azure、Google Cloud など)は、組織がベンダーとの関係を再評価したり、マルチクラウド環境を統合するにつれて、ますます一般的になっています。これらの移行には、ソース・クラウド、オブジェクト・ストレージ API、マネージド・データベース・サービス、サーバーレス機能に蓄積された独自のサービス依存関係を理解し、移行先で同等のサービスが存在するかどうかを判断する必要があります。
注意点:
- 移行予算を大幅に押し上げるアウトバウンド転送コスト
- ターゲット・プロバイダに直接同等のものがない独自のサービス依存関係
- コンプライアンス要件とのデータ居住地の不一致
- 低レイテンシーのオンプレミス・アクセス用に設計されたアプリケーションへの遅延の影響
ストレージの移行
ストレージの移行とは、既存のストレージアレイから新しいハードウェアへデータを移動させることです。これらは、エンタープライズ環境で最も一般的な移行タイプの一つです。ハードウェアの更新サイクル、容量拡張のニーズ、回転ディスクからオールフラッシュ・アーキテクチャへのシフトによって駆動されます。
データベースやアプリケーションの移行とは異なり、ストレージの移行には、本質的にデータの変換は必要ありません。データ形式は変わりません。ブロックやファイルを物理的な場所から別の場所に移動させるだけです。しかし、運用上のリスクも同じように現実的です。本番データへのアクセスを妨げるストレージ・アレイの移行は、そのストレージに応じて、全てのアプリケーションとユーザーに影響を及ぼします。
ホストベースの移行では、サーバー上で実行されているソフトウェアを使用して、ソースからターゲット・ストレージにデータをコピーします。柔軟性があり、特殊なハードウェアは必要ないものの、移行時にサーバーの CPU とメモリ・リソースを消費します。アレイベースの移行では、ストレージ・ハードウェアに組み込まれたレプリケーション機能を使用します。これは、通常、ホスト側のオーバーヘッドが少なく、無停止のカットオーバーが可能になります。
オールフラッシュ・アレイを使用している組織では、多くの場合、ストレージの移行は、インフラのモダナイゼーション作業と一致します。ハイブリッド・ストレージや回転ディスク・ストレージからオールフラッシュへの移行により、性能特性が大幅に変化します。高レイテンシー・ストレージ用に調整されたアプリケーションは、新しい環境を最大限に活用するために再構成が必要になる場合があります。
注意点:
- ホストのマルチパス構成は、ストレージのターゲットが変更された場合に更新が必要
- 移行後に動作しなくなる、ストレージ・パスがハードコードされたアプリケーション
- アプリケーションの動作に影響を与えるソース・アレイとターゲット・アレイの性能の違い
- 新旧のハードウェア間で異なるデータ削減率を考慮した容量計画
アプリケーションの移行
アプリケーションの移行とは、環境間、オンプレミスからクラウド、クラウドからクラウド、または新しい SaaS プラットフォームにアプリケーションへ移行することを意味します。これらは、ほとんどの場合、データベースやストレージの移行を依存関係としてトリガーするため、計画と実行が最も複雑な移行タイプです。
その複雑さは急速に増大します。例えば、ERP システムの移行には、基礎となるデータベース、実行されるストレージ、依存するネットワーク・サービス、他のアプリケーションとの統合が必要になる場合があります。これらのアプリケーションには、それぞれ独自の移行要件とシーケンシングの制約があります。
また、アプリケーション移行は、ユーザーやビジネス・プロセスに直接影響するため、移行の種類を問わず、リスクが高くなります。ストレージの移行が失敗した場合は、インフラの問題となります。アプリケーションの移行が失敗すると、業務遂行に不可欠なワークフローが中断されてしまいます。
SaaS の移行は、自己管理型アプリケーションからベンダー管理型クラウド・サービスへの移行に、さまざまな課題をもたらします。多くの場合、カスタマイズオプションが限定されたマルチテナント環境に移行することになるため、データを移行する前に、ターゲット・プラットフォームが現在のワークフローを実際にサポートできるかどうかを評価する必要があります。
注意点:
- 文書化されているか否かを問わず、APIを介してアプリケーションに接続するサードパーティ製統合機能
- レプリケーションまたは移行が必要なユーザー認証の依存関係(LDAP、Active Directory)
- 移行先環境に引き継げない可能性があるカスタム設定や拡張機能
- プロジェクトのスケジュールに組み込む必要があるエンドユーザーのトレーニング要件