マイグレーションとは古くなってしまったシステムを既存の資産を活用しながら新しい環境へ移行させることです。主にIT業界で活用される専門用語で技術発展の著しいこの世界で需要の絶えないシステム移行の手段とされております。皆さんはこのマイグレーションという言葉の意味を正しくご存知でしょうか?この記事ではマイグレーションについて理解をするために意味や目的、その他の手法などを簡単に解説していきます。
マイグレーションとは現時点で使用している古くなってしまったアプリケーション(ソフトウェア、データ、通信環境)を既存の資産を活用しながら新しい環境へ移行させることを指します。マイグレーションは英語の『Migration』が由来となっておりその意味は『移行、移動』などを表します。
移行対象となるものがデータとなる場合『データマイグレーション』、システムそのものが対象となる場合『レガシーマイグレーション』と呼ばれます。マイグレーションの主な目的として従来のメインフレームからオープンシステムに移行することや、オンプレミス環境で作動するアプリケーションをクラウド上で動くようにWebのアプリケーションへと作り変える作業などが挙げられます。
マイグレーションの際に作業対象となるものについて見ていきましょう。
データベースの基本構成を変更することが1つ目の作業対象として挙げれます。データベースの構成のことを『スキーマ(Schema)』と呼びます。データベースのマイグレーションを実施する際には新しいデータベースの構成ファイルを用意し既存のデータベースと変更することを行います。
このとき既存のデータベースを削除してから新しいデータベースへと差し替える手順を踏んでしまいますと蓄積されたデータなどの情報が失われてしまいます。このような事態を回避するためにマイグレーションによってデータベースに必要なデータを保持したまま、テーブルの作成やカラムの追加及び変更などを実施します。
データの移行をすることが2つ目の作業対象として挙げられます。この作業をデータマイグレーションと呼びます。このデータ移行はマイグレーションの作業対象の中でも最大の難所と言われております。その作業概要は文字通り旧システムから新システムへ文字通りデータを移行させるものです。
専門的な言葉でお伝えすると種類の異なるコンピュータ、フォーマット、ストレージなどの間でデータを移行させるプロセスのことです。データ移行の基本工程は設計、抽出、クレンジング、ロード、検証となっております。
アプリケーションの移行をすることが3つ目の作業対象として挙げられます。このアプリケーション移行は既存のアプリケーションを既存ハードウェアから新ハードウェアへと移行・最適化を行うことを指します。既存のアプリケーション資産を活かしたまま様々なプラットフォーム間での移行・最適化ができることが特徴です。
レガシーマイグレーションとは古くから使用を続けるシステムやその一部を近代のオープンシステムへと移行することを呼びます。レガシーは英語の『Legacy』が由来となっておりその意味は『遺産、時代遅れのもの』などを表します。主な対象としてメインフレームと呼ばれる大型汎用機やオフィスコンピュータなどが挙げられますがこれらはレガシーシステムと総称されます。
このレガシーシステムをデータや機能などの既存の資産を活用しながら新しい環境へ移行させることがレガシーマイグレーションです。レガシーマイグレーションにはラッピング、リライト、リビルト、リホストと呼ばれる4つの手法が存在します。
リライトとはビジネスロジックを残したまま既存のソフトウェアに記述される開発言語を新しい開発言語に書き換えることです。レガシーシステムでは主にCOBOLなどの汎用機向けの開発言語で記述されています。
これをJavaや.netといった新しい開発言語で書き直すことをリライトと言います。リライトをすることで新しいOSへの対応やシステムの効率アップ、セキュリティの向上などのメリットが挙げられます。一方で新たなプラットフォームやビジネスモデルとの連携を行うことが出来ないというデメリットもあります。
▼デメリット
・新たなプラットフォームやビジネスモデルとの連携を行うことが出来ない
・プログラムコードやデータベースの書き換えに工数が掛かる
リビルドとはレガシーシステムのその全てを一から作り直す手法のことです。リビルドは英語の『Re-build』が由来となっておりその意味は『再構築』を表します。業務システムの全てを見直し、ビジネスロジックから始め、新しい市場に適応する現在の状況に沿った理想的なシステムを構築することが出来ます。一方で一から作り直すため多大なコスト(金銭・時間)が発生します。
▼デメリット
・多大なコスト(金銭・時間)が発生
・費用対効果が読みづらい
リホストとはメインフレーム上で動いていたソフトウェアのプログラムやデータにほとんど手を加えないままWindowsサーバー、UNIXサーバー、クラウドなどのオープンなプラットフォームへと移行させる手法です。
中身(ソフトウェア)を代えず、外側(ハードウェア)のみを移行するリホストでは短期間のスケジュールで作業できることや低リスク低コストなどといったメリットが挙げれます。一方で根本的なアプリケーション課題が先送りにされてしまうことや構造の見直しが出来ないというデメリットもあります。
▼デメリット
・アプリケーション課題は解決されない場合が多い
・アプリケーション構造の見直しが進まない
ラッピングとはメインフレームに手を加えることなく既存のまま残し、外部のオープンシステムからアクセスできるように標準インターフェースに対応させる手法のことです。他の手法と比べても着手する範囲が狭いため費用や移行期間は大きな工数が掛からずに済むというメリットがあります。一方でメインフレーム本体やアプリケーション、データベースがそのまま残るため基本的に運用コストの削減などには繋がりません。
▼デメリット
・基本的な構造は変わらない
・運用コストの削減にはならない
マイグレーションを理解するために意味や目的、その他の手法などを簡単に解説させて頂きました。マイグレーションを一言で表すと『古くなってしまったシステムやアプリケーションを既存の資産を活用しながら新しい環境へ移行させること』です。マイグレーションではデータベース、データ、アプリケーションなど様々な作業対象が挙げられます。また需要の絶えないレガシーマイグレーションにはリライト、リビルド、リホスト、ラッピングといった4つの手法が存在します。マイグレーションについてこの記事で記載されている最低限の内容は理解しておくようにしましょう。