
298
導
入
編
1
設
計
編
ア
キ
テ
ク
チ
ャ
編
2
3
4
5
6
7
6
マイクロサービ ス
マイクロサービスも複雑さを軽減して保守性を維持向上するためのアーキ
テクチャの手法です。今までに見てきたオブジェクト指向設計、サブシステ
ム分割、レイヤーなどと同じ目的を持ちます。特にサブシステム分割とは、
機能ブロック単位で縦割りにするという面で似ています。ただ、サブシステ
ムはモノリシックになってしまうことが多いので、マイクロサービスは機能
単位で徹底的に疎結合にします。
モノリシック(Monolithic)とは一枚岩のような固まりになっていると
いう意味です。そしてシステムがモノリシックになっているとは、システム
を構成するコンポーネントが密結合になっていて、あるコンポーネントを変
更すると他の多くのコンポーネントまで変更しなければならない状態のこと
を指します。これは、コンポーネント間の依存関係が強く、コンポーネント
単体を切り離すことが難しい状態です。コンポーネントが密結合というと、
プログラムにおけるメソッドの呼び出しだけが原因と思われるかもしれませ
んが、他にも密結合になりやすいのがデータベースです。データベースの
テーブルは外部キー(FK)で関連付けされていれば結合であり、この関連付
けが過度であれば密結合といえます。仮に外部キーで関連付けされていなく
ても、意味として他のテーブルの主キーを持っていれば結合であり、それが
過度であれば密結合となります。したがって、RDBに限らずNoSQLでも密
結合は起こり得ます。モノリシックだと保守性が低いだけでなく、スケーラ ...