3層アーキテクチャとマイクロサービスアーキテクチャ、どちらを選ぶべきか:類似点と違いを比較
3層アーキテクチャとマイクロサービスアーキテクチャを細かく比較し、どちらをいつ使用するかを考える。
高いレベルのモジュール性を求めるのであれば、マイクロサービスアーキテクチャが適している。だが、複雑さが増すことに価値があるかどうかや、どのように呼び出すかを検討しなければならない。
アプリケーションアーキテクチャの選択は重要な決定事項だ。どの程度の複雑さまで対処するつもりがあるか、アプリケーションにどの程度の柔軟性を持たせるか、アプリケーションをどのようなタイプの環境でホストするかによって、その答えは変わってくる。
モジュール型のアプリケーションを設計するのであれば、アプリケーションを3つの主要コンポーネントに分割する3層アーキテクチャを選択できる。あるいは、さらにモジュール性を高めるのであれば、マイクロサービスアーキテクチャも選択できる。
本稿では、3層アーキテクチャとマイクロサービスアーキテクチャを細かく比較し、どちらをいつ使用するかを考えてみる。
3層アプリケーションアーキテクチャとは
3層アプリケーションアーキテクチャでは、1つのアプリケーションを次の3つの主要部分に分割する。
- プレゼンテーション層:ユーザーに表示されるフロントエンドをホストする
- アプリケーション層:内部のデータ処理を担当する
- データ層:アプリケーションに必要な全ての永続データを格納する
3層アーキテクチャでは、この各層のコンポーネントを個別に実装する。つまり、3層アプリケーションは、全ての機能を単一のプロセスとして実行するモノリスとはこの点が異なる。
3層アプリケーションでは、各層を別々にデプロイすることを選択できる。例えば、あるサーバでデータベースをホストし、データ層を実行する。一方、別のサーバでプレゼンテーション層とアプリケーション層を実行し、LAN(Local Area Network)で3つの層を相互接続する構成も可能だ。このアプローチによってアプリケーションの各層をある程度分離できるため、セキュリティ上のメリットを得られる可能性もある。
また、アプリケーションの3層全てを同じサーバにデプロイし、各層を異なるプロセスで実行することもできる。このシナリオでは各層の分離は実現できないが、各層をネットワークで接続する必要がなくなる。そのため、ネットワークのパフォーマンスが内部アプリケーションのパフォーマンスに悪影響を与えることはない。
マイクロサービスアーキテクチャとは
Copyright © ITmedia, Inc. All Rights Reserved.