Microsoftが「.NETマイクロサービス」についてのよくある質問に回答:データベース、マイクロサービス間通信、コンテナ化
マイクロサービスに関するオンラインイベントで特に多くの視聴者から寄せられた質問と回答を、Microsoftが公式ブログで抜粋して紹介した。
Microsoftは2021年4月7日(米国時間)に公式ブログで、2021年3月に開催したマイクロサービスに関するオンラインイベントで特に多くの視聴者から寄せられた質問とともに、イベント時の回答に補足を加えたものをフォローアップとして紹介した。
質問のテーマは、マイクロサービスに関連するデータベースのスケーリングや運用、モノリシックアプリケーションとマイクロサービス、マイクロサービス間通信、コンテナの必要性だ。
質問:マイクロサービスをスケーリングする際、関連するデータベースをどのようにスケーリングすればよいのか
データベースのパフォーマンス改善やスケーリングについては、明確に定義されたパターンやベストプラクティスがある。スケーラビリティの向上や競合の低減、パフォーマンスの最適化のためにデータをパーティション分割する方法を理解するには、次のドキュメントが参考になる。
マイクロサービスのスケーリングや分散データ、マイクロサービスごとにデータベースを運用する理由、リレーショナルデータベースとNoSQLデータベースの選択について、詳しく知るためには、次のドキュメントを参照するとよい。
質問:マイクロサービスごとにデータベースを使用する必要があるのか、マイクロサービスは同じデータベースインスタンスを共有できるのか
チームがマイクロサービスを自律的に使用できることは、クラウドネイティブアプリケーションを設計する上で極めて重要な利点となる。チームが本番環境で、他のマイクロサービスの動作に支障を与えることなく、更新プログラムやセキュリティパッチ、バグ修正プログラムを柔軟に展開できるようにするためには、独立したデータベースインスタンスを使用することが望ましい。
クラウドネイティブアプリケーションのアーキテクチャは、有名な「The Twelve-Factor App」の方法論にヒントを得ている。
このドキュメントの「IV.バックエンドサービス」の章には、「データストアやキャッシュ、メッセージブローカーのような補助的なリソースは、アドレス指定可能なURLでエクスポーズされなければならない」と記されている。クラウドサービスプロバイダーは多様なマネージドバックエンドサービスを提供している。Microsoftはデータベースを自社で所有し、メンテナンスするのではなく、クラウドのデータベースオプションを検討することを勧めており、次のドキュメントが参考になるとしている。
質問:モノリシックWeb APIはマイクロサービスとやりとりできるか
モノリシックアプリケーションは、エンドポイントがインフラ内で接続可能な場合や、パブリックエンドポイントを安全に使用している場合は、マイクロサービスとやりとりできる。
マイクロサービスとそのデータは、エンドポイントで同期的に使用されるか、またはイベントバスのようなメッセージングによって非同期で使用される。
Microsoftがモダナイズ技術の一環として推奨しているストラングラーパターンは、レガシーシステムの段階的な移行に役立つ。ソリューションの一部として、バックエンドレガシーシステムに送信されるリクエストをインターセプトする、ファサードを作成する必要がある。ファサードはこれらのリクエストをレガシーアプリケーションまたは新しいサービスにルーティングする。
Microsoftは、マイクロサービス通信とモダナイズ技術について、次の参考資料を挙げた。
質問:マイクロサービスが疎結合され、独立してデプロイされている場合、どのように相互に通信するのか。マイクロサービス間でどのようにデータを同期するのか
Microsoftはこの質問について、次に挙げるドキュメントの2つのセクションに解説があると答えた。
さらに次の2つの参考資料も挙げている。
質問:マイクロサービスはコンテナを使用する必要があるか
コンテナを使用する必要はないが、使用することにはメリットがある。コンテナはアプリケーションと構成、依存関係を、独立してデプロイ可能な単位にまとめる。Microsoftは「コンテナは独立したマイクロサービスのバンドルとデプロイに非常に適している」と述べ、マイクロサービスエンドポイントの作成と、コンテナ化のチュートリアルとして次の資料を挙げている。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
クラウドネイティブな「.NET 5」が既存の.NET Frameworkアプリにもたらすインパクト
既存の.NET Frameworkアプリの.NET 5への移行に関する考慮事項やレガシーアプリのモダナイゼーションについて解説する連載。初回は、.NET統合の現状や.NET 5のリリースにおけるキャッチアップすべきことなどについて。.NET 5世代のALMを意識した、.NET Frameworkアプリのワークロードごとの.NET 5移行戦略
既存の.NET Frameworkアプリの.NET 5への移行に関する考慮事項やレガシーアプリのモダナイゼーションについて解説する連載。今回は、.NET Frameworkから.NET 5へのワークロードごとの移行方法の概要や参考情報などを紹介します。.NET 5移行前に知らないと損する、アプリモダナイズのための確認事項
既存の.NET Frameworkアプリの.NET 5への移行に関する考慮事項やレガシーアプリのモダナイゼーションについて解説する連載。今回は、.NETアプリケーションのモダナイゼーションを進める前の確認事項を紹介します。