sql >> データベース >  >> RDS >> Sqlserver

オンプレミスとSaaS:データベース監視システムアーキテクチャ

    世の中には、優れたデータベースパフォーマンス監視システムが増えています。最近、従来のオンプレミスソリューションに、サービスとしてのソフトウェア(SaaS)ソリューションが加わりました。

    このブログでは、オンプレミスソリューションの一般的なアーキテクチャとSaaSソリューションのアーキテクチャを対比しています。もちろん、コンポーネントの名前と構造はベンダーごとに異なりますが、ここで説明する主要な概念は、何らかの形で表されます。

    オンプレミスとSaaSソリューションの違い

    全体として、各ソリューションの主要なコンポーネントのいくつかを次に示します。

    従来のオンプレミスソリューション

    • データ収集プロセス。
    • 短期的なパフォーマンス[診断]リポジトリ。
    • 長期的な分析/レポートリポジトリ。
    • Windowsまたはブラウザクライアント。
    • 監視インフラストラクチャに必要なフェイルオーバーインフラストラクチャ。

    SaaSソリューション

    • データ収集プロセス(オンプレミスターゲットの場合)。
    • ブラウザクライアント。
    • モバイルアプリ。
    • SaaSベンダーは、アプリケーションとバックエンドのデータストレージを管理します。

    さまざまなコンポーネントの名前は、ソリューションごとに異なることに注意してください。場合によっては、機能が複数のサービスまたはデータソースに分割されることがあります。

    オンプレミスソリューション

    データ収集プロセス

    データコレクターは通常、オンプレミスの監視対象エンドポイントからデータを収集するオンプレミスのエージェントレスサービスです。このプロセスは、データが収集される方法と時期を調整します。詳細の必要性と監視対象のワークロードへの影響のバランスをとるために、さまざまな頻度でデータを収集できる必要があります。収集頻度とアラートしきい値は、各メトリックで事前に構成されている必要があります。

    誰もが、標準のしきい値に準拠していない「ノイズの多い」インスタンスを持ちます。これにより、多くの誤検知が発生する可能性があります。これに対処するには、システムに、例外的な状況に対処するためのインスタンスレベルのルールを作成する機能が必要です。これにより、誤検知による「アラーム疲労」が回避されます。

    場合によっては、このサービスはアラートと通知を調整します。数百の監視対象インスタンスがある大規模な組織では、多数のデータコレクター間で「フェデレーション」することで負荷を分散する必要がある場合があります。フェデレーションは、分散システム全体でコレクションと構成を同期します。

    短期診断リポジトリ

    ここに詳細なデータが保存されます。これには、DMV、ログファイル、XEvents、およびその他のSQLServerデータソースからのデータが含まれます。監視対象のインスタンスに圧力をかける可能性のあるソースは避ける必要があります。たとえば、ほとんどのトレースはリアルタイムの監視には適していません。

    収集頻度は毎秒と同じくらい頻繁になる可能性があり、TSQLやプランなどのより大きなデータチャンクが収集されるため、このリポジトリは急速に大きくなる可能性があります。その結果、ほとんどのシステムは通常、履歴を1週間から1か月の間に制限します(これらの制限はSaaSソリューションには適用されません)。このリポジトリは本質的にトランザクション性が高いです。

    長期レポート/分析リポジトリ

    事前定義された時間の終わりに、この詳細データは集約され、高レベルの分析と傾向分析のためにレポートリポジトリに保存されます。保持される詳細の量は、このリポジトリの最終的なサイズと、ユーザーがリポジトリを分析できるようにすることを合理的に期待できる計算能力に大きな影響を与えます。これは、ソリューションごとに大きく異なる傾向があります。より詳細な分析をサポートするソリューションには、サポートアーキテクチャがあり、OLAPアーキテクチャを使用して多次元分析を容易にする場合があります。

    オンプレミスモニタリングソリューションのスケーリング

    より洗練されたソリューションは、スケールをサポートするための主要コンポーネントの分散アーキテクチャを促進するように設計されます。データ収集サービスには、サポートできる監視対象接続の数が多くなります。この制限に達したら、追加のデータコレクターを「フェデレーション」して、データ収集を調整し、データの保存を調整する必要があります。

    パフォーマンスデータリポジトリ自体は、1つのインスタンスを共有することも、スケールをサポートするために複数のインスタンスに分散させることもできます。必要なストレージは、監視対象の接続数と保持されるデータの量に正比例します。分析リポジトリの構造とアーキテクチャも総容量に影響します。

    ユーザーエクスペリエンス

    ほとんどのオンプレミスツールには、Windowsフロントエンドがあります。ローカルでホストされている展開に基づいたブラウザフロントエンドを備えているものもあります。これらへのリモートアクセスは複雑になる可能性があり、通常はVPNが必要です。モバイルアプリをサポートすることはめったにありません。

    高可用性

    ミッションクリティカルなワークロードを監視する監視ソフトウェアは、それ自体が回復力を備えている必要があります。監視構造をオフラインにする可能性のある災害状況に対処するための対策を講じる必要があります。これは、アーキテクチャとコストの観点からも考慮する必要があります。

    SaaSソリューション

    データ収集プロセス

    SaaSオファリングは主にホストされますが、多くの場合、オンプレミスワークロード用のオンプレミスデータコレクターを維持します。これは、パフォーマンスとセキュリティの制約に対処するのに役立ちます。このようにして、インスタンスレベルの接続はオンプレミスコレクターを介して行われ、オンプレミスコレクターは監視対象のデータベースパフォーマンスデータをクラウド入力サービスに中継します。すべてのデータは転送中に暗号化する必要があります。

    診断およびレポート/分析リポジトリ

    ここでの朗報は、SaaSベンダーがすべてのデータストレージを処理することです。診断リポジトリのインスタンスの立ち上げ、リポジトリのレポート、診断リポジトリのフラッシュ、またはオンプレミス展開に関連するその他の多くの問題について心配する必要はありません。

    ホスト型ソリューションは、バックエンドでさまざまなストレージ戦略を利用して、必要に応じてトランザクションアクティビティと分析アクティビティの組み合わせを容易にします。クラウドリソースを利用して、分析に必要な大量のデータと必要な処理を処理できます。たとえば、SpotlightCloudは1年間の詳細データを保持します。したがって、1年前に報告できるだけでなく、過去1年までのワークロードを再生することもできます。これは本当に強力な機能です。

    データベースパフォーマンス監視用のSaaSソリューションは、さまざまなバックエンドストレージ戦略を使用して、診断と監視のトランザクションの性質に合わせるだけでなく、長期的な分析に関連する高強度の数値計算を容易にすることができます。 SaaSベンダーは、かなりの規模の経済を利用して、個々の組織が自由に使えるはるかに強力なインフラストラクチャを使用できます。

    SaaSソリューションを拡張する方法

    SaaSソリューションのスケーリングは、ユーザーではなくベンダーの責任です。データベースパフォーマンス監視用のSaaSソリューションは、初日から拡張できるように構築する必要があり、その結果、拡張を処理する傾向があります。

    ユーザーエクスペリエンス

    SaaSアプリケーションはデフォルトでブラウザUxになり、多くのアプリケーションには包括的なモバイルアプリもあります。これにより、分散したリモートチームが容易になります。

    セキュリティとコンプライアンス

    ほとんどのSaaSソリューションは、AzureやAmazonなどの主要なクラウドインフラストラクチャの1つに基づいて構築されます。主要ベンダーの多くは、高度なセキュリティインフラストラクチャを導入しています。彼らは、クライアントのコンプライアンスニーズをサポートするために多額の投資を行っています。

    高可用性

    ここでも良いニュースは、これがベンダーの責任であるということです。フェイルオーバーと高可用性の観点からベンダーがどのようなプロビジョニングを行っているかをベンダーに確認することは価値があります。 SaaSアプリケーションは、非常に回復力のあるものになるように設計する必要があります。 SaaSアプリケーションを構成するさまざまなサービスは、通常、個別に復元できるように設計されています。データセンターが停止した場合に、アプリケーションが1つのデータセンターから別のデータセンターにフェイルオーバーするデータセンターの停止に備えて準備することもできます。


    1. 配列要素の並べ替え

    2. ID値を返すときのExecuteScalarとExecuteNonQuery

    3. データベースの制約とは何ですか?

    4. SSIS-データが失われる可能性があるため、値を変換できません