Ich bin neugierig, wie alle die Frage der folgenden Natur nähern:Wie wird die erforderliche Hardware zur Unterstützung der X-Anzahl von Benutzern/Transaktionen geschätzt?
'wir müssen Anwendung A erstellen (zB E-Commerce-Site). Es wird Technologie B (z. B. Java) verwenden. Es muss C (zB 200) Anzahl der gleichzeitigen Benutzer unterstützen. Welche Art von Hardware brauchen wir? '
Die Hardwarespezifikation würde die erforderliche CPU-Anzahl und möglicherweise die Speichermenge für eine grundlegende Antwort beinhalten.
Um mein Beispiel zu vereinfachen, werde ich mich bei meiner Frage an die Java-Technologie halten, aber ich hätte gerne eine technologieneutrale Beratung.
Ich verstehe, dass eine solche Frage viele zusätzliche Faktoren beinhaltet. ZB ein anderes Framework (Wicket vs Struts vs Spring vs reine EJB J2EE-Architektur), Anzahl der verteilten Tiers (ein Box-Setup oder 3-Tier-Setup).
Aber vorausgesetzt, dass eine Person keine vorherige Erfahrung mit der gegebenen Technologie haben kann (oder vielleicht keine Gelegenheit, einen Belastungstest durchzuführen, um herauszufinden, welche Hardware benötigt wird), und eine solche Frage kommt immer während einer anfänglichen Projektdiskussion auf (Und eine Antwort ist essentiell als Grundlage, um voranzukommen), wie gehen Sie vor, eine Antwort zu geben?
Ich hatte über die Lösung des Speicherbedarfsproblems nachgedacht, indem ich die Speichermenge schätzte, die jede Benutzersitzung beanspruchen könnte, aber es wird definitiv Framework/VM-Overhead geben.
Aber im Allgemeinen kann ich einfach keine vernünftige Lösung für diese Frage finden, die immer wieder auftaucht. Ein Belastungstest würde definitiv helfen, es zu lösen, aber dann ist das Projekt bereits fertig, und das ist eine Frage, auf die ein Client normalerweise antworten möchte, bevor er sich an ein Projekt bindet.
Hoffe, dass die Community über gute Ansätze dazu beraten kann.
Danke.