Skip to content

新着ガイドビジネスを止めずにレガシーシステムをモダナイズする

アーキテクチャ

マイクロサービスかモノリスか:正しいアーキテクチャの選び方

チーム規模、ドメイン、運用の成熟度に基づく判断の枠組み。

著者
Eryon エンジニアリング
公開日
更新日
読了時間
1 分
独立したサービスで構築された配送プラットフォームの管理ダッシュボード

要点

  • 新しいプロダクトの多くにとって、モジュール化されたモノリスが正しい初期選択。
  • マイクロサービスは、複数のチームと明確に分かれたドメインがあるときに効果を発揮する。
  • 分散システムには、整合性、トレーシング、運用という現実のコストがある。
  • 一括の作り直しではなく、機能ごとに段階的に移行する。

マイクロサービスはモノリスの上位版ではなく、トレードオフです。今のプロダクトに合うアーキテクチャの決め方と、両者の間を安全に移行する方法を解説します。

成熟度ではなくトレードオフ

モノリスはデプロイ可能なひとつのアプリケーションです。マイクロサービスは、アプリケーションを独立してデプロイできるサービスに分け、それぞれが業務機能とそのデータを持ちます。どちらかが本質的に優れているわけではなく、それぞれ簡単になることと難しくなることが異なります。

モノリスが有利な点

よく構造化されたモジュラーモノリス、つまりインターフェースが定義された明確な内部モジュールを持つモノリスは、これらの利点を保ちながら将来の分割に備えられます。

  • 理解、テスト、デプロイの対象がひとつのコードベース。
  • ドメイン全体にわたるデータベーストランザクション。
  • ひとつのプロセス、ひとつのログによる簡単なデバッグ。
  • 小さなチームでも運用負担が少ない。

マイクロサービスが有利な点

Spring BootとKafkaで構築した配送プラットフォームでは、注文と決済をメニューや配車から分離したことで、ピーク負荷の中でも決済が動き続けました。そのビジネスにとっては、複雑さを上回る価値がありました。

  • チームがリリースを調整せずに独立してデプロイできる。
  • 負荷の高いコンポーネントだけをスケールできる。
  • ひとつのサービスの障害を封じ込められる。
  • 各サービスが適したストレージを使える。

シンプルな判断基準

次の多くが当てはまるならマイクロサービスを検討し、そうでなければモジュラーモノリスから始めましょう。

  • 複数のチームが独立してリリースする必要がある。
  • ドメインに明確に分かれた業務機能がある。
  • システムの部分ごとに負荷の性質が大きく異なる。
  • CI/CD、監視、トレーシングをすでに自信を持って運用している。

モノリスからサービスへの移行

そのときが来たら、機能をひとつずつ切り出します。前にインターフェースを置き、その背後に新しいサービスを作り、新旧を並行稼働させ、トラフィックを段階的に切り替えます。各ステップは元に戻せるようにし、本番で検証してから次に進みます。

関連サービスモダナイゼーションとシステム連携ビジネスを止めずに、段階的に作り直すレガシーシステム。

参考になりましたか?次の記事をメールで受け取れます。

月に1通。いつでも解除できます。

作る価値のあるプロダクトはありますか?

そのアイデアを、ビジネスで本当に使えるシステムに変えましょう。