Welche bewährten Methoden sollten für eine Website angewendet werden, die skaliert werden muss, um die Kapazität zu bewältigen? Dies ist besonders wichtig, da die Leute über die Cloud nachdenken, aber möglicherweise die Grundlagen verpassen.
Ich bin an allem interessiert, was Sie als Best Practice betrachten, von Aufgaben auf Entwicklungsebene über die Infrastruktur bis hin zum Management.
web-development
cloud-computing
paas
scalability
goodguys_activate
quelle
quelle
Antworten:
Design für Parallelität
Das heißt, während Sie programmieren, planen Sie, dass mehrere Threads ausgeführt werden. Planen Sie den freigegebenen Status (häufig nur die Datenbank). Planen Sie mehrere Prozesse. Planen Sie die physische Verteilung.
Auf diese Weise können Sie Ihr System auf mehrere Computer und auf mehrere Prozesse mit Lastenausgleich verteilen. Auf diese Weise können redundante Prozesse im Fehlerfall ausgeführt werden. Wenn Sie das System an Ort und Stelle ändern müssen, müssen Sie nicht alle Dienste abbrechen, um dies zu tun.
quelle
Einige Dinge, die Sie in Betracht ziehen könnten:
quelle
Share Nichts Architektur.
Aus diesem Grund sollten Sie nicht sofort zu einer Scale-out-Lösung wechseln, was Ihrer Meinung nach zuwiderläuft. Der Overhead außerhalb des Systems im Vergleich zu einem systeminternen Anruf sollte nicht unterschätzt werden. Beispielsweise dauert das Herstellen einer DB-Verbindung über eine Netzwerkschnittstelle viel länger als das Tätigen eines lokalen Anrufs. Geben Sie an, wie viel Zeit für Verwaltung, Leistung und Optimierung für die Skalierung erforderlich ist, im Vergleich zu den zusätzlichen Kosten für ein wirklich großes System.
Ungeachtet dessen ist es nach wie vor von großem Wert, Architekturen mit "Share nothing" zu nutzen, und Sie können Ihre Systeme zu gegebener Zeit schichten und skalieren.
quelle
Parallelisierung von Anfragen über mehrere Hostnamen
Teil des HTTP-Standards ist ein Abschnitt, der besagt, dass Webclients maximal 2 Sitzungen pro DNS-Host anfordern. Hier ist eine Lösung, bei der Sie und Alias Ihre www.domain.com und eine höhere Anzahl von gleichzeitigen Anfragen erhalten, wodurch Ihre Seite schneller geladen wird:
/programming/3653609/how-do-i-code-my-asp-net-page-to-parallelize-downloads-across-hostnames
Grundsätzlich müssen Sie Ihren ASP.NET-HTTP-Handler bearbeiten, um die Zielhosts zu ändern, an die Sie Clients senden. Dabei ist jeder Host ein CNAME für "www".
quelle
Sicheres, schnelles und zuverlässiges DNS
Ich fand einige Websites mit hoher Kapazität, die den DNS-Server des Registrars verwendeten und keine SLA für die Verfügbarkeit oder Leistung hatten. Darüber hinaus befanden sich die Server in Indien, und die Latenz erhöht die Wahrscheinlichkeit, dass ein DNS-Spoofer den Cache Ihres Kunden oder eines zwischengeschalteten Internetdienstanbieters vergiftet. Dies würde dazu führen, dass sogar Ihr SSL-geschützter Datenverkehr umgeleitet wird, ohne dass dies jemand weiß.
Die DNS-Geschwindigkeit wirkt sich auch auf die anfängliche Ladezeit Ihres Servers aus, bevor die Datensätze zwischengespeichert werden.
Ich verwende DynDNS oder Neustar für die meisten meiner Kunden, da sie über eine ziemlich solide DNS-Infrastruktur verfügen (obwohl dies teuer ist und ich zu diesen Unternehmen keine andere Verbindung habe).
quelle
Ich denke, dass der Schlüssel einfach sein wird:
Habe einfachen Code. Das bedeutet etwas, das du anschaust und verstehst. Wenn Sie Server erweitern und ändern, müssen Sie wissen, was gerade passiert. Möglicherweise müssen Sie auch Programmierer hinzufügen, die schnell verstehen müssen. Hooks und XML-Dateien, die nicht offensichtlichen Zufallscode aufrufen, sind sehr schlecht.
Dann können Sie die Probleme testen und finden.
Schauen Sie hier: http://blog.servint.net/2013/08/27/going-big-how-to-scale-a-website-part-1-infrastructure-that-scales/
Wir bei stellarbuild versuchen sicherzustellen, dass unsere Websites ohne Ausfallzeiten skaliert werden. Das bedeutet, dass Sie wissen müssen, was Ihr Code tut und wo er es tut. Selbst wenn Sie eine andere Maschine testen, kann die Skalierung nicht zu lange dauern. Die meisten Leute fangen erst an, wenn es leider fast zu spät ist. Sie können nur optimieren, wenn Sie das meiner Meinung nach tun.
quelle