世の中マイクロサービス・マイクロサービスうるさいのでちょっとこれ読んでおけという資料をまとめておきます。 はっきり言ってマイクロサービス化しようとすると、組織構造の話、エンジニアの責務の話など技術的な課題以外の領域にもいろんなチャレンジがあるので、普通のプロジェクトでも苦労する組織が取り組むとか、設計だけして開発を委託しているけどDB一極化がやばいので取り組むとかは止めておいた方がよいと思います。

概念

  • Twelve Factor App
  • マイクロサービスの話ではないが、モダンなアプリケーションを作りたければ開発チーム全員に叩き込んでおくべき内容
  • Microservices
  • Martin Fowlerによるマイクロサービスの解説。2014年5月に公開
  • Martin Fowlerのブログは翻訳が可能で、日本語訳を公開してくれている人がいる。こちら
  • 単純に言えば、「マイクロサービスとは単一のアプリケーションを小さなサービス群の組み合わせで構築する手法」である
  • サービスによるコンポーネント化(独立して交換やアップグレードが可能、すなわちサービス単体でのデプロイが可能)
  • ビジネスの単位にあわせた組織構造(技術的境界で組織を分割するのではなく、サービスをデプロイするのに必要な能力を持てるように分割する)
  • プロジェクトではなくプロダクトにフォーカスする(AmazonでいうところのYou build it, You run it)
  • エンドポイントの利用による疎結合化
  • 分散統治(組織もデータも)
  • インフラの自動化
  • 壊れることを前提にした設計
  • 漸進的な設計
  • What is a Microservice?
  • Martin Fowlerの話にくらべて簡単にまとまっている。言っていることは同じ。
  • マイクロサービス化が進む背景について考えてみた
  • コンウェイの法則はマイクロサービスのキーワードの1つ。SOAが早すぎたは同意
  • Building Microservices – Designing Fine-Grained Systems
  • オライリーから出版されている本。日本語版が出るという噂

アーキテクチャー

  • Microservice architecture patterns and best practices
  • マイクロサービスのさまざまなアーキテクチャパターンを図入りで紹介している(上記サイトの右ナビから)。
  • 現在紹介されているのは、APIゲートウェイ・クライアントサイドディスカバリー・サーバーサイドディスカバリー・サービスレジストリ・セルフレジストレーション・サードパーティレジストレーション・1ホスト上での複数サービスの稼働・1ホスト1サービスの稼働・VM単位のサービスインスタンス・コンテナ単位のサービスインスタンス
  • Microservice Design Patterns
  • 前述のパターンとほぼおなじだが見ておくとよい
  • Seven Microservices Anti-patterns
  • マイクロサービスの7つのアンチパターン
  • microservicesに分割する際に注意するべき5つのこと

実際の事例

本ブログで取り上げてほしいコンテンツがありましたらお気軽にご連絡ください。