アプリケーションのモダナイゼーションとは?
アプリケーションのモダナイゼーションとは、古い(「レガシー」)アプリケーションのアーキテクチャ、コード、インフラストラクチャを更新または置き換えるプロセスのことです。この用語は、アプリケーションのインフラストラクチャをオンプレミスからクラウドベースに切り替えることを指すことが最も多く、通常、モノリシックなアプリケーションアーキテクチャからマイクロサービスまたはサーバーレスアーキテクチャに移行することも含まれます。モダナイゼーションは、アプリケーションの拡張性、保守性、コスト効率を高めながら、運用上のオーバーヘッドを削減することを目標に行われます。
モダナイゼーションの本質は、例えば「紙のメモから電子メールへの切り替え」などと同様に、プロセスを新しい技術に合わせることで効率化を図ることにあります。レガシーアプリケーションのモダナイゼーションを実現することで、当該アプリケーションの開発者は、旧来のITモデルよりもスケーラブルで柔軟なコスト構造を持つクラウドコンピューティングのメリットを享受することができます。
アプリケーションのモダナイゼーションは、大規模なクラウド移行やデジタルトランスフォーメーションの一部として行われる傾向があります。
レガシーアプリケーションのモダナイゼーションの進め方
クラウドコンピューティングではタスクは仮想マシン上で実行されます。クラウドサービスは、基盤となるハードウェアから切り取った1つまたは複数の「抽象化層」です。この点において、アプリケーションが特定のサーバーと明確に定義されたネットワーク内で実行されるオンプレミスインフラストラクチャと大きく異なります。ハードウェアの管理をクラウドベンダーが担当し、ネットワーク接続を介してサービスを利用できるようにします。この構造により、クラウドはオンデマンドで処理能力をスケーリングできるなど柔軟性が高く、オンプレミス運用では発生していたコストや手間を排除することができます。
オンプレミスのアプリケーションは多くがモノリシック(単一構造)ですが、クラウドホスト型のアプリケーションアーキテクチャは通常、必要に応じて呼び出される小さな単位に分けて運用するのが一般的です。アプリケーションのモダナイゼーションには、こうした構造への対応も求められる場合があります(ただし、すべてのケースで必要とは限りません)。
モダナイズされたアプリケーションの主なコンセプト:
- マイクロサービス:マイクロサービスは、アプリケーション内で特定の機能を実行する、独立してデプロイされた小規模なコンポーネントです。それぞれが独自の環境で実行されるため、個別の開発・拡張が可能です。
- コンテナ:コンテナは、どの環境でも一貫して動作するようにアプリケーションのコードと必要なライブラリをひとまとめにした実行環境です。一般的にマイクロサービスアーキテクチャで使用されますが、それ以外にも使用されます。
- サーバーレスコンピューティング:このタイプのクラウドアーキテクチャは、アプリケーションを個々のイベント駆動型の機能に分割して構成します。サーバーレス関数は、必要なときにだけ実行される小さなコードの単位です。多くのクラウドベースのアプリケーションでは、サーバーレス、マイクロサービス、コンテナを組み合わせたアーキテクチャが使われており、それらはAPIゲートウェイを通じて連携しています。
- API:アプリケーションプログラミングインターフェイス(API)は、クラウドベースのアプリケーションを構成し互いに独立して実行されるマイクロサービスと関数をつなぐ「コネクタ」のような役割を果たします。APIは、アプリケーションが必要に応じて各サービスを呼び出すことを可能にします。
- オーケストレーション:オーケストレーションとは、複数のコンテナを自動で管理する仕組みです。コンテナを含むアプリケーションアーキテクチャには、通常何らかのオーケストレーションが含まれます。代表的なものに「Kubernetes(クバネティス)」があります。
- クラウドストレージ:アプリケーションデータ用のクラウドベースのストレージには、オブジェクトストレージ、BLOBストレージ、ブロックストレージなど、いくつかの種類があります。
- クラウドネイティブセキュリティ:クラウドネイティブセキュリティは、データコンプライアンスとガバナンスをサポートしながら、クラウドベースのアプリケーションインフラストラクチャを保護するように設計されています。
- AIとの連携:モダナイズされたアプリケーションは、生成AIやエージェントAIとの連携がよりスムーズになります。これらのAIはローカルではなくクラウド上でリモートで実行されるモデルに基づいて構築されています。
アプリケーションモダナイゼーションの主な戦略
アプリケーションを近代化する方法にはいくつかの代表的な戦略があり、それぞれ英語で「R」から始まることから、「5つのR」または「7つのR」と呼ばれることがあります。
「5つのR」(2010年にGartnerがはじめて定義したもの):
- リホスト:「リフトアンドシフト」とも呼ばれる、このアプリケーションモダナイゼーション戦略は、多くの場合、最速で手軽です。モノリシックなオンプレミスアプリケーションをクラウドに移行し、自己管理型のインフラストラクチャから、サービスとしてのインフラストラクチャ(IaaS)プロバイダーを通じてホストされるようにします。例えるなら、リホストは「家をそっくりそのまま、道路を挟んだ向かいの土地に引っ越す」ようなものです。
- リファクター:この戦略はリホストと似ていますが、アプリケーションはIaaSではなくサービスとしてのプラットフォーム(PaaS)を介してホストされます。これにより、運用の手間がさらに低減され、柔軟性が上がります。ただし、アプリケーションをクラウドプロバイダーのプラットフォームに合わせて若干調整する必要がある場合があります。例えるなら、「家を従来の区画と同等だが形状の異なる土地に移動させ、2回を増築する」ようなものです。
- リバイス:この戦略では、アプリケーションのコードの部分的な変更が発生します。例えるなら、「家を解体して、より効率的な間取に見直して再構築する」ようなものです。
- リビルド:このアプリケーションモダナイゼーション戦略では、PaaSを前提にアプリケーションをゼロからつくりなおします。例えるなら、「古い家を取り壊して、基礎から作り直す」ようなものです。
- リプレイス:この戦略では、レガシーアプリケーションを廃棄し、同様の機能を提供する最新またはクラウドベースのアプリケーションに置き換えます。例えるなら、「全く新しい家を購入する」ようなものです。
その他のアプリケーションモダナイゼーション戦略(「R」)には次のようなものがあります:
- リプラットフォーム:この戦略では、アプリケーションがクラウドプラットフォーム上でうまく動作するようにコードにいくつかの変更を加えますが、リファクタリングのような多くの変更は行いません。
- リアーキテクト:クラウドでよりよく機能するよう、アプリの構造そのものを見直し、一部を書き直します。
- リパーチェス:「リプレイス」戦略と似ていますが、これまで使っていたベンダーとは異なるベンダーからアプリケーションを購入します。
アプリケーションモダナイゼーション戦略の選択方法
どのアプリケーションモダナイゼーション戦略を選ぶべきかは、組織の目的や予算によって変わります。実際には、1つの戦略だけでなく複数を組み合わせるケースが一般的です。最小限の労力とコストでより迅速に移行したい場合、最初はリホスト戦略が最適であると考えられます。長期的なスケーラビリティや、継続的インテグレーション/継続的デプロイ(CI/CD)といった最新の開発手法に対応するには、より大きな変更が必要になることがあります。このようなケースでは、アプリケーションのリアーキテクチャ(再設計)、リファクタリング、リビルディング(再構築)を行うことで、将来の需要に十分に備えることができます。
企業は、戦略を決める前にモダナイゼーションプロセスの目標、タイムライン、予算を明確にする必要があります。
アプリケーションモダナイゼーションの主な手順
具体的な手順は戦略や組織によって異なりますが、一般的にアプリケーションモダナイゼーションは次の手順で進めます:
- 準備:これは、モダナイゼーションの候補となる各アプリケーションを評価し、そのコンポーネントを特定し、すべてのデータを見つけ、アプリケーションのモダナイゼーション後の目標(API連携するのか?機能拡張の予定はあるか?)を決めることから始まります。また、実行中に予期せぬことが起こる可能性もあるため、柔軟に対応できる計画を立てることが大切です。
- モダナイゼーション:このフェーズでは、準備段階で定めた計画を実行し、必要に応じてアプリケーション構造の見直しや、データの移行などを行います。
- 切り替え作業:古いアプリケーションを停止し、モダナイズされたアプリケーションに切り替えます。このフェーズは、業務への影響を最小限に抑えるために、モダナイゼーション後、またはモダナイゼーション中に行われることが理想です。
- 運営の継続:モダナイズ後もアプリケーションのテスト、更新、保守、保護、改善を継続し、必要に応じてさらに多くのクラウドリソースをプロビジョニングします。
アプリケーションモダナイゼーションの課題
アプリケーションのモダナイゼーションには、時間、費用、リソースなど、企業にとってコストがかかります。開発者、DevOps、セキュリティ、コンプライアンスを担当するチームはそれぞれ、モダナイズされたアプリケーションへの移行、設計、保護などに対する工数を捻出する必要があります。場合によっては、ネットワークトラフィックのリダイレクト、ハードウェアの停止、新たなセキュリティ対策の実装などの作業も行う必要があります。ただし、これらの負担は一時的なもので、アプリケーションモダナイゼーションに取り組めば、長期的には組織の効率性の向上に繋げることができます。
アプリケーションモダナイゼーションのメリット
アプリケーションのモダナイゼーションは、単に「最新化」やクラウドを使うことが目的ではなく、次のような具体的なメリットを得るために行われます:
- 開発の高速化:クラウドは運用の負担とインフラストラクチャを排除できるため、企業はより迅速に新機能をリリースすることができます。
- アプリケーションのAPI連携:アプリケーションをAPI経由で利用できるようにすることで、他のシステムやサービスと連携しやすくなり、自動化や効率化が進みます。
- 将来を見据えたスケーリング:自前のインフラでは拡張に限界がありますが、クラウドなら必要に応じて無制限に拡張できます。(ただし、AIの利用が進むことで、今あるデータセンターのリソースの逼迫も進んでいます)。
- アプリケーションのパフォーマンスの向上:クラウドベースのアプリケーションは、地理的に優位性のあるデータセンターから実行することで無駄な迂回(「トロンボーン」と呼ばれる現象)を避け、世界中から低遅延でアクセスすることができます。
- 将来への柔軟性:アプリケーションモダナイゼーション戦略がもたらす柔軟性により、企業はニーズの変化に応じて新しいテクノロジーと効率性を活用できるようにします。
- 技術的負債の削減:モダナイゼーションは、古いプログラム言語、不便な実装、老朽化するハードウェアを見直す良い機会になります。
- セキュリティの強化:アプリケーションをクラウドに移行すると、オンプレミスのモノリシックアプリケーションに関連するセキュリティ上の課題の多くを取り除くことができます。ただし、クラウドならではのセキュリティの問題も伴います。
Cloudflareは、組織がこうした利点を最大限に活用できるよう支援します。Cloudflareのコネクティビティクラウドは、複数のベンダーが提供するネットワークアクセス、セキュリティ、脅威インテリジェンス、およびその他のサービスを単一のプラットフォームに統合します。また、Cloudflareの開発者サービスはアプリケーションのモダナイゼーションに必要なツールを提供します。Cloudflareがアプリケーションの最新化の取り組みをどのように強化するかをご覧ください。