Japan Java User Group
設計の進め方
• Microservices
–ファウラー先生が提唱
» http://martinfowler.com/articles/microservices.html
» 海外では、かなりブームになっている雰囲気
–ITサービス運営のアーキテクチャの考え方を良く表
している
» 個々に独立したサービスによって全体のサービスが構成さ
れている
▸ データ、ガバナンス、手法なども完全に独立
» 個々のサービスは個々のチームによって開発・運用される
▸ 開発と運用は一体化され、個々に責任を持つ
33
Japan Java User Group
設計の進め方
• Microservicesの9つの特徴
– Componentization via Services/サービスによるコンポーネ
ント化
– Organized around Business Capabilities/ビジネスケイパビ
リティに基づく組織化
– Products not Projects/プロジェクトではなくプロダクト
– Smart endpoints and dumb pipes/スマートなエンドポイ
ントと単純なパイプ処理
– Decentralized Governance/分散ガバナンス
– Decentralized Data Management/分散データマネジメント
– Infrastructure Automation/インフラの自動化
– Design for failure/フェイルを前提とした設計
– Evolutionary Design/進化的な設計
34
Japan Java User Group
設計の進め方
• Microservicesは既に起きていること
–たとえばECサイト
» 管理画面から商品を登録する
» 商品を検索する
» 商品をカートにいれて購入する
» 受注を処理して請求や物流手配を行う
» 記事コンテンツを更新する
–これらは、全て異なるドメインとして定義できる
35
Japan Java User Group
設計の進め方
• ドメインの発見には、変化の境界を見極める
–分かりやすく外的変化要因になるもの
» ユーザーの役割が異なる
» ユーザーによって利用されるサイクルが違う
–その他の変化要因
» セキュリティ
–必ず境界にするわけではない。パターンにくくって
いくことが大事
36