BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース マイクロサービス,アプリケーション,システムを比較する

マイクロサービス,アプリケーション,システムを比較する

原文(投稿日:2015/02/28)へのリンク

システム構築方法に関するこれまでの前提が今日,見直しを迫られている。そのひとつが,大規模システムは単一環境でなければならない,というものだ。プロジェクトのスコープとシステム構築は1対1にマッピングされることが多く,結果として1プロジェクト=1システムとなっている - Stefan Tilkov氏は,システムとアプリケーション,マイクロサービスの特徴を検討するプレゼンテーションで,このような説明をしている。

innoQの共同創立者でプリンシパルコンサルタントのTilkov氏は,大規模システムを小さなアプリケーションに分解するという考え方は,すでに広く普及したものだと見ている。その主な理由として,氏が上げるのがアイソレーションだ。大規模システムの個々のパーツ間にバウンダリを導入することで,独立すべきパーツ同士が結合して通信することは難しくなる。それ以外のメリットとして氏が指摘するのは,個々のパーツをそのロードに従って独立的にスケールアップ可能になることから,その判断をローカルに下すことができる点だ。これによって各チームは,バウンダリ内に留まる限り,自分たち自身で意思決定を行うことができるようになる。

小規模なパーツによる論理システムの構築方法を検討したTilkov氏は,次の3つの方式を比較する。

  • マイクロサービスはビジネス機能を中心に構築される。小規模で,それぞれ独自のプロセスで動作し,軽量な通信メカニズムを使用する。
  • アプリケーション(Apps)はそれより多少大きいが,それでも小さく分離された実行プロセスである。マイクロサービスと同じ特徴をいくつか備え,シェア・ナッシングモデルを採用する。
  • 自己完結型システム(SCS/Seff-Contained System)は,氏とその同僚たちが,一般的なシステムという呼称を避けて,より具体的なルールセットの名称として思い付いた名称だ。SCSは非常に巨大な自立型アプリケーションである。データとロジックを内包する,ひとつのチームによって保有される,同期型リモートコールを使用せず,必要であればサーバAPIを使用する,といった特徴を持つ

これら3つのスタイルの数値や特性を比較したTilkov氏は,この中のどれが最適な選択なのかという点について,いまだコンセンサスが得られていない点を強調している。そうではなく,氏が意図するのは,それぞれの範囲と可能なオプションを示すことなのだ。

  SCS Apps マイクロサービス
サイズ(Kステップ) 1-50 0.5 - 10 0.1 - ?
状態 自己完結型 外部 自己完結型
論理システムあたりの数 5 - 25 >50 >100
ユニット間のコミュニケーション なし(可能であれば) ? あり
ユーザーインターフェイス、UI 含まれる 含まれる 外部(?)
UI統合 可能(Webベース) ? ?

氏にとって最も興味深いパラメータは,大規模システムの最初の分解レベルを示す数値としての,論理システムを構築するパーツ数だ。氏が支持するのは自己完結型システムである。小規模なサービスは,それ自体はシンプルではあっても,多数集まることによって,他のレイヤは非常に複雑なものになる。ただし氏は,特定のモデルを推奨しようとしているのではなく,さまざまなレベルでの議論が必要であると強調している。

この記事に星をつける

おすすめ度
スタイル

BT