Azure API Management を使用して API を構成する利点
マイクロサービス アーキテクチャは、管理が困難な場合があります。 たとえば、セキュリティなどのクロスカット要件を一貫した方法で実装する個別のチームに依存しているとします。
オンライン ストアでは、自社の開発者チームがさまざまなホスト URL の製品詳細と注文詳細のマイクロサービスを構築しました。 また、注文詳細サービスは XML を使用して応答します。 あなたは、クライアント アプリ開発者の作業が容易になるように、すべての応答を確実に JSON 形式にしたいと考えています。
このユニットでは、API Management の機能について学習します。 これらの機能を使用して、さまざまなマイクロサービスを統合し、1 つの URL で一貫した動作を持つクライアント アプリケーションに提供できます。
マイクロサービス アーキテクチャの課題
アーキテクチャに対するマイクロサービスのアプローチでは、各部分が疎結合されているモジュール型のアプリケーションを作成します。 サービスを独立してデプロイすると、運用環境へのテストによって発生する可能性があるバグの影響が軽減されます。 このモジュール式のアプローチにより、安定したバージョンにより簡単にロールバックできます。 また、マイクロサービスごとに小規模で自律的な開発者チームを作成できます。 この分割は、最新のアジャイル プラクティスに適しています。
ただし、マイクロサービス アーキテクチャでは次のような課題が生じることもあります。
- クライアント アプリはマイクロサービスに結合されます。 マイクロサービスの場所または定義を変更する場合、クライアント アプリの再構成または更新が必要になることがあります。
- 各マイクロサービスは、異なるドメイン名または IP アドレスで示される場合があります。 このような提示は、一貫性のない印象をユーザーに与え、ブランドに悪影響を及ぼす可能性があります。
- すべてのマイクロサービスにわたって一貫した API ルールと標準を適用することは困難な場合があります。 たとえば、XML で応答することを好むチームや、JSON を好むチームがあります。
- マイクロサービスにセキュリティを正しく実装することは個々のチームに依存しています。 これらの要件を一元的に強制することは困難です。
API Management の利用方法
複数の API、関数、およびその他のサービスを API Management に追加することで、それらのコンポーネントを、クライアント アプリケーションへの 1 つのエントリ ポイントを提示する統合された製品へとまとめることができます。 API Management を使用した API の作成には、次のような利点があります。
- クライアント アプリは、個々のマイクロサービスを使用した基礎となる技術的な実装ではなく、ビジネス ロジックを表す API と結合されます。 クライアント アプリを再構成または更新することなく、サービスの場所と定義を変更することができます。
- API Management は仲介役として機能します。 場所に関係なく、適切なマイクロサービスに要求が転送され、ユーザーに応答が返されます。 マイクロサービスがホストされているさまざまな URI がユーザーに表示されることはありません。
- API Management ポリシーを使用して、製品のすべてのマイクロサービスに一貫したルールを適用できます。 たとえば、好みの形式に応じて、すべての XML 応答を JSON に変換できます。
- また、ポリシーを使用して、一貫したセキュリティ要件を適用することもできます。
API Management には便利なツールもあります。各マイクロサービスとその操作をテストして、要件に従って動作していることを確認できます。 また、デプロイされたサービスの動作とパフォーマンスを監視することもできます。
Azure API Management は、Azure Function App の新しい API としてのインポートや既存の API への追加をサポートします。 プロセスが自動的に Azure Function App 内にホスト キーを生成して、Azure API Management 内の名前付きの値に割り当てます。
次のユニットでは、前の演習で作成したオンライン ストア API に注文詳細マイクロサービスを追加します。 これを行うことで、注文詳細を製品詳細マイクロサービスと統合し、統合 API の一部として同じドメインに両方を示します。