アプリケーションを異なる小さなサービスに分割することの利点は、が高くなることである。これによって、アプリケーションの理解、開発、テストがより簡単に行えるようになり、アーキテクチャの腐敗に対する弾力性が向上する。マイクロサービスによる開発を行うことで、開発が並列化され、少人数の自律的なチームにより、各チームが所有するサービスを独立に、開発、デプロイ、スケールさせることが可能になる。また、継続的リファクタリングを通して、個々のサービスのアーキテクチャ全体を置き換えることも可能になる。マイクロサービスベースのアーキテクチャでは、継続的デリバリーと継続的デプロイが可能になる。
概要.
何がマイクロサービスであるか、という公式な定義は存在しないが、業界では徐々にコンセンサスが形成されつつある。マイクロサービスを特徴づける定義としてよく引き合いに出されるものとしては、以下のような点が挙げられる。
特徴.
提唱者らは下記に述べる特性を挙げているがこれらは定義ではなく、すべての特性をもつ必要はないとしている。
背景.
技術の発展とサービスの多様化に伴い、モジュールが独立して展開可能でなおかつスケーラブルであるようになる。
また、堅固なモジュール境界を提供し、それぞれの機能が異なるプログラミング言語で書かれることを可能にした。さらに、異なるチームによって開発・運用管理することもできるようになることで、一部の変更が全体へ影響を及ぼすことへのリスクがサービスの独立によって解消できるアプローチスタイルが出来上がった。
課題.
モノリシックアーキテクチャと比較し、下記の欠点を上げている。
方法論.
提唱当初のプラクティス.
アプローチのひとつとしては、マイクロサービスアーキテクチャから始めるべきではないということ。代わりにモノリスで始め、モジュール化したままにし、モノリスが問題になったらマイクロサービスに移行・分割していく。
サービスメッシュ.
マイクロサービスを構成するネットワーク基盤をサービスメッシュと呼び、ネットワーク基盤をアプリケーションから隠蔽することでマイクロサービスをより容易に実現しようと試みられている。
エンデバー (オービタ)
大島眞一
人物・経歴.
アトランティス (オービタ)
チャールズ・ワレン
星野亜里沙
来歴.
作品.
ディスカバリー (オービタ)