O’REILLY Learning「モノリスからマイクロサービスへ ―モノリスを進化させる実践移行ガイド」1章
1章 必要十分なマイクロサービス
マイクロサービスとは、ビジネスドメインに基づいてモデル化された、独立してデプロイ可能なサービス。
サービス指向アーキテクチャ(Service-Oriented Architecture:SOA)の一種ながら、サービスの境界をどのように引くべきかについて確固とした考え方があり、独立してデプロイ可能であることが重要なアーキテクチャ。
有名なコンウェイの法則
システムを設計する組織は、その構造をそっくりまねた構造の設計を生み出してしまう。
Melvin Conway “How Do Committees Invent?”
モノリス
・単一プロセスのモノリス
・モジュラーモノリス
・分散モノリス
結合(Coupling)と凝集(Cohesion)
コンスタンティンの法則
構造は、凝集度が高く、結合度が低い場合に安定する。
Larry Constantine
実装結合
一時的結合
デプロイ時結合
ドメイン結合
ドメイン駆動設計(Domain-Driven Design:DDD)
・集約(Aggregate)
・境界づけられたコンテキスト(Bounded Context)
集約と境界づけられたコンテキストをマイクロサービスにマッピングする