検索
ニュース

開発者が注意すべき「マイクロサービスの問題点」、そのトップ10を解説問題点がメリットを上回るケースも

TechTagetは、「マイクロサービスの問題点」に関する記事を公開した。多くのメリットが得られるマイクロサービスだが、管理やコスト、デバッグの難易度などアプリケーション開発者が注意すべき点も多いという。

Share
Tweet
LINE
Hatena

 TechTagetは2023年11月16日(米国時間)、「マイクロサービスの問題点」に関する記事を公開した。

画像
あなたが克服すべきマイクロサービスの10の欠点(提供:TechTarget)

 「Docker」と「Kubernetes」をベースとする環境で構築されたクラウドネイティブアーキテクチャが流行している。クラウドネイティブと相性の良いマイクロサービスには、次のような利点がある。

  • サービスごとに、アーキテクチャ、言語、プロセス、ツールを自由に選択できる
  • ドメイン駆動型設計やイベント駆動型アーキテクチャなど、ソフトウェアコンポーネントで長年提唱されてきた多くのベストプラクティスが体系化されている
  • 適切にカプセル化されているため、サービスを個別に更新できる
  • 柔軟性が高く、短期間でのリリースが可能
  • マイクロサービスに対応した技術(DockerやKubernetesなど)は多くのハードウェアで動作する

 マイクロサービスはこうしたさまざまなメリットをもたらす。一方で、幾つかの重要な問題点があるため、アプリケーション開発チームは注意する必要がある。特に、信頼性の高いモノリスアプリケーション(以下、「モノリスで構築されたシステムやアプリケーション」という意味で、まとめて「モノリス」と表記する)をマイクロサービス化する(同等の機能を持った多数のマイクロコンポーネントに分割する)際は、マイクロサービスの問題点とその回避策(または問題点との共存方法)を確実に理解することが重要だ。

 本稿では、マイクロサービスの問題点のトップ10を以下のカテゴリーに分けて説明する。

  • トポロジーの複雑性の増加
  • 自動デプロイメントの必要性
  • 複雑な統合のオーバーヘッドと面倒な依存関係
  • データの変換と非互換性
  • ネットワークの混雑
  • パフォーマンスの低下
  • コストの増加
  • ログ記録とトレースの複雑化
  • テストとデバッグの課題
  • 硬直化した組織

複雑性が増す

 モノリスを、ネットワークを介して通信する独立したマイクロサービスのサブセットに分割すると、アプリケーションのアーキテクチャが大幅に複雑化する。例えば、1つのモノリスを10個のマイクロサービスに分割するとしよう。すると、これまで実施していたタスクが以下のように変化する。

Copyright © ITmedia, Inc. All Rights Reserved.

ページトップに戻る