モノリシックから卒業。マイクロサービスで効率的に開発し、柔軟に拡張できるシステムを実現。
マイクロサービス
「マイクロサービス」とはDX時代の高速ウェブアプリケーション開発を支えるAPIマッシュアップ技法を使った開発手法。それがどのようなものかを一言で定義するなら、「複数の独立した機能を組み合わせることで、一つの処理を実現するアーキテクチャ」であると言えます。ポイントは、一つの処理を実現するのが一つの機能ではなく、複数の機能であるというところです。
マイクロサービスのメリット
3層構造中心のレガシーシステム、一つのビジネスロジック内でコンポーネントが複数存在し、UIはコンポーネントを呼び出す(API)ことで成立していた。また各コンポーネントの関連は密結合であり、DevOpsを進めていく上で局所化した改変を実施することが出来なかった。
一方マイクロサービスでは分割されたビジネスロジックがそれぞれ疎結合となり、UIはビジネスロジック単位を呼び出す(このAPIを”マイクロサービス”と言う)ことで、API数減少及びAPIの連鎖を意識することなくUIは開発が進められるようになる。マイクロサービス化するメリットは独立性、保守性、拡張性、可用性、再利用性で真のDevOpsを支えます。
デザインパターン
マイクロサービス利点を実現するためには、ひとつひとつのシステム構成要素に対する細かなデザインパターンの適用が必要となります。言い換えると、マイクロサービスを適用したシステムとは、「複数のデザインパターンの集合体」です。
マイクロサービス適応先例
マイクロサービス - データエンジニアリング・サービス
自動車会社のデータビジネス、製造業のデータ集積サービス、保険業のデータ移送サービスで培ったノウハウを活用して新たなデータエンジニアリング・サービスを提供致します。ベースはETLツール (Talend, Ab Initio等)とData Lake (Hadoop, Cloudera SDX, AWS S3, その他DB), DWH (Snowflake, Redshift, EMR, その他DB)の構成で、SoR/SoE/IoTで発生するデータをマネジメント致します。
また新しいサービスとしてはData Lakeにマイクロサービス/GrapQL経由のWeb-UIを実装する事により、SoR/SoE/IoTデータ有無は問わず、入出力とビジネスロジック及びWeb-UIを備えた個別のビジネスアプリケーションを提供可能となりました。勿論、全てのデータは一旦Data Lakeに格納されるので、後続のSoI処理の基盤としても利活用可能となります。
ビジネスアプリケーション
日本瑞友が考えるプラットフォームはData Lakeの延長上にあり、データを一旦格納した後にビジネス処理を実施する故、ニア・リアルタイムなビジネスアプリケーションに向いています。応用可能なビジネスアプリケーションとしては以下の様な用途です(データを貯めこんだ後、数か月から数年後にはAIを利用した分析に繋げられる事が重要)
- B2B ECサイト - 受発注、在庫照会
- ERPシステムの操作画面
- 複数SaaSシステムのマッシュアップフロント
- その他マスタとトランザクションの関係で表現できるビジネスアプリケーション
サンプル・アーキテクチャ
ニア・リアルタイムレスポンス要求を満たす、ビジネスアプリケーション・プラットフォーム・基本アーキテクチャ