経済産業省が警鐘を鳴らす「2025年の崖」が差し迫っており、さまざまな分野でシステム環境のモダナイズが重要課題となっています。本記事では、アプリケーション開発におけるモダナイズの必要性や進め方について解説します。新しい時代に即したモダンな開発環境の構築を目指す企業は、ぜひ参考にしてください。
アプリケーション開発におけるモダナイズとは?
アプリケーション開発におけるモダナイズとは、ブラックボックス化したレガシーシステムを刷新し、敏捷性と柔軟性に優れるクラウドネイティブな開発環境を構築することを意味します。コンテナやマイクロサービスアーキテクチャ、サーバーレスなど、パブリッククラウドをベースとした開発環境を構築し、その利点を最大限に活用することでイノベーションを創出することがモダナイズの目的です。
「Modern」は「現代的」や「近代的」といった意味合いをもつ英単語であり、IT分野の領域では「老朽化」や「時代遅れ」と訳される「Legacy」の対義語として用いられます。たとえば、老朽化したメインフレームからの脱却やクラウド環境への移行、プログラム構造やデータベースの見直し、アジャイル開発やDevOpsの導入などがアプリケーション開発におけるモダナイズの一例です。
アプリケーションのモダナイズはなぜ必要?
レガシーシステムからの脱却やクラウドマイグレーションなど、開発環境のモダナイズが必要とされる背景には「ビジネスの変化に対応するため」と「言語の変化に対応するため」という2つの理由があります。
ビジネスの変化に対応するため
20世紀後半から21世紀初頭にかけて起きたIT革命により、さまざまな分野でデジタル化が加速し、その恩恵を受けて多くの産業が飛躍的な発展を遂げました。しかし、市場や経済の発展は苛烈な競争原理の上に成り立っており、レガシー化したシステム環境や従来の開発手法では変化の加速する現代市場に対応しきれなくなりつつあります。
経済産業省は2018年に発表した「DXレポート(※)」のなかで、ITシステムの肥大化や複雑化がイノベーションを創出する足枷となっており、2025年までにシステム環境の変革を実現できなければ多大な損失と産業の衰退が生じると指摘しています。経済産業省はこの問題を「2025年の崖」として警鐘を鳴らし、さまざまな分野で大きな話題となりました。このような背景からレガシーシステムからの脱却が求められており、開発環境のモダナイズが急務となっているのです。
言語の変化に対応するため
時代の潮流はクラウドファーストへと加速しており、ITインフラのクラウド移行を推進する企業が増加傾向にあります。なかでもクラウド移行が急務となっているのがメインフレームです。メインフレームは多くの企業が基幹システムの心臓部として運用しており、COBOLやRPGなどの古いプログラム言語で構築されています。
たとえば、COBOLは安定性と信頼性に優れるプログラム言語ですが、記述の抽象度が高く、技術者の高齢化が進んでいる言語でもあります。メインフレームは複雑かつ高額な運用コストを要し、古いプログラミングを伴うため、AzureやAWSといったクラウド環境への移行を推進する企業が少なくありません。このような課題を解決する手段のひとつとして、システム環境や開発環境のモダナイズが重要課題となっています。
アプリケーションのモダナイズを行う方法
ここからは、モダンアプリケーション開発を推進する具体的なステップについて見ていきましょう。必要となるのは「インフラの刷新」「アプリケーションのマイクロサービス化」「ソースコードの書き換え」の3つです。
インフラの刷新
モダンアプリケーション開発の推進で欠かせない施策のひとつが、サーバーやOS、ミドルウェアといったITインフラの刷新です。とくにクラウドコンピューティングの活用はモダンアプリケーション開発に必須といえます。サーバーレスなシステム環境を構築できれば、ITインフラの物理的な保守・運用管理が不要になり、運用コストの削減と人的資源の最適化に寄与します。
また、クラウドネイティブな開発環境を構築するためには、コンテナ型仮想化技術を用いてホストOS上に仮想環境を構築するアーキテクチャが不可欠です。コンテナはゲストOSを起動することなくアプリケーション実行環境を構築できるため、CPUやメモリーの消費量が少なく、動作性が俊敏で可搬性が高いというメリットがあります。敏捷性と柔軟性に優れる開発環境を整備することで、競合他社との差別化やイノベーションの創出に寄与します。
アプリケーションのマイクロサービス化
モダンアプリケーション開発を推進する上で、コンテナ仮想化技術とともに不可欠となるのがマイクロサービスアーキテクチャです。マイクロサービスアーキテクチャはシステム開発における手法のひとつで、アプリケーションをモノリシックなプログラムとして構築するのではなく、複数の小さなサービスや機能の集合体として構築する方法を指します。
アプリケーションの構造をマイクロサービス化することでテストやデプロイが容易になるため、開発サイクルの短縮化に寄与し、リリース速度が大幅に向上します。また、マイクロサービスはそれぞれ異なる開発基盤を使用するケースが多いものの、各サービスをコンテナとして実行することでお互いの環境に影響されません。何らかの問題が発生しても該当部分のみを切り離せば済むため、アプリケーション開発における敏捷性と柔軟性が大幅に向上します。
ソースコードの書き換え
先述したように、アプリケーション開発におけるモダナイズの要となるのはクラウドマイグレーションです。しかし、クラウド環境への移行そのものがモダナイズを意味しているのではありません。コンテナやマイクロサービスアーキテクチャといったクラウド技術の活用は手段のひとつでしかなく、モダナイズの本質的な目的は、変化の加速する市場や高度化する顧客ニーズに対して、素早く対応できる開発環境を構築することにあります。
そのため、いきなりITインフラの大規模な刷新を実行するのではなく、既存のコード構造を最適化したり、古い開発言語を新しい開発言語に書き換えたりなど、段階的に新しいアーキテクチャへシフトしていくことも大切です。既存システムの機能や仕様はそのままに、新しい開発言語に移行することでITインフラのリプレイスに要するコストを抑えられます。
アプリケーションのモダナイズを進めるときのポイント
ここからは、アプリケーション開発のモダナイズで押さえておきたいポイントについて見ていきましょう。重要となるのは「レガシーシステムの評価と優先順位付けを行う」「DevOpsを実践する」、そして「ルール駆動開発を行う」の3つです。
レガシーシステムの評価と優先順位付けを行う
ITインフラやアプリケーションのモダナイズを実行するためには、まず既存のシステム環境をアセスメントしなくてはなりません。たとえば、レガシーシステムのクラウド移行は、「旧システムから必要なファイルを抽出して新システムに組み込む」と要約できます。しかし、その移行プロセスには複雑かつ膨大な作業フローが内包されるため、投資対効果の観点から優先順位付けをする必要があるでしょう。
DevOpsを実践する
モダンアプリケーション開発では、ITインフラやシステム環境とともに重要となるのが開発手法です。とくに近年は開発部門と運用部門が協調し、アプリケーション開発の効率化を図るDevOpsが大きな注目を集めています。開発部門と運用部門が連携しながらテストとデプロイを繰り返すことで、本当に必要な機能や仕様を備えたシステムやアプリケーションを開発できます。
ルール駆動開発を行う
ルール駆動開発とは、アプリケーションやシステムの開発領域において、ルール部分から設計・開発していく手法です。業務要件に基づき、まずコアとなるルールを整理・設計・実装し、ルールの追加とテストを繰り返しながら完成度を高めていきます。高品質なアプリケーションを効率よく開発できる手法であり、ブラックボックス化したレガシーシステムでも迅速なリプレイスを可能にします。
まとめ
アプリケーション開発のモダナイズとは、ブラックボックス化したレガシーシステムを刷新し、敏捷性と柔軟性に優れる開発環境を構築することを指します。モダンな開発環境の構築を目指す企業は、ローコード開発プラットフォームの「Power Platform」の導入を検討してみてはいかがでしょうか。