マイクロサービスとは

大規模なアプリケーションを小さな独立したサービスに分割することで、開発の柔軟性とスケーラビリティを向上させるアーキテクチャスタイルを指す。独立性の高い複数のサービスを組み合わせ連携してシステム全体を構築するため、サービスごとの更新が比較的容易で、開発期間や更新にも時間をかけず、ニーズに合わせて迅速に対応できる。対義語として「モノリス」「モノリシックアーキテクチャ」がある。

マイクロサービスとは|概要

マイクロサービス(Microservices)とは、大規模なアプリケーションを小さな独立したサービスに分割するアーキテクチャスタイルの一つです。各サービスは個々の機能を果たし、それぞれが独立して動作します。そのため開発も個々に進めることが可能です。

マイクロサービスアーキテクチャとモノリシックアーキテクチャの違い

マイクロサービスアーキテクチャとモノリシックアーキテクチャの違い

マイクロサービス、マイクロサービスアーキテクチャについて、対比の概念となる「モノリス」「モノリシックアーキテクチャ」と比較して解説します。

マイクロサービスアーキテクチャとは

上で紹介したとおり、マイクロサービスとはアプリケーションの機能を「サービス」ごとに「細かく」分割した構造になっています。サービスを構成する機能自体が、実際に別のマシン(物理的なマシンだけでなく仮想プラットフォームなども含む)に分割されています。システム全体を動かすには各サービスを連携させることが基本となります。

近年のIT開発やビジネスにおける変化は激しく、それに伴ってシステムやソフトウェア、アプリケーションは常にニーズに合わせた新しい機能追加や更新を求められています。そのため、従来のような全体が完成してからリリースする長期間にわたる開発手法(ウォーターフォール開発)よりも、開発からリリース、FBと改善のサイクルを短いスパンで繰り返す「アジャイル開発」が主流になっています。

ここから、巨大なシステムやアプリケーションを「巨大な単一のもの」として開発するのではなく、機能ごとに小さく分割して開発できる「マイクロサービス」のほうが拡張性や状況に応じた柔軟性が高いことから、広く注目を集めています。

モノリシックアーキテクチャとは

マイクロサービスの対義の構造となるのがモノリスです。モノリスも内部にさまざまな機能やアプリケーションを内包しますが、単一のマシンの中にあり、分割できません。モノリスの概念を利用しているのが従来のソフトウェア開発モデルであり、「モノリシックアーキテクチャ」といいます。

モノリシックアーキテクチャは特に従来の日本の多くのビジネスモデルまたはプログラム開発手法であり、開発からリリースまでに時間がかかること、一つのサービスを更新・変更するためには全体を更新しなければならないことから現代の開発手順や市場ニーズへの迅速な対応には不適合のケースが多くなっています。

マイクロサービスの特徴・メリット

マイクロサービスの主な特徴をまとめると以下のとおりです。

サービスの独立性が高い

各マイクロサービスは独立して動作し、それぞれが自身のデータストアを持つことが可能です。これにより、他のサービスの影響を受けずに開発やデプロイを行うことができます。

分散開発が可能

各サービスは独立して開発することが可能で、異なる技術スタックを使用することもできます。これにより、チームはそれぞれのサービスに最適な技術を選択し、スケジュールに合わせて開発を進めることができます。

高い拡張性と柔軟性

各サービスは独立しているため、需要の高いサービスだけをスケールアウトすることができ、リソースの効率的な利用が可能になります。また技術の選択や開発の進行が柔軟になります。

耐障害性が高い

一つのサービスがダウンしても、他のサービスに影響を与えにくい仕組みです。

マイクロサービスの課題

一方で、マイクロサービスは以下のような課題も抱えています。

複雑性が高くなることがある

各サービスが独立し連携しているため、システム全体の管理やサービス間の通信、データの整合性などが複雑になることがあります。

最新情報などをメールでお届けします。
メールマガジン登録

このページをシェアする

  • twitter

当用語辞典は「SCSK IT Platform Navigator」編集部が制作・運営しております。当用語辞典の掲載情報を利用することによって生じた不利益および損害等について弊社は一切の責任を負いませんので、予めご了承ください。掲載情報に関するご指摘、ご意見等はお問い合わせまでお寄せください。