アジャイル開発に取り組むチーム向けのコーチングや、技術顧問、認定スクラムマスター研修などの各種トレーニングを提供しています。ぜひお気軽にご相談ください(初回相談無料)
マイクロサービスに関する資料のまとめ
世の中マイクロサービス・マイクロサービスうるさいのでちょっとこれ読んでおけという資料をまとめておきます。 はっきり言ってマイクロサービス化しようとすると、組織構造の話、エンジニアの責務の話など技術的な課題以外の領域にもいろんなチャレンジがあるので、普通のプロジェクトでも苦労する組織が取り組むとか、設計だけして開発を委託しているけど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つのこと
実際の事例
- Getting to Microservices: Cloud Architecture Patterns
- AWSのイベント(re:Invent)で話されたGilt社の事例。2007年開始時点ではRubyの、2011年時点ではJavaの一枚板アプリ。2015年時点でPlayやScalaを使ったマイクロサービスへ
- MicroServices at Netflix
- 動画配信サービスを提供するNetflixにおけるマイクロサービス事例やベストプラクティス
- State of the Art in Microservices
- 海外でマイクロサービスを適用した企業の事例のまとめなど
- Rejecting Microservices at Shopify: What They Do Instead
- ECサイトを提供するShopifyでの事例。マイクロサービスに課題があって違うアプローチをとった例
- Microservices Don’t Solve Everything
- Microserviceなんて最初からやるもんじゃ無かった
- 責務の分割や境界の設定が最初あまりうまくいかず大変だった例
- FiNCとマイクロサービス
- ヘルスケア系のプロダクトを作っている会社でのマイクロサービス事例。30ページ目からの実際のチャレンジが参考になる