Ich möchte auf Pauls jüngsten Blog "Sind Ihre Vorproduktionstests effektiv?" eingehen. Paul behandelte die CPU-Auslastung und die Codepfade, aber es gibt noch einen weiteren sehr wichtigen Aspekt vieler Anwendungen - die Netzwerkauslastung. Viele Anwendungen werden in einer LAN-Umgebung mit Latenzen im Sub-Millisekundenbereich und einer Bandbreite von mindestens 100 Mbit/s getestet. Anschließend werden sie in einem WAN mit kleineren Bandbreiten und viel höheren Latenzen eingesetzt. Das Ergebnis kann eine Katastrophe sein.
Beim Testen in einer LAN-Umgebung werden zwar die meisten netzwerkbezogenen Fehler aufgedeckt, aber es können auch Fehler im Zusammenhang mit verlorenen Paketen oder unerwarteter Segmentierung auftreten (TCP hält die Nachrichtengrenzen NICHT ein), die Sie in einer LAN-Umgebung weniger wahrscheinlich sehen werden. Es ist auch viel unwahrscheinlicher, dass Sie ein nicht optimales Design in einer schnellen LAN-Umgebung bemerken als in einer langsamen WAN-Umgebung. Es ist daher sehr wichtig, jede netzbasierte Anwendung unter den ungünstigsten zu erwartenden Netzbedingungen zu testen, d. h. mit geringer Bandbreite, hohen Latenzzeiten und - nicht zu vergessen - Paketverlustraten.
Es gibt zwei Möglichkeiten, dies zu tun.
Die erste besteht darin, die tatsächliche Umgebung zu nutzen. Setzen Sie den Server (oder Client) auf einen Host im Netz und sehen Sie, wie er funktioniert. Dies hat den Vorteil, dass Sie die tatsächliche Infrastruktur nutzen können. Der Nachteil ist, dass Sie keine Kontrolle über die Umgebung haben, was entscheidend ist, wenn Sie versuchen, ein Problem zu duplizieren oder eine Fehlerbehebung zu testen.
Die zweite Möglichkeit ist die Verwendung eines WAN-Simulators. Es gibt reine Hardware- und Software-Simulatoren, kommerzielle und Open-Source-Simulatoren (kostenlos). Der Vorteil ist, dass Sie die volle Kontrolle über Latenzzeiten, Paketausfallraten und andere Netzparameter haben und keine anderen Gruppen einbeziehen müssen (d. h. Ihre Software auf das System eines anderen Unternehmens aufspielen). Der Nachteil sind die Kosten und eine Lernkurve. Selbst wenn Sie freie Software verwenden, müssen Sie ein System (in der Regel eine Unix-Variante) bereitstellen, auf dem die Software läuft, und lernen, wie man sie benutzt. Vor einigen Jahren habe ich ein Tutorial über Dummynet geschrieben. Damals war es einer der wenigen frei verfügbaren Simulatoren. Jetzt gibt es viele mehr, googeln Sie einfach "wan simulator".
Aufgrund meiner Erfahrung bei der Untersuchung von Leistungs- und Anwendungsfehlern bin ich der Meinung, dass sich diese Art von Tests durch die Verringerung von Produktionsausfällen aufgrund von Fehlern und die Steigerung der Leistung sowohl der Anwendung als auch ihrer Benutzer mehr als bezahlt macht.