DX実現に向け導入が進むマイクロサービスとは?
モノリシックアーキテクチャとの徹底比較

近年、ソフトウェアのアーキテクチャとして「マイクロサービス」が注目されており、DX実現に向けて大手企業でも導入が進んでいます。マイクロサービスとは具体的にどのようなアーキテクチャであり、どういったメリットがあるのでしょうか。本記事では従来型のアーキテクチャである「モノリシック」と比較しながら解説していきます。
DX実現においてマイクロサービスが注目される背景
マイクロサービスはDX(デジタル・トランスフォーメーション)を支えるアーキテクチャとして注目されています。
DXとは、デジタル技術やITを活用し、ビジネスモデルや社会生活などの抜本的な変革を行うことを指します。特に、ビジネスにおいて環境の変化にいち早く対応するには、システムを環境の変化に合わせた仕様変更や機能拡張に柔軟に対応できる状態を維持しながら、いかに迅速に構築できるかが重要になります。
しかし、モノリシックと呼ばれる従来型のアーキテクチャで作られるシステムの多くは、度重なる修正や変更により肥大化・複雑化していきます。そのようなシステムは、内部構造がブラックボックス化し、結果改修が困難になり仕様変更に時間を要するなど、ビジネス変化への柔軟な対応力に欠けているのが実情です。
そこで、1つ1つの機能(サービス)と関連するデータをマイクロサービスという独立した小さなサービス(アプリケーション)として開発し、複数のマイクロサービスを組み合わせて大きなアプリケーションを構築することで以下のような特徴があります。
・システムの変更や改修時のリスクが低く、柔軟性に優れた保守容易性(メンテナンス性)が高い
・システム変更時の影響が局所的になりスピーディーな対応が可能になる
・システムリソースやサーバー構成が利用状況に応じて動的に変更可能であり、システムの必要な部分だけを対象としたスケーリングができる
・個々のサービスが独立しているため、デプロイの際にシステム全体を止める必要がない
このような理由からマイクロサービスに注目が集まっています。
マイクロサービスとは?モノリシックとあわせて紹介
今注目されているアーキテクチャである「マイクロサービス」と従来型のアーキテクチャである「モノリシック」との違いについて解説します。
マイクロサービス(マイクロサービスアーキテクチャ)とは
マイクロサービスは、一つひとつの機能(サービス)とデータを部品化し、それらを組み合わせてアプリケーションを構築するアーキテクチャのことです。部品化されたマイクロサービスは、OSやハードなどの実行基盤が異なっていたとしても、Web APIを介して連携することで利用することができます。
モノリシック(モノリシックアーキテクチャ)とは
モノリシックとは、従来型のアーキテクチャであり、複数の機能を一枚岩(モノリス)のように1つのアプリケーションを構築する方法です。アプリケーションは同じOS上で分割できない1つのモジュールで構成されており、複数の機能はモノリス内で相互に連携しながら実行されます。
では、この2つのアーキテクチャは具体的にどのような違いがあるのでしょうか。次章では3つの観点から比較します。
3つの視座から見たマイクロサービスのメリット
ここではモノリシックと比較したときのマイクロサービスのメリットについて、実際にシステムやアプリケーションを運用していく中で重要となる3つの視座から紹介します。
①:システムメンテナンスの難易度
1つ目は、それぞれのアーキテクチャで構成されたシステムのメンテナンスの難易度に関する視座です。
モノリシックは、モジュール構造が一枚岩で固定化されたシステムであるため、一部の機能(サービス)を変更するとその影響が全体に波及し、影響範囲の調査・特定という作業が必要となります。したがって改修の難易度が高く、アプリケーションの機能(サービス)を追加・変更する際の俊敏性が低い点が課題です。また、長年使われているシステムであれば、有識者も不在であることが多く、そのリスクはより一層高まります。
一方、マイクロサービスであれば、独立した機能(サービス)部品がWeb APIによって組み合わされているため、影響範囲は限定的であり、影響範囲の調査・特定という作業工数は低減できます。また、完全にシステムを停止することなく、必要な機能(サービス)のみを改善できるため機能(サービス)の追加・変更もスムーズに行うことができます。
以上から、マイクロサービスは、変更や改修時のリスクが低く、柔軟性に優れた保守容易性(メンテナンス性)が高いアーキテクチャといえます。
②:ビジネスニーズへの対応速度
2つ目は、ビジネスニーズへの対応速度に関する視座です。
モノリシックは1つの大きな塊のソフトウェアで機能(サービス)同士が密結合しているため、システムやアプリケーションが大きくなればなるほど、機能(サービス)の変更や新機能の追加などの対応に時間と労力がかかります。それに伴い、急速に変化するビジネスニーズへの迅速な対応が難しくなります。
一方でマイクロサービスは、ビジネスサイドから求められる要件に応じて、機能単位(サービス単位)で個別に変更することができるため、ビジネスニーズの変化への臨機応変な対応が可能です。
また、マイクロサービスを組み合わせて作られた業務アプリケーションは、ビジネス環境の変化に合わせて必要な機能(サービス)だけを取り出して、“新たな機能(サービス)として再利用する“といったことも可能になります。
これらからマイクロサービスは俊敏性に優れ、拡張容易性が高いアーキテクチャであるといえます。
③:「技術的負債」と「技術的資産」の蓄積
3つ目は、開発したシステムや各機能を「技術的負債」として残すか、「技術的資産」として蓄積するかという視座です。
モノリシックで開発された従来のシステムは、前述の通り、改修の難易度が高くなる傾向にあります。したがって、開発されたシステムはビジネス環境の変化やデジタル技術の発達に対応しづらく、日を追うごとに陳腐化していきます。また、時間をかけて機能追加などカスタマイズをされたシステムは複雑化・ブラックボックス化しやすく、数年に一度発生するシステム刷新の際には膨大な時間や多額の費用を要すことから、「技術的負債」として企業に残り続けます。
一方でマイクロサービスは、各機能(サービス)が独立しているため、必要な機能(サービス)のみを取り出して組み替えることができ、少ないリスクでシステムの改修を行うことができるため、システムを常に最新の状態に保つことが可能になります。
このようなメリットから、今後のアプリケーション開発においては、マイクロサービスの活用が期待されています。
次章ではアプリケーション開発を促進する、マイクロサービス型のアプリケーション開発基盤であるLaKeel DXをご紹介します。
マイクロサービス型アプリケーション開発基盤「LaKeel DX」
LaKeel DXは、AWS等のIaaS上で動作するaPaaS(ApplicationPaaS)カテゴリに属する、マイクロサービス型のアプリケーション開発運用基盤です。
マイクロサービスを採用しているため、業務アプリケーションを部品単位で構築・最新化でき、システムの陳腐化や技術的負債化を防ぐ高速開発を行うことができます。
LaKeel DXは、開発に必要なインフラやミドルウェアをフレームワークとして提供しており、すぐに業務アプリケーションの開発にとりかかることが可能です。マイクロサービスを蓄積するリポジトリ、機能(サービス)を組み合わせて業務画面を構築するCMS、サービス間を透過的に接続するブローカーなどの機能(サービス)により、高い生産性・運用性・保守性を実現しています。
また、LaKeel DXはローコードでの開発が可能であり、高度なIT知識がないユーザーでも直感的で簡単な画面操作ができます。これにより、直接業務に関わるユーザーが、自ら業務アプリケーションの開発を行うことができるようになります。
さらに、データ統合分析基盤であるLaKeel Data Insightとの連携をすれば、アプリケーションの運用の中で蓄積されたデータを容易に分析・活用することができます。データ活用により既存ビジネスの改革や拡張を実現でき、ビジネスニーズの変化に更に俊敏性を持って対応することが可能になります。
LaKeel DX・LaKeel Data Insightの詳細については、以下よりお問い合わせください。

