マイクロサービスの考え方
最終更新日: 2020年7月7日
R8 | R9
"マイクロサービスアーキテクチャ" (Micro Service Architecture, MSA) とは、1つのアプリケーションをビジネス視点で分割した複数のサービスに分割し、疎結合に連携したアーキテクチャのことです。
MSA のメリットはいくつかありますが、ここでは "開発チームごとに独立してアプリケーションの入れ替えができること。" とします。
よく知られている MSA のイメージを示します。マイクロサービス単位で開発言語やデータベースは異なっており、必要に応じて双方で通信を行います。(通信の方式は REST を使うことが一般的です。)ただし Redis や MQ などはサービス間で共有されることもあります。
図1に示すアーキテクチャにはデメリットもあります。それは "連携時のパフォーマンス" です。Wagbyに適用した場合、次のような問題が生じます。
これらの問題を回避しつつ、MSAのメリットである "独立したアプリケーションの入れ替え" を享受するため、Wagby ではデータベースを共有することを前提としたアーキテクチャを採用します。以降、これを "Wagby マイクロサービスアーキテクチャ (W-MSA)" と呼びます。
W-MSA の基本方針は次の通りです。
W-MSA はマイクロサービスの単位にデータベースを含めないため、アプリケーションの独立性を低下させますが、連携時のパフォーマンスに関する問題を回避します。同時に、RDBが提供するトランザクション処理を利用できるようにします。その結果、範囲を限定した上でアプリケーションの入れ替えを行えるようにします。
W-MSA のポイントはデータベース(リレーショナルデータベース)の扱いにあります。エンタープライズシステムで必須要件となる "トランザクション処理
" と "テーブルスキーマの維持管理" を保ったまま MSA のメリットを享受するため、データベースの拡張性はスケールアップ方式を採用します。
多くのパブリッククラウドが提供するデータベースサービスはスケールアップ方式を提供しています。W-MSA はパブリッククラウドで運用されることを前提にしており、データベースもフルマネージドサービスとして提供されているものを採用します。
W-MSAを有効にしたとき、マイクロサービスとして扱われる複数のアプリケーションがビルドされます。
本ガイドでは、AWS (Amazon Web Service) 環境で運用するための方法を説明します。はじめに、次の担当者を決めてください。
AWS管理者は、いくつかの「初期設定」が必要です。こちらは AWS の知識を有するエンジニアに直接、サポートします。Premium Support でお問い合わせください。
Wagbyマイクロサービス(W-MSA)は Unlimited または Corporate ライセンスで利用できます。
Wagby Designer を起動する前に、ライセンスキーを配置しておいてください。
次ページより W-MSA に対応したアプリケーションのビルド方法と AWS への転送、そしてサービス単位の入れ替えを含む運用方法を説明していきます。
一般的に知られているマイクロサービスアーキテクチャ
Wagbyによるマイクロサービスアーキテクチャ
トランザクション処理や参照連動のパフォーマンスの大幅な劣化。Wagbyで開発したアプリケーションは多くの場合、複数のモデルが連携したトランザクション処理や、モデル間の参照連動が含まれます。REST API 経由の通信は(ローカルで完結する場合と比較して)何十倍も遅いため、複雑なモデル構造では致命的になります。
ワンポイント
データベースの扱い
運用担当者
担当者
必要性
説明
AWS管理者
必須 (外注可)
本ガイドに示す「初期設定」を行います。また、運用開始後は定期的に AWS の状況確認とルーチンワーク(データベースのバックアップなど)を行います。
ドメイン管理者
必須 (内部で決めること)
AWS環境が利用可能となったあと、ビルドしたアプリケーションを転送し、必要に応じてデータベースのスキーママイグレーションおよび初期データのインポートを行います。
データ管理者
任意
扱うアプリケーションが増えてくると、共通モデルおよび複数のドメインで利用されるモデルの扱いで、複数のドメイン管理者と調整する必要が生じます。このとりまとめを行う方を決めておくことを推奨します。
AWSの初期設定
ライセンスの確認
ワンポイント
進め方と技術サポート