DDD、マイクロサービス、境界についてEric Evans氏が語る

マイクロサービスは流行り言葉になっているが、Eric Evans氏はマイクロサービスには大きな価値があり、ドメイン駆動設計を実践するための最高の環境を与えてくれると考えている。氏はロンドンで開催された、DDD Exchangeカンファレンスのキーノートで講演をした。

氏にとっては、イテレーションは良い設計のためにもっとも重要だ。そして、マイクロサービスは良い設計をするためSOA以来の2度目の挑戦だ。初期のSOAとの大きな違いは、分離を強調することだ。SOAはデータベースを通じて統合されているのが一般的だった。異なるサービスを手掛けるチームの自主性とサービスを独立して開発、配置できるDevOpsのような動きは境界線となり、全員がもつれあわずに開発できるようになる。また、氏は使われている技術はより、軽く、疎結合になっている。

DDDはマイクロサービスで本当の境界を手に入れられる。共有をしない、というようなマイクロサービスコミュニティがカバーしているアイディアは境界付けられたコンテキストでも求められる。しかし、氏は、高いレベルの設計の見通しと戦略がなければ、たくさんのサービスによって生まれる混乱は、まるで、一枚岩のシステムと同じように見える、と警告している。氏はすべての大規模システムがしっかりと設計されているわけではなく、そのような場合は、マイクロサービスはしっかり設計されたサービスとあまりうまく設計されていないサービスの間を分離するのに役に立つと考えている。

氏にとっては、マイクロサービスの運用の仕方が良い境界付けられたコンテキストを生み出す。最低でもサービスとコンテキストの一対一の関係が生まれる。サービスがより小さくなり、特定の方法で小さなサービス間が協調し通信し始めれば、境界付けられたコンテキストはこれらの小さなサービスをすべて含むようになる。従来の一枚岩のサーバアプリケーションはひとつのコンテキストとしては大きすぎる。そして、高いレベルから考えることができる優秀なエンジニアがシステム内でドメインと境界付けられたコンテキストを見つけることができる。

来年のDDD Exchangeは2016年の6月10日に予定されている。参加受付中。