前述のファウラー氏のWebサイト上で、ルイス氏とファウラー氏は9つにわたるマイクロサービスの特徴について言及しています。図1に示したこれらの特徴は、マイクロサービスアーキテクチャーを適用したシステムが必ず満たすべき金科玉条というわけではありません。マイクロサービス化を進めれば、結果としてこれらの特徴のいくつかを備えるはずといったレベルのものです。とはいえ、より多くの特徴を有している方が、マイクロサービスあるいはクラウドネイティブアプリケーションとしてより理想的な形になっているはずです。
マイクロサービス化を進める目的の1つは、アプリケーションのメンテナンス性を担保することにあります。そのためには、アプリケーションを1つの大きな塊ではなく、より小さな粒度のサービスというソフトウエアコンポーネントとして作成し、これらサービスを組み合わせてアプリケーションを形成する手法を取ります(特徴1 サービスによるコンポーネント化)。
アプリケーションを複数のサービスから構成しておけば、高いメンテナンス性に加えて、柔軟なスケーラビリティというメリットも得られます。1つの塊としてアプリケーションを構成した場合に比べて、より細かにサービスごとにスケールさせることが可能になるので、システムリソースの最適化が図れます。