14章

マイクロサービス

 2010年代の中頃、マイクロサービスはソフトウェアエンジニアリング業界を席巻しました。マイクロサービスは、迅速な変更、スケーリング、そしてクラウドコンピューティングの分散的な特性への適合という、現代的な要求に対処することを意図した技術方式でした。多くの企業が、戦略的な決定として、巨大な一枚岩(モノリス)のコードベースを分解し、マイクロサービスが提供する柔軟性を手に入れようとしました。残念ながら、たくさんの失敗例が生まれました。多くの企業が手に入れたのは、柔軟性ではなく、分散した大きな泥団子、つまり分解しようとしたモノリスよりも、はるかに壊れやすく、不恰好で、高コストなシステムでした。

 歴史的には、マイクロサービスはドメイン駆動設計、特に区切られた文脈と関連づけられことがよくあります。ドメイン駆動設計の区切られた文脈とマイクロサービスを同義語のように使う人がたくさんいます。しかし、この二つは、本当に同じものなのでしょうか。この章では、ドメイン駆動設計という設計の方法論と、マイクロサービスという実装の方法論の関係を探求します。二つの方法論がお互いにどう影響しあうか、そして、重要な点として、マイクロサービスベースのシステムを効果的に設計するために、ドメイン駆動設計をどう活用できるかを学びます。

 まず、基礎知識として、サービスそしてマイクロサービスとは何であるかの定義から始めましょう。

14.1 サービスとは何か?

Get ドメイン駆動設計をはじめよう ―ソフトウェアの実装と事業戦略を結びつける実践技法 now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.