O’REILLY Learning「マイクロサービスアーキテクチャ 第2版」1〜2

https://learning.oreilly.com/library/view/maikurosabisuakitekutiya-di-2ban/9784814400010/

1章 マイクロサービスとは

MSA:マイクロサービスアーキテクチャ

「マイクロサービス」は、ビジネスドメインを中心にモデル化された、独立してリリース可能なサービス

SOA:サービス指向アーキテクチャ

ヘキサゴナルアーキテクチャ
https://alistair.cockburn.us/hexagonal-architecture/

独立デプロイ可能性
→単純な考え方ではありますが、実行するのは複雑

人々が最も苦労していると思われることの1つは、マイクロサービスでは共有データベースを避けるべきだ、という考え方。

単一プロセスモノリス
モジュラーモノリス
分散モノリス
→「分散モノリス」は、複数のサービスから構成されているものの、何らかの理由でシステム全体をまとめてデプロイする必要がある。

マイクロサービスの利点は多種多様
・技術の異種性
・堅牢性
・スケーリング
・デプロイの容易性
・組織との連携
・合成可能性

マイクロサービスの課題
・開発者体験
・技術の過負荷
・コスト
・レポート
・監視とトラブルシューティング
・セキュリティ
・テスト
・遅延
・データ一貫性

マイクロサービスはアーキテクチャアプローチの「1つ」であって、「唯一」のアプローチではない。
→これは何にでもいえること

2章 マイクロサービスのモデル化

本質的に、マイクロサービスは、モジュラー分解の別の形式

コンスタンチンの法則
凝集度が高く、結合度が低い場合に、構造は安定する。

凝集は、境界の「内側」での物事の間の関係
結合は、境界を「超えた」物事の間の関係

マイクロサービスベースのシステムは、処理を行うために、複数のマイクロサービスの連携に依存
しかしそれでも、それを最小限に抑えておきたい

結合
・ドメイン結合
・パススルー結合
→最も問題のある結合形式の1つ
・共通結合
・内容結合
→内容結合と共通結合の違いは、明確ではない。

DDD(Domain-Driven Design):ドメイン駆動設計
・ユビキタス言語
・アグリゲート(集約)
・境界づけられたコンテキスト(コンテキスト境界)

memoO'REILLY Learning

Posted by shi-n