Ist die Installation von VS.NET auf Ihrem Produktionsserver sicher und akzeptabel? [geschlossen]

8

Normalerweise installieren wir VS.NET auf unserem Produktionsserver, um Probleme mit unserem Produkt bei Bedarf einfach zu lösen.

Ist das eine gute oder schlechte Idee?

    
Jason 08.11.2008, 18:50
quelle

11 Antworten

9

Debugging und Entwicklung sollten in einer "sicheren" Umgebung erfolgen - etwas, das nicht unternehmenskritisch ist. Zum Beispiel sollten Sie einen Entwicklungs- und / oder QA-Server haben, den Sie für die Entwicklung und das Debugging verwenden.

BEARBEITEN: Ihr QA-Server sollte Ihren Produktionsserver spiegeln, so dass Sie in einer Umgebung debuggen können, die Ihrer Produktionsumgebung ähnelt, wenn nicht identisch ist.

    
Kyle Trauberman 08.11.2008, 18:56
quelle
4

Es hängt wirklich davon ab, ob Sie das Risiko akzeptieren, das die Installation mit sich bringt:

  • Hängen der Produktionsanwendungen, wenn jemand einen Debugger an die falsche Anwendung anhängt.
  • Es bricht mit dem, was als best practice angesehen wird. Mit welcher Übung werden Sie als nächstes brechen? Im schlimmsten Fall werden die Leute anfangen, Entwicklungsaufgaben in der Produktion zu übernehmen
  • Mögliche Probleme mit der Unterstützung, ich würde mit Microsoft überprüfen, ob IIS und SQL Server usw. in einer Produktionsumgebung unterstützt werden, in der VS installiert ist.

Sie sollten sich auch fragen, was am schwierigsten ist, wenn Sie das Problem ohne VS auf dem Server debuggen:

  • Kennen Sie Stack-Traces und wie Sie diese lesen können ?
  • Wissen Sie, wie Sie eine Debug-Modus-Version einer Anwendung im Vergleich zu einem Release / Free-Build ausführen?
  • Wussten Sie, dass Sie die SOS-Debugger-Erweiterung für .NET-Anwendungen mit der Windows-Debugging-Tools ?
  • Haben Sie darüber nachgedacht, Tools zu verwenden, um Serverabstürze automatisch zu erfassen und zu melden?
  • Was tun Sie, um Probleme in der Produktion zu vermeiden? Können Sie eine statische Analyse durchführen, Module auf der Basis von Problemen neu entwerfen oder eine Technik wie die testgetriebene Entwicklung verwenden?
Brian Lyttle 08.11.2008 19:32
quelle
4

Das ist definitiv nicht akzeptabel. Zum Debuggen können Sie immer die Debugging-Tools für windows / windbg verwenden. Unterstützt .NET Debugging (SOS / Sohn des Streiks), und mit einem Spickzettel ist nicht so schwer zu bedienen. Windbg kann von einem USB-Stick ohne Installation laufen.

Zweitens, und der Hauptgrund: Immer wenn Sie eine der neueren Versionen von VS installieren, registriert es seinen Debugger für den interaktiven Modus ** - Sie erhalten ein Meldungsfeld, wenn eine Ausnahme auftritt. Sie müssen die Registrierung manuell bearbeiten, um nach der Installation auf das Standardverhalten zurückzusetzen - und niemand erinnert sich daran.

Tu es nicht. Es gibt bessere Möglichkeiten, Probleme zu diagnostizieren.

    
Daniel 08.11.2008 19:36
quelle
3

Der empfohlene Weg besteht darin, einen Spiegel des Produktionsservers für Test- / Debugging-Zwecke zu haben. Um den Spiegelstrom beizubehalten, müssen Sie alle Anwendungsupdates gleichzeitig auf beiden Servern installieren und die Produktionsdatenbank bei Mirror Nightly oder bei Bedarf sichern / wiederherstellen.

Es gibt immer noch einige Nachteile wie Fehler, die nur unter schwerer Last auftreten. In diesem Fall benötigen Sie eine Art Protokollierung, um Fehler zu verfolgen. Außerdem müssen Sie möglicherweise eine zusätzliche Lizenz für Komponenten von Drittanbietern erwerben, um sie auf dem Produktionsspiegelserver zu installieren.

    
Sergey Kornilov 08.11.2008 19:05
quelle
2

Ich würde das nicht für eine gute Idee halten. Ihr Code sollte eine ausreichende Protokollierung aufweisen, damit Sie bei Problemen in der Produktion zurückgehen und feststellen können, was passiert ist, und das Problem in einer Entwicklungsumgebung beheben. Testen Sie es anschließend in einer Staging- / uat-Umgebung, bevor Sie es in die Produktion übertragen.

An der Stelle, an der ich arbeite, haben Entwickler keinen Zugriff auf eine Produktionsumgebung, die von den Server- / Netzwerkteams bearbeitet wird, aber das liegt daran, dass es sich um ein großes Unternehmen handelt. Für kleinere Firmen haben die Entwickler Zugriff, aber das bedeutet nicht, dass Sie sie zum Debuggen verwenden sollten.

    
Chris Aitchison 08.11.2008 19:22
quelle
1

Beide. Einer der Vorteile besteht darin, dass Diagnoseprobleme manchmal leichter werden können. Einer der Nachteile ist, dass die Installation manchmal eine funktionierende Webanwendung durchbrechen kann. Ich würde es nur tun, wenn ich müsste.

Bearbeiten: Ein weiterer potenzieller Nachteil besteht darin, dass ein Mitarbeiter entscheidet, einen Live-Prozess auf dem Produktionsserver zu debuggen, die App an einem Haltepunkt stoppt und dann ins Bett geht, ohne zu bemerken, dass er die App nicht verfügbar hat. Ja, das ist mir passiert.

    
MusiGenesis 08.11.2008 18:55
quelle
1

Ich würde niemals direkt auf dem Produktionsserver etwas tun, für das Visual Studio erforderlich wäre. Es ist zu riskant, Änderungen an der Produktion vorzunehmen, die nicht wieder in die Codebasis und damit in die Versionskontrolle zurückkehren. Schließlich werden Sie einen Fehler wieder einführen, von dem Sie dachten, Sie hätten ihn gelöst, weil Sie ihn nur auf dem Produktionsserver geändert haben. Gelegentlich werde ich Markup- oder XML-Dateien auf dem Produktionsserver aktualisieren, aber erst, nachdem ich die Änderung in der Entwicklung vorgenommen und in der QA-Box getestet habe, und nur dann, wenn kein tatsächlicher Code beteiligt ist.

    
tvanfosson 08.11.2008 19:07
quelle
1

Natürlich kommt es auf das Produkt und das, was Sie debuggen. Im Allgemeinen sollten Sie versuchen, dies zu vermeiden, aber es gibt Fälle, in denen Sie ein Szenario auf einem Testserver nicht genau duplizieren können, und es könnte nützlich sein, einen Debugger an einen laufenden Prozess anzuhängen, um ein Problem schnell einzugrenzen. Wenn Sie also einen MMORPG-Server betreiben und unter bestimmten Lastbedingungen ein zeitweiliger Fehler auftritt, können Sie Wochen oder Monate damit verbringen, es aus Protokolldateien und / oder simulierten Verbindungen auf einem Testserver herauszufinden, oder Sie können eine Verbindung herstellen ein Debugger, während das Problem in Echtzeit auf dem Produktionsserver auftritt, und es in einer Stunde herausfinden.

Ich würde dies jedoch eher als Ausnahmefall betrachten und so viel Debugging vom Produktionsserver durchführen, wie es möglich und sinnvoll ist.

    
Gerald 08.11.2008 19:15
quelle
1

Sehen Sie sich Sasha Goldshteins Produktions-Debugging in seinem Blog . Er hat einige großartige exemplarischen Vorgehensweisen und Screencasts darüber, was man tun kann, um ohne Visual Studio zu debuggen.

    
Igal Tabachnik 08.11.2008 19:31
quelle
0

Hängt davon ab, wie Sie es verwenden. Die meiste schwere Arbeit, für die sie entwickelt wurde, sollte auf einem Produktionsserver nicht notwendig sein. Normalerweise installiere ich Notepad ++ auf dem Produktionsserver für die Bearbeitung von XML, Konfigurationsdateien usw. Ich würde sagen, wenn Sie VS installieren möchten, gehen Sie dafür.

    
Shawn 08.11.2008 19:02
quelle
0

Es wird allgemein als "Best Practice" betrachtet, Visual Studio nicht auf Produktionsservern zu installieren. Dies kann Sicherheitsrisiken mit sich bringen - aber ein großes Problem wäre die Leistung. Visual Studio benötigt eine enorme Menge an Ressourcen, und das Ausführen von Debugging kann die Performance von Produktionsanwendungen erheblich beeinträchtigen.

    
fuzzbone 12.11.2008 23:23
quelle