全1222文字
PR

アプリケーションの迅速な改善を可能にする「マイクロサービスアーキテクチャー」。国内でも金融機関や伝統企業が導入するなど、本格的な普及期に入りつつある。ただし既存システムへの適用では、アプリケーションを独立性の高いサービスに切り分けるといった難題が立ちはだかる。どうすればうまくいくのか。最新の事例から成功の秘訣を探る。

 NTTドコモはレガシーシステムのモダナイゼーションを通じ、コンテナへの移行を進めている。既存のアプリを整理するなかで、課題だったチェックロジックの一覧性や再利用性を向上させた。マイクロサービス化ではないが、アプリ整理の考え方が参考になるので取り上げる。

 対象のシステムは、独自のインターネット接続サービスである「iモード」や「spモード」の利用が急拡大した際に構築したシステムだ。それらのシステムは10年以上にわたって変更開発を繰り返してきた結果、肥大化した。あるサービスは画面が約800個、仕様書が約8000ページ、ソースコードは約50万ステップという規模である。

 NTTドコモのサービスデザイン部アプリケーション開発担当である永原崇範氏は「標準技術を使い、コストを削減しながら顧客によりよいサービスを提供できるようにする」とコンテナへの移行方針を話す。

 コンテナの利用環境は、コンテナ管理のオープンソースソフトである「Kubernetes」をベースに整備した。

 移行に当たり、まず既存システムを調査した。画面やソースコードを分析する中で浮かび上がった課題の1つは「画面データが複数のテーブルに分散している」ことだった。長年、変更開発を重ねたことで、各画面が参照・更新するテーブルが複数に分散した。その結果、少しだけ異なるチェックロジックやデータ操作機能が大量に存在していた。

 この課題を解決するために、モデル化を通じて画面やテーブルなどを整理することにした。まず画面群を15グループに再整理。テーブル間の関連性も見直し、統合などによりテーブル数を従来に比べ約30%減らした。