Das habe ich persönlich noch nie gemacht. Ich verstehe nicht, warum es so viele Standorte gibt. Wenn Sie Ihre Entwicklung auf einem Entwicklungsserver durchführen, warum müssen Sie dann jemals Ihren Produktionsstandort herunterfahren?
Darüber habe ich mich immer gewundert.
Was machen sie in dieser Zeit, was erfordert das?
web-development
maintenance
JD Isaacks
quelle
quelle
Antworten:
Ein großer Kicker für alles mit großem Umfang ist, dass, wenn man Datenbankschemata auf irgendeine Weise ändert, normalerweise einige große, unangenehme Wartungsskripte ausgeführt werden müssen.
Nun kann es ungefähr eine Sekunde dauern, bis diese mit Ihrem Entwicklungs-Dataset ausgeführt werden. Wenn Sie jedoch mit dem Messen von Daten in Terabyte und Petabyte beginnen, kann das Hinzufügen einer einzelnen Spalte zu einer Tabelle Stunden dauern.
Unabhängig davon, wie schnell und automatisiert die Bereitstellung ist, müssen Sie immer noch Probleme mit der Datenpflege bewältigen. Wenn Sie wirklich gut planen, können Sie während des Vorgangs einen schreibgeschützten Spiegel der Site erstellen, aber für viele Sites ist schreibgeschützt sinnlos und daher die Mühe nicht wert.
quelle
Es gibt eine Reihe von Gründen, warum Sie eine Site zur Wartung deaktivieren möchten. Um ein paar zu nennen:
Grundsätzlich gilt: Wenn Ihre Site nicht statisch ist, möchten Sie sie bei einer Logikaktualisierung deaktivieren, da andernfalls möglicherweise Fehler oder unerwartetes Verhalten bei Personen auftreten, die auf Ihre Site zugreifen.
Wenn Sie die Datei "web.config" (in ASP.NET) für Ihre Site berühren, sollten Sie sie zunächst für Wartungszwecke herunterfahren, da die Sitzung für Benutzer sonst inaktiv wird. Wenn sie sich also in der Mitte von etwas befänden, wäre es verloren.
quelle
Nun, das ist eine irgendwie abstrakte Frage - ich habe sogar Sites gesehen, die "Down for Maintenance" anstelle von HTTP 500 verwendeten.
Für Websites müssen Sie manchmal ein Upgrade durchführen. Wenn Sie beispielsweise die Datenbank ändern, soll während dieser Zeit kein anderer Benutzer die Datenbank berühren. Wenn die Datenbank offline ist, muss die Site ebenfalls ordnungsgemäß deaktiviert werden, da das Anzeigen von SqlException nicht sehr hilfreich ist. Ein weiterer Grund ist ein Hardwarefehler oder ein Systemfehler (z. B. ein Verlust von Ressourcen), der einen Neustart der Anwendung oder sogar des Systems erfordert.
Einmal war ich an der Modernisierung des Internetbankings in einer der größten Banken meines Landes beteiligt. Der gesamte Prozess des Upgrades von Websites, Middle Tier und Datenbanken dauerte drei Tage, in denen das System für Kunden offline war. Es beinhaltete auch eine vollständige Sicherung von allem, so dass im Falle eines Ausfalls das System auf die alte Version zurückgesetzt werden konnte.
quelle
Server benötigen Patches, um ausgeführt zu werden, und auf vielen Betriebssystemen müssen diese Patches neu gestartet werden. Das ist also eine Kategorie von Ausfallzeiten. Viele Unternehmen planen Neustarts von Patches für Zeiten mit geringer Nutzung, z. B. Sonntagmorgen. Wenn keine Patches vorhanden sind, werden die Server trotzdem zur regulären Wartungszeit neu gestartet (dies ist ein Kater seit den NT4-Tagen, als bestimmte Zähler alle anderthalb Wochen überliefen, sodass ein wöchentlicher Neustart andere Fehler verhinderte).
Ein Unternehmen, für das ich gearbeitet habe, hatte Ende der 90er Jahre eine E-Commerce-Website, die monatlich mehr als 1.000.000 US-Dollar Umsatz einbrachte. Jemand hat die falsche Steuertabelle auf den Produktionsdatenbankserver hochgestuft. Die Heilung bestand darin, den Datenbankserver aus der Sicherung wiederherzustellen und die Transaktionen seit der letzten Sicherung anzuwenden. Dies dauerte mehrere Stunden, in denen die Website nicht verfügbar war, um Bestellungen entgegenzunehmen. Da sich der Bestellteil und die statischen Verkaufsbroschüren auf derselben Site befanden und untrennbar miteinander verbunden waren, mussten beide fallen.
Bei einer Firma, für die ich gearbeitet habe, wurde falscher Text an der falschen Stelle eingefügt, und der CEO schaltete sich aus und ließ die Website "wegen Wartungsarbeiten" vom Netz nehmen, während Layout und Text "repariert" und das entsprechende Opfer beschuldigt und gefeuert wurden.
quelle
Während andere Antworten korrekt sind, können Sie mit den richtigen Architekturen Ausfallzeiten fast immer vermeiden. Aber das hat Kosten, und diese Kosten sind es möglicherweise nicht wert: Eine Stunde Ausfallzeit kostet Amazon oder die Infrastruktur hinter NASDAQ sehr viel. Paketüberfluss ? Höchstwahrscheinlich nicht so sehr.
So vermeiden Sie Ausfallzeiten:
In einer geschichteten Architektur ist es im Allgemeinen umso schwieriger, Ausfallzeiten zu vermeiden, je näher Sie der "Spitze" sind (Webserver vs. Datenbank).
quelle
Eine Site kann regelmäßige Ausfallzeiten planen, auch wenn bei jeder geplanten Ausfallzeit nichts zu tun ist. Auf diese Weise werden die Benutzer an die Vorstellung gewöhnt, dass die Website von Zeit zu Zeit nicht erreichbar ist, sodass sich die Benutzer nicht so sehr beschweren müssen , wenn die Arbeit erledigt werden muss.
quelle
Dies hat auch eine psychologische und marketingtechnische Seite. In einigen Fällen (ich wage es zu sagen, die meisten Fälle, aber ich bin nicht so kühn * g *) kann die Angabe "Zur Wartung ausgefallen" auch bedeuten "Der Server ist abgestürzt oder aus einem anderen Grund außer Betrieb".
Ich habe das ziemlich oft gesehen. Normalerweise möchten Sie als Entwickler eine "echte" Fehlermeldung erhalten, die so etwas wie "Whoops, wir haben gerade eine große Last und nicht alle Anfragen können bearbeitet werden" Sagen Sie dem Kunden, dass wir ein Problem haben. Sagen Sie ihm, dass wir eine geplante Wartung haben - das wird viel besser aussehen. "
"Wartungsbedürftig" ist daher oft nur eine andere Bezeichnung für "außer Betrieb".
quelle
Kein Server MUSS wegen Wartungsarbeiten ausfallen. Sie können dies für alles, egal in welchem Umfang, für Datenbankänderungen, Serverupdates usw. vermeiden.
Das Problem ist, dass die Erstellung und Wartung eines Systems ohne Ausfallzeiten in einem bestimmten Umfang sehr kostspielig ist. Sie benötigen Redundanz überall, Lastausgleich überall, Datenreplikation, Synchronisation. Das sind schwere Probleme.
Grundsätzlich müssen Sie in der Lage sein, den Netflix Chaos Monkey in prod freizugeben, um sicherzustellen, dass er auch dann funktioniert, wenn ein Teil Ihres Systems mit dem Update beschäftigt ist oder einfach nicht mehr synchron ist. Das ist sicherlich machbar. Es ist auch sehr teuer, erfordert viel Zeit und viele Experten, um an dem Problem zu arbeiten.
Das Aktivieren des Wartungsmodus für eine Site kann ein Mittelweg sein, den Sie wählen, da Sie nicht so viel investieren möchten, um zu vermeiden, dass Ihre Site gelegentlich für kurze Zeit heruntergefahren wird.
Wirtschaft.
Wenn Sie sich jedoch für eine Ausfallzeit entscheiden, wird Ihre Site nicht nur verfügbar, sondern auch zuverlässiger, da diese bewährten Methoden beiden Zwecken dienen.
quelle
Scheiße passiert. Es sei denn, Sie führen eine Art mathematische Überprüfung Ihrer Ergebnisse durch ( und Ihre Spezifikationen sind gültig ), egal wie vorsichtig Sie sind, es passiert Scheiße.
Es kann auch vorkommen, dass Sie Änderungen an einem wichtigen Teil Ihrer Infrastruktur vornehmen müssen (z. B. Änderungen an Ihren Datenbankstrukturen), die eine Ausfallzeit erfordern.
Wenn Sie kein kritisches System entwickeln (z. B. ein Fünf-Neun- oder Sechs-Neun- System), müssen Sie verantwortungsbewusst und kostengünstig ein System aufbauen, das Ausfallzeiten als Teil der Realität akzeptiert.
Darüber hinaus gehen Sie noch einen Schritt weiter, indem Sie Ausfallzeiten mit einem klaren Verständnis und Verfahren für eine effektive Wiederherstellung überschaubar und planbar (oder zumindest erkennbar) machen.
quelle
Einmal wurde unsere Website gehackt (alter IIS6- und Windows 2003-Server vor einigen Jahren). Während wir an der Restaurierung arbeiteten, haben wir für ein paar Stunden die "under maintenance" -Seite geöffnet.
quelle