通常、必要に応じて製品の問題を簡単に解決するために、VS.NET を運用サーバーにインストールします。
これは良い考えですか、それとも悪い考えですか?
通常、必要に応じて製品の問題を簡単に解決するために、VS.NET を運用サーバーにインストールします。
これは良い考えですか、それとも悪い考えですか?
デバッグと開発は、ミッション クリティカルではない「安全な」環境で行う必要があります。たとえば、開発とデバッグに使用する開発および/または QA サーバーが必要です。
EDIT: QAサーバーは本番サーバーをミラーリングする必要があります。これにより、本番環境と同じではないにしても、類似した環境でデバッグできるようになります。
それは、インストールがもたらすリスクを受け入れるかどうかに大きく依存します。
また、サーバー上で VS を使用せずに問題をデバッグする際に何が最も難しいかを自問する必要があります。
それは絶対に受け入れられません。まず、デバッグには windows/windbg のデバッグ ツールをいつでも使用できます。.NET のデバッグ (SOS / ソン オブ ストライク) もサポートしており、チート シートを使用してもそれほど難しくありません。Windbg は、インストールせずに USB スティックから実行できます。
2 つ目は、最も大きな原因です。新しいバージョンの VS をインストールすると、デバッガーがインタラクティブ モードに登録されます**。例外が発生すると、メッセージ ボックスが表示されます。インストール後にレジストリを手動で編集してデフォルトの動作に戻す必要がありますが、誰もそれを覚えていません。
やらないでください。問題を診断するためのより良い方法があります。
推奨される方法は、テスト/デバッグの目的で運用サーバーのミラーを用意することです。ミラーを最新の状態に保つには、すべてのアプリケーションの更新を両方のサーバーに同時にインストールし、運用データベースを夜間またはオンデマンドでミラーにバックアップ/復元する必要があります。
高負荷時にのみ発生するエラーなど、まだいくつかの欠点があります。この場合、エラーを追跡するために何らかのログが必要です。また、本番ミラーにインストールするサードパーティ コンポーネントの追加ライセンスを購入する必要がある場合もあります。
これは良い考えだとは思いません。本番環境で問題が発生した場合に、ログに戻って何が起こったのかを判断し、開発環境で修正してから、本番環境にプッシュする前にステージング/uat 環境でテストできるように、コードには十分なログが必要です。
私が働いている場所では、開発者はサーバー/ネットワークチームによって処理される実稼働環境へのアクセスを許可されていませんが、それは大規模なビジネスであるためです. 小規模な企業の場合、開発者はアクセスできますが、デバッグに使用する必要があるという意味ではありません。
両方。利点の 1 つは、問題の診断が容易になる場合があることです。欠点の 1 つは、インストールによって、動作中の Web アプリケーションが壊れることがあることです。私は必要な場合にのみそれを行います。
編集: 同僚が本番サーバーでライブ プロセスをデバッグすることを決定し、ブレークポイントでアプリを停止し、アプリを使用できないままにしておいたことに気付かずに就寝した場合、これに対する別の潜在的な欠点が発生します。はい、これは私に起こりました。
Visual Studio を必要とする運用サーバーで直接行うことは決してありません。コードベース、つまりバージョン管理に戻らない本番環境での変更はリスクが高すぎます。最終的には、本番サーバーでのみ変更したために解決したと思っていたバグを再導入することになります。時折、本番サーバー上のマークアップまたは XML ファイルを更新しますが、それは開発中に変更を加えて QA ボックスでテストした後で、実際のコードが含まれていない場合のみです。
もちろん、それは製品とデバッグ対象によって異なります。一般的に言えば、回避するように努めるべきですが、テスト サーバーでシナリオを正確に再現できない場合があり、実行中のプロセスにデバッガーをアタッチして問題をすばやく絞り込むと便利な場合があります。つまり、MMORPG サーバーを実行していて、特定の負荷条件下で発生する断続的なバグがある場合は、ログ ファイルやテスト サーバーでのシミュレートされた接続から、数週間または数か月を費やして把握するか、接続することができます。問題が実稼働サーバーでリアルタイムに発生している間にデバッガーを使用して、1 時間で解決します。
ただし、私はこれを例外的なケースとして扱う傾向があり、本番サーバーから可能な限り妥当なデバッグを行います。
Sasha Goldshtein のブログでのProduction Debuggingシリーズをご覧ください。彼は、Visual Studio を使用せずにデバッグするために何ができるかについて、いくつかの優れたウォークスルーとスクリーンキャストを持っています。
一般に、運用サーバーに Visual Studio をインストールすることは "ベスト プラクティス" ではないと考えられています。これによりセキュリティ上のリスクが生じる可能性がありますが、大きな懸念事項の 1 つはパフォーマンスです。Visual Studio は膨大な量のリソースを使用し、そこでデバッグを実行すると、運用アプリケーションのパフォーマンスに大きな影響を与える可能性があります。
使い方次第です。設計された重い作業のほとんどは、運用サーバーでは必要ありません。私は通常、xml や構成ファイルなどを編集するために運用サーバーに Notepad++ をインストールします。