Erste Online-Tage: So töten Sie Ihre Website nicht

14

Angenommen, Sie haben diese schicke neue Website mit vielen Daten (wie großen Bildern) und möchten sie gleich online stellen. Wenn Sie in den ersten Tagen zu viel Werbung machen, wird die Website mit Anfragen überfordert sein.

Wie kann ich dieses Risiko mindern?

Ich habe darüber nachgedacht

  • Going Live nach und nach, wie SO und SF: "Private" Beta, Public Beta, Public
  • erlaube X Verbindungen Sitzungen gleichzeitig, damit der verbundene Benutzer immer noch gute Erfahrungen mit der Site hat und die anderen eine nette Entschuldigungsnachricht erhalten

Ich kann nicht

  • kaufe mehr Server, da die Seite nach den ersten Tagen viel weniger Verkehr haben wird :)
Mathieu
quelle
6
In meinen 15-jährigen Entwicklungs- und Veröffentlichungswebsites. Das ist, was jeder denkt ... setzen Sie eine neue Website auf das Wir und Boom! Kommt so gut wie nie vor. Normalerweise ist das Gegenteil der Fall, dass Sie weniger als erwartet erhalten. Aber heh, zu viele Benutzer ist ein gutes Problem zu haben;)
Chad Grant
1
Ich hatte dieses Problem, und es ist kein sehr angenehmer Ort zu sein ...
Gabriel Solomon

Antworten:

11
  1. Cache so viel du kannst. Dynamisch erstellte Seiten sollten zwischengespeichert werden, damit Benutzer eine statische Version erhalten. In Seitenkomponenten, die die Datenbank abfragen, sollte diese ebenfalls zwischengespeichert werden.
  2. Versuchen Sie, einen externen Dienst wie Amazon S3 für die Bereitstellung von Bildern und Multimedia-Inhalten zu verwenden (oder halten Sie ihn einsatzbereit, wenn die Website plötzlich stark frequentiert wird).

Nach und nach live zu gehen, kann für SOF und SF funktionieren, da sie aufgrund der Beliebtheit der Blogs von Jeff und Joel bereits über eine integrierte Publizität und Nachfrage verfügen. Wenn Sie nicht über eine nahezu garantierte Nutzerbasis wie diese verfügen, kann ein schrittweiser Live-Betrieb fatale Folgen haben.

Ich würde vermeiden, durch gleichzeitige Sitzungen zu beschränken, da es schwierig ist, das Ende einer Sitzung zu definieren, das durch Inaktivität verursacht wird. Wenn ein Benutzer für 15 Minuten verlässt und versucht, seine Seite neu zu laden, wird nur eine Fehlermeldung angezeigt - Sie haben gerade einen Benutzer verloren.

Yaakov Ellis
quelle
Ich meinte Sitzungen, aber meine Finger meinten Verbindungen. Korrigiert
Mathieu
5

Wie viel Planung steckte in Ihrem Datenmodell? Haben Sie ein Schema entworfen, mit dem Sie Ihr Abfragevolumen ohne teure Sortierungen, binäre Spalten oder komplexe Verknüpfungen erhöhen können? Haben Sie Ihr Datenbank-Backend optimiert (vorausgesetzt, Sie haben eines)?

Wie servieren Sie Ihre "großen Bilder"? Können Sie das auf einen separaten Webserver-Prozess aufteilen, sogar auf eine separate Domain?

Haben Sie Ihr System geladen und getestet? Tools wie ApacheBench und Siege sind von unschätzbarem Wert.

Ist deine gesamte Konfiguration in svn? Ist Ihre Bereitstellung automatisiert? Das freut Sie, wenn Sie unsere Anwendung auf den 2. Server ausrollen müssen.

Dave Cheney
quelle
Ich war mit den Belastungstests einverstanden. Wir hatten eine Website, auf der wir die Tests übersprungen haben, weil wir uns in einer engen Frist befanden. Und musste ein wenig basteln, während die Site live war, um die Serverauslastung auf einen verwaltbaren Zustand zu bringen (wir erreichten 200% bei CPU-Auslastung mit einem 4-CPU-dedizierten Server)
Gabriel Solomon
1

Ein Einladungssystem kann manchmal eine gute Möglichkeit sein, die Nutzerakzeptanz einer Website zu steuern. Verteilen Sie zu Beginn eine bestimmte Anzahl von Einladungen, damit die Website nicht überfordert wird. Geben Sie dann jedem Benutzer ein paar Einladungen, um sie an andere weiterzugeben, und erhöhen Sie langsam die Anzahl der Benutzer auf der Site. Auf diese Weise werden zu Beginn nicht zu viele Besucher auf die Website gelandet, und es kommt nicht zu einem massiven Verkehrsaufkommen.

Der Nachteil ist natürlich, dass Sie zu Beginn möglicherweise viele Benutzer abweisen, die keine Einladungen haben und später möglicherweise nicht zurückkehren. Wenn Sie nicht über eine wirklich gute Website verfügen, für deren Nutzung sich die Leute sehr freuen, könnte dies ein schlechter Schachzug sein. Es kommt wirklich auf die Seite an. Außerdem müsste tatsächlich etwas zusätzliche Entwicklungszeit aufgewendet werden, um ein Einladungssystem hinzuzufügen.

Rich Adams
quelle
1

Ich würde sicherstellen, dass Sie vor dem Start über eine robuste Überwachungsinfrastruktur verfügen. Sie benötigen Daten, auf denen Ihre Entscheidungen basieren. Dies bedeutet, dass Sie die CPU-Auslastung auf den Servern messen und sicherstellen, dass die Auslastung gleichmäßig auf die Boxen verteilt ist.

Wenn Sie wissen, wo sich das Problem befindet, verkürzt sich die Reaktionszeit erheblich. Ich habe zu viele Sites gestartet, die keinerlei Überwachung hatten, mit der Absicht, dass sie später eingerichtet werden ... nachdem das Feuer erloschen ist. Das ist zutiefst falsch.

Tim Howland
quelle
1

Möglicherweise möchten Sie Drittanbieter-Hosting für statische Inhalte wie Amazon S3 prüfen. Abhängig von Ihrer Anwendung kann es sinnvoll sein, einige (so sehr ich das Schlagwort hasse) mithilfe von Amazon EC2 zu trüben.

Adam Gibbins
quelle
0

Bei einigen Hosting-Anbietern können Sie private Server mit maximaler Kapazität für eine Weile testen und sich dann nach dem Testzeitraum auf eine angemessene Kapazität einigen.

DreamHost ist ein Beispiel:
http://www.dreamhost.com/hosting-vps.html

Torben Gundtofte-Bruun
quelle