既存システムを活かしたクラウドシフトのポイント 第2回
~業務をどのように分割して疎結合なアプリケーションを実現すれば良いのか?~
クラウドネイティブNow

吉富 剛

富士通株式会社

ソフトウェアプロダクト事業本部 アプリケーションマネジメント事業部 マネージャー

はじめに

マーケットのニーズに迅速に対応していくために、クラウドネイティブ技術を使い、既存システムを活かしてアジリティーやスケーラビリティーを向上する「クラウドシフト」に取り組むお客様が増えています。
本特集では、アプリケーションやデータ、運用といった切り口でクラウドシフトに使える技術の活用ポイントを最新動向を交えて3回に渡って紹介します。

既存業務のクラウドシフトの進め方

第1回の「業務ごとのデータ管理はどうしたら良いのか?」では、DX(デジタルトランスフォーメーション)を推進するために、既存アプリケーションをクラウドシフトしたうえでマイクロサービス化してアジリティー(機敏性)を高める必要があるとご紹介しました。では、いったいどのように進めれば良いのでしょうか。
具体的には、既存システムをサービスとして分離し、APIで連携することで疎結合化します。疎結合(そけつごう)とは、細分化した個々のサービス同士の結びつきや互いの依存関係、関連性などが弱く、それぞれのサービスについて独立性が高くなっている状態です。さらに、分離したサービスをさらに細かくサービスとして切り出し、サービスそのものをスリム化します。
このようにサービスをAPIで区切ることで、各業務をシンプル化して業務変更やデプロイ作業を単純化し、アジリティーを高めることができます。

既存システムをサービスとして分離しAPIで連携

既存業務をAPI化した実践例で解説

より具体的に説明するため、既存業務をAPI化した実践例を交えて解説します。
このお客様では、基幹システムの一部業務を社内外に向けて提供するため、クラウドシフトしてWeb API化しましたが、性能問題が発生しました。最初は、様々な部門や担当者の要求を基に業務をサービス化してAPIを設計したのですが、結果として応答時間の性能要件を満たせず、予定の1秒未満から3秒超過となってしまいました。

性能問題の発生

原因としては各担当者から要望された業務をAPI化して積み上げてしまったことにあり、最大の呼び出し階層は10を超過していました。さらに再利用が見込めない処理もありました。このため、既存システムで提供していた清算APIを起点としてAPIの再設計を行うこととなりました。再利用性とアジリティーの向上を評価して、サービスとして切り出す業務を精査したうえで性能への影響度合いを基に選択するという作業を実施しました。これにより、呼び出し階層を5まで絞り込み、応答時間の性能要件である1秒未満を達成することができました。

設計のやり直し

性能問題の原因における本質とは?

この実践例で発生した性能問題の原因における本質とはいったい何だったのでしょうか。
この実践例では、振込業務に性能問題が発生した原因がありました。この振込業務は「改修が多く」「再利用性の高い」ものだったためサービス化に向いている業務と言えます。しかし「振込API」としてサービス化してアジリティーを高めたところまでは良かったのですが、他の業務でも振込APIを利用したいという要望が多かったのです。このため、要望に沿う形で再利用を進めた結果、振込APIの呼び出しが階層化してしまい、結果的にオーバーヘッドが大きくなってしまいました。

WebAPIのオーバーヘッドを考慮せず大量のサービスを作成したため性能問題が発生

業務のAPI化・サービス化を進めると確かにアジリティーは高まるのですが、一方でWeb APIの数が増えて階層が深くなると、APIを呼び出すためのオーバーヘッドが増加するため性能に影響します。
この実践例では、一度にクラウドシフトとしてサービス化する構成で設計したため、API間のオーバーヘッドが一気に大きくなり、性能問題が発生してしまいました。オーバーヘッドを考慮して業務をきちんと整理してからサービス化するという手順を踏まなかったというのが原因の本質なのです。

API呼び出しにおけるオーバーヘッドの監視・分析が重要

実践例のようなシステムではAPI呼び出しのオーバーヘッドを監視・分析することも大事です。
API呼び出しのオーバーヘッドは、API呼び出しを一括で管理するAPI管理基盤を活用します。具体的には、APIの呼び出しについてAPI管理基盤を経由させることで、呼び出し状況を把握することで監視分析します。とくにAPI管理基盤で提供されているAPI呼び出しの監視機能やレポート作成機能、分析支援機能により、早期発見に役立ちます。

API呼び出しを一括して管理

この実践例からわかるとおり、既存業務をクラウドシフトしてサービス化する際は一度に設計・実装を進めず、分割するサービスの再利用性やアジリティーを評価して設計することが第一のポイントです。そのうえで性能影響を分析・確認・把握しながらサービス化を進めていくことが、疎結合なアプリケーションを実現するポイントとなります。

システムやサービスのAPI化を加速、安全なAPI公開・継続改善を支援する
FUJITSU Hybrid IT Service Digital Application Platform API Management Service

一口にAPIの一括管理と言っても、APIの数が少なければ個別にシステムやアプリケーションごとに監視・管理することもできますが、クラウドシフトでサービス化するAPIの数が増えると管理者の負担も増加するため、結果的にクラウドシフトの妨げとなります。

FUJITSU Hybrid IT Service Digital Application Platform API Management Service

富士通が提供するアプリケーション管理基盤「FUJITSU Hybrid IT Service Digital Application Platform API Management Service」は、オープンソーステクノロジーベースの国産クラウドサービス FUJITSU Hybrid IT Service FJcloud-OでApigeeベースのアプリケーション管理基盤をマネジメントサービスのPaaSとして提供しているものです。
アクセス制御機能やデータプロトコル変換機能などにより、APIの開発期間を短縮することができ、認証・認可機能やトラフィック流量制御機能により、安全にAPIを公開できます。さらに、ダッシュボードによる監視やグラフによる視覚化、カスタムレポートといった解析・モニタリング機能により、利用状況の把握も簡単に行えます。

関連情報

当社が提供する「Web API管理」の詳細は下記ページをご覧ください。

本コンテンツに関するお問い合わせ

お電話でのお問い合わせ

富士通コンタクトライン(総合窓口)

0120-933-200

受付時間:9時~12時および13時~17時30分
(土曜日・日曜日・祝日・当社指定の休業日を除く)

Webでのお問い合わせ

当社はセキュリティ保護の観点からSSL技術を使用しております。

ページの先頭へ