ワークロードのパフォーマンス効率のトレードオフ Power Platform
オーバープロビジョニングなしでパフォーマンス目標を満たすワークロードは効率的です。 パフォーマンス効率を高めるための重要な戦略には、コードの最適化、設計パターン、容量計画の適切な使用が含まれます。 明確なパフォーマンス目標とテストがこの柱の基盤となります。
ワークロードの設計フェーズでは、 パフォーマンス効率の設計原則 と パフォーマンス効率の設計レビュー チェックリスト の推奨事項に基づく決定が、他の柱の目標と最適化の取り組みにどのように影響するかを考慮することが重要です。 特定の決定は、一部の柱には利益をもたらすかもしれませんが、他の柱にとってはトレードオフとなる場合があります。 この記事では、パフォーマンス効率のためにワークロード アーキテクチャと操作を設計するときにワークロード チームが遭遇する可能性のあるトレードオフの例を示します。
パフォーマンス効率と信頼性のトレードオフ
トレードオフ: レプリケーションの削減と密度の向上。 信頼性の基礎は、レプリケーションを使用して回復力を確保し、エラーや不具合の影響範囲を制限することです。
- ワークロード リソースを統合すると、余剰容量が活用され、効率が向上します。 ただし、同じ場所にあるコンポーネントまたはアプリケーション プラットフォームの障害による影響範囲は拡大します。
トレードオフ: 複雑さが増します。 信頼性はシンプルさを優先します。
データのパーティション分割とシャーディングは、大規模なデータセットや頻繁にアクセスされるデータセットでのパフォーマンスの問題を回避するのに役立ちます。 ただし、これらのパターンを実装すると、追加のリソース間で (最終的な) 一貫性を維持する必要があるため、複雑さが増します。
最適化されたアクセス パターンのためにデータを非正規化するとパフォーマンスが向上しますが、データの複数の表現を同期させる必要があるため、複雑さが生じます。
パフォーマンス中心のクラウド設計パターンでは、追加のコンポーネントの導入が必要になる場合があります。 これらのコンポーネントを使用すると、ワークロードの表面積が増加します。 全体のワークロードの信頼性を維持するには、コンポーネント自体の信頼性を高める必要があります。
トレードオフ: アクティブ環境でのテストと観察。 本番システムの不必要な使用を避けることは、信頼性を維持するための自己保存アプローチです。
アクティブな環境でのパフォーマンス テストでは、テスト アクションまたは構成によって誤動作が発生するリスクがあります。
ワークロードには、チームがアクティブな環境から学習できるようにするアプリケーション パフォーマンス監視 (APM) システムを組み込む必要があります。 APMツールは、アプリケーション コードまたはホスティング 環境 にインストールおよび構成されます。 ツールを不適切に使用したり、制限を超えたり、誤って構成したりすると、ツールの機能や メンテナンス が損なわれ、信頼性が損なわれる可能性があります。
パフォーマンス効率とセキュリティのトレードオフ
トレードオフ: セキュリティ制御の削減。 多層防御を実現するために、セキュリティ制御は複数のレイヤーにわたって、場合によっては冗長的に確立されます。
パフォーマンス最適化戦略の1つは、フローの遅延の原因となるコンポーネントまたはプロセスを削除またはバイパスすることです (特に、処理時間が正当化されない場合)。 ただし、この戦略はセキュリティを危険にさらす可能性があるため、徹底的なリスク分析を伴う必要があります。 以下の例を参照してください:
転送速度を向上させるために転送中または保存中の暗号化を削除すると、データの整合性または機密性が侵害される可能性があります。
処理時間を短縮するためにセキュリティ スキャンまたは検査ツールを削除または削減すると、それらのツールの機密性、整合性、または可用性が損なわれる可能性があります 保護。
ネットワーク遅延を改善するためにネットワーク フローからファイアウォール ルールを削除すると、望ましくない通信が発生する可能性があります。
データ処理を高速化するためにデータ検証を最小限に抑えると、特に入力が悪意のあるものである場合には、データの整合性が損なわれる可能性があります。
トレードオフ: ワークロードの表面積が増加します。 セキュリティでは、攻撃ベクトルを最小限に抑え、セキュリティ制御の管理を軽減するために、表面領域の縮小と封じ込めを優先します。
パフォーマンス中心のクラウド設計パターンでは、追加のコンポーネントの導入が必要になる場合があります。 これらのコンポーネントにより、ワークロードの表面積が増加します。 新しいコンポーネントは、システムでまだ使用されていない方法で保護する必要があり、コンプライアンスの範囲が拡大することがよくあります。 一般的に追加される以下のコンポーネントを検討してください。
各 タスク のパフォーマンス要件に基づいて、クラウド フローや ローコード プラグインなどのビジネス ロジックを処理する複数の異なる方法を導入します。
処理をバックグラウンド ジョブまたはクライアント コンピューティングにオフロードします。
トレードオフ: セグメンテーションを削除します。 セキュリティの柱では、強力なセグメンテーションを優先して、きめ細かいセキュリティ制御を可能にし、影響範囲を縮小します。
リソースを共有することは効率を向上させるアプローチです。 密度を高めて容量の使用を最適化します。 たとえば、複数のキャンバス アプリとクラウド フローで ローコード プラグインを再利用します。 密度が増加すると、次のようなセキュリティ上の懸念が生じる可能性があります。
最小権限の原則に違反し、アクセス ログ内の個々の監査証跡を不明瞭にする共有ワークロードID。
ネットワーク ルールなどの境界セキュリティ制御は、同じ場所にあるすべてのコンポーネントをカバーするように縮小され、個々のコンポーネントに必要以上のアクセス権が与えられます。
パフォーマンス効率と運用の卓越性のトレードオフ
トレードオフ: 観測性が低下します。 監視は、ワークロードに意味のあるアラートを提供し、インシデントを確実に成功させるために必要です 応答。
ログとメトリックの量を減らして、他のタスクではなくテレメトリの収集に費やされる処理時間を短縮すると、システム全体の可観測性が低下します。 結果として観測性が低下する例としては、次のようなものがあります。
- 意味のあるアラートを作成するために使用されるデータ ポイントを制限します。
- これにより、インシデント 応答 アクティビティのカバレッジにギャップが生じます。
- セキュリティやコンプライアンスに敏感なやり取りや境界における観測可能性を制限します。
パフォーマンス設計パターンを実装すると、ワークロードの複雑さが増すことがよくあります。 重要なフローにコンポーネントが追加されます。 ワークロード監視戦略とパフォーマンス監視には、これらのコンポーネントを含める必要があります。 フローが複数のコンポーネントまたはアプリケーション境界にまたがる場合、そのフローのパフォーマンスを監視する複雑さが増します。 フローのパフォーマンスは、相互接続されたすべてのコンポーネント間で相関させる必要があります。
トレードオフ: 操作の複雑さが増します。 複雑な 完了 では相互作用がより複雑になり、日常的な操作、アドホックな操作、緊急時の操作による悪影響が生じる可能性が高くなります。
密度を高めることでパフォーマンス効率を向上させると、運用タスクのリスクが高まります。 単一のプロセスでエラーが発生すると、影響範囲が大きくなる可能性があります。
パフォーマンス設計パターンが実装されると、バックアップ、キーのローテーション、回復戦略などの運用手順に影響します。 たとえば、チームが日常的なタスクがデータの一貫性に影響を与えないようにしようとすると、データのパーティショニングとシャーディングによって日常的なタスクが複雑になる可能性があります。
トレードオフ: 文化的なストレス。 運用上の卓越性は、非難の排除、尊重、継続的な改善の文化に根ざしています。
パフォーマンスの問題の根本原因分析を実行すると、修正が必要なプロセスまたは実装の欠陥が特定されます。 チームはこの演習を学習の機会とみなすべきです。 チームメンバーが問題の原因だと責められると、士気に影響が出る可能性があります。
日常的なプロセスやアドホックなプロセスは、ワークロードのパフォーマンスに影響を及ぼす可能性があります。 これらのアクティビティは、オフピーク時に実行することが望ましいとよく考えられます。 ただし、これらのタスクを担当または熟練したチーム メンバーにとって、オフピーク時間は不便であったり、通常の時間外であったりする可能性があります。
エクスペリエンス最適化によるパフォーマンス効率のトレードオフ
トレードオフ: ユーザー エンゲージメントの低下。 エクスペリエンス最適化の柱では、より魅力的なユーザー エクスペリエンスを優先します。
パフォーマンスを最適化すると、カスタマイズよりもプラットフォーム機能の使用が優先され、より魅力的なユーザー エクスペリエンスにつながるカスタム コンポーネントの優先順位が低くなります。
パフォーマンスを最適化すると、複雑さを最小限に抑えることに重点が置かれすぎて、カスタム コンポーネントや統合など、より魅力的なユーザー エクスペリエンスを実現する機能が優先されなくなる可能性があります。
ユーザー インターフェイスの開発では、反復と出荷サイクルが高速化されることが多く、パフォーマンスを継続的に向上させることが難しくなる可能性があります。