サービス指向アーキテクチャ (SOA) は幅広く使われる言葉であり、実際には意味を持たない。 マイクロサービスはSOAの一部であり、SOAの専門用語の中では役に立つ部分だと言えるほど価値があると、GOTO Berlinカンファレンスのオープニングの基調講演でMartin Fowler氏が述べた。
Martin氏はマイクロサービスの定義を考え出すのは難しいと感じたので、 共通の特徴に目を向けることにした。例えば、マイクロサービスを利用している大抵の人たちがしていることだ。もっとも興味深い特徴には、以下のものがある。
- コンポーネント化。それぞれ個別に他のコンポーネントと置き換え可能な立体的なコンポーネントではなく、システムの一部を置き換えられる
- 技術関連ではなく、ビジネス能力に関わる組織
- 明らかにエンタープライズサービスバス(ESB)を使うのを避けている、スマートエンドポイントと処理能力を持たないパイプ
- 会社全体で1つのデータベースを持つ代わりに、各サービスに対して1つのデータベースを使う分散化データ管理
- 継続的に提供する必要があるインフラストラクチャの自動化
マイクロサービスという言葉の問題の1つは、サイズの意味を含んでいることだ。しかし、Martin氏の経験によれば、人々はサイズを決めようとはせず、その代わりに、同じように漠然とした定義である責務について話すことを好む。サイズの上限を決める場合に、一般的に受け入れられるのは2つのピザのチームを使うことだ。
重要なモノリス(一枚岩)の利点は、多くの開発者たちにとって、比較的簡単でよく知られているアプローチであることだ。Martin氏が言及する利点は、過小評価すべきではない。もう1つはリファクタリングであり、特にモジュール間のリファクタリングは重要だ。境界を変えることはマイクロサービスと比べると比較的簡単であり、その必要がある場合は、1つのサービスの一部を別のサービスへ動かすような、さらに複雑なリファクタリングが必要になるだろう。
マイクロサービスの2つの重要な利点は、個々に異なるサービスを展開できることと、1つのサービスが停止している時に別のサービスを動かせるという信頼性だ。もう1つの決定的な利点は、例えば、新しい言語を試す手段として、様々なプラットフォーム上で構築できることだ。
今年初めに、Martin氏とJames Lewis氏がマイクロサービスに関する記事を書いた。
InfoQは、eMagを含む、多数のマイクロサービスに関するリソースを提供している。
GOTO Berlin カンファレンス 2014は、Berlinで開催される2番目のGOTOカンファレンスであり、約550人の参加者と80人のスピーカーがいる。