アプリ基盤編 第6章 / 全13章
モノリスとマイクロサービスとは
Monolith ・ Microservices
1つの塊か、小さな部品の集まりか大きな総合病院か、専門クリニックの集まりか。総合病院は連携が楽だが、改装すると全部の科に影響する。クリニックは1つずつ改装できるが、紹介状(API)のやり取りが増える。
図とさわれるデモで確かめる →
ポイント
- モノリス:全機能を1つのプログラムにまとめる。小さいうちは作るのも動かすのも簡単
- マイクロサービス:注文・在庫・決済などを別々の小さなサービスに分け、APIでつなぐ
- 分けると、1つの不具合が全体に広がりにくく、チームごとに別々に直して公開できる
名前の由来
mono1つのlithos石(ギリシャ語)
モノリスは「1枚岩」。全部の機能を1つのプログラムにまとめた作り。マイクロ(とても小さい)サービスはその逆。
仕事の現場では
マイクロサービスは大規模なサービスでは強力ですが、部品が増えるぶん運用は複雑になります。小〜中規模なら、まずはモノリスで作り、必要になってから分けるのが失敗しにくい進め方です。
くわしく(正確な話)
- マイクロサービス同士は、APIや、あとで処理するメッセージでやり取りする。
- サービスごとにデータベースを分けるのが基本。
- 部品が多くなるので、コンテナとKubernetesで動かすことが多い。
- サービス同士の通信を見える化・制御する仕組みをサービスメッシュと呼ぶ。
うまれ:マイクロサービスという言葉は、2014年にマーティン・ファウラーらの記事で広まった。
この章の用語(意味と語源)
- モノリス Monolith
全部の機能を1つのプログラムにまとめた作り。
語源ギリシャ語 monos(1つの)+ lithos(石)。1枚岩のこと。
- マイクロサービス Microservices
機能ごとに小さなサービスに分け、APIでつなぐ作り。
語源micro(とても小さい。ギリシャ語 mikros)+ service。
- API エーピーアイ
プログラム同士が、決まった形でやり取りするための窓口。
語源Application Programming Interface。interface は inter(間)+ face(面)で「接する面」。