Osobiście nigdy tego nie zrobiłem. Nie rozumiem, dlaczego tak wiele witryn robi, jeśli programujesz na serwerze programistycznym, dlaczego miałbyś kiedykolwiek chcieć zamknąć witrynę produkcyjną?
Zawsze się nad tym zastanawiałem.
Co robią w tym czasie, co wymaga tego?
web-development
maintenance
JD Isaacks
źródło
źródło
Odpowiedzi:
Wielkim wyzwaniem dla wszystkiego, co ma dużą skalę, jest to, że jeśli ktoś w jakiś sposób zmienia schematy bazy danych, zwykle ma do uruchomienia kilka dużych, nieprzyjemnych skryptów konserwacyjnych.
Teraz może potrwać około sekundy, aby uruchomić się z zestawem danych programistycznych. Ale kiedy zaczniesz mierzyć dane w terabajtach i petabajtach, nawet dodanie pojedynczej kolumny do tabeli może potrwać kilka godzin.
Bez względu na to, jak szybkie i zautomatyzowane jest wdrożenie, nadal masz problemy z utrzymaniem danych. Jeśli planujesz naprawdę dobrze, możesz umieścić lustro witryny tylko do odczytu w trakcie procesu, ale dla wielu witryn tylko do odczytu jest bezcelowe i dlatego nie jest warte wysiłku.
źródło
Istnieje wiele powodów, dla których warto zlikwidować witrynę w celu konserwacji. By wymienić tylko kilka:
Zasadniczo, jeśli witryna nie jest statyczna, podczas aktualizacji logiki chcesz ją usunąć, w przeciwnym razie osoby odwiedzające Twoją witrynę mogą otrzymać błędy lub nieoczekiwane zachowanie.
Ponadto, jeśli będziesz dotykać pliku web.config (w ASP.NET) dla swojej witryny, powinieneś go najpierw usunąć w celu konserwacji, ponieważ spowoduje to przerwanie sesji dla użytkowników. Gdyby więc znajdowali się w środku czegoś, straciliby to.
źródło
Cóż, to jest jakoś abstrakcyjne pytanie - widziałem nawet strony, które używały „Down for Maintenance” zamiast HTTP 500.
W przypadku witryn internetowych czasami trzeba dokonać aktualizacji. Na przykład, jeśli zmieniasz bazę danych, nie chcesz, aby inny użytkownik dotknął bazy danych w tym czasie. Jeśli baza danych jest w trybie offline, witryna musi być również z wdziękiem wyłączona, ponieważ wyświetlanie wyjątku SqlException nie jest zbyt przyjemne. Innym powodem jest awaria sprzętu lub awaria systemu (np. Wyciek zasobów), która wymaga ponownego uruchomienia aplikacji lub systemu.
Kiedyś uczestniczyłem w aktualizacji systemu bankowości internetowej w jednym z największych banków w moim kraju. Cały proces aktualizacji stron internetowych, warstwy środkowej i baz danych trwał trzy dni, gdy system był niedostępny dla klientów. Obejmował także pełną kopię zapasową wszystkiego, więc w przypadku awarii system można przywrócić do starej wersji.
źródło
Serwery potrzebują łatek do uruchomienia, aw wielu systemach operacyjnych łatki te wymagają ponownego uruchomienia. To jedna z kategorii przestojów. Wiele firm planuje ponowne uruchomienie z łat w celu skrócenia czasu użytkowania, np. W niedzielę rano. Jeśli nie ma łatek, i tak uruchamiają ponownie serwery w regularnym czasie konserwacji (jest to kac z NT4 dni, gdy niektóre liczniki przepełniają się co półtora tygodnia, więc ponowne uruchamianie co tydzień zapobiegało innym błędom).
Jedna firma, w której pracowałem, miała witrynę e-commerce pod koniec lat 90., która przynosiła ponad 1 000 000 USD sprzedaży miesięcznie. Ktoś awansował niewłaściwą tabelę podatków na serwer produkcyjnej bazy danych. Lekarstwem było przywrócenie serwera db z kopii zapasowej i zastosowanie transakcji od ostatniej kopii zapasowej. Zajęło to kilka godzin, podczas których strona była niedostępna do przyjmowania zamówień. Ponieważ część zamówień i statyczne broszury sprzedażowe działały w tej samej witrynie i były nierozłączne, obie musiały zejść.
W jednej firmie, w której pracowałem, wstawiono niewłaściwy tekst do niewłaściwego miejsca, a dyrektor generalny został odrzucony i zlecono usunięcie witryny „z powodu konserwacji”, podczas gdy układ i tekst zostały „naprawione”, a odpowiednia ofiara obwiniona i zwolniona.
źródło
Podczas gdy inne odpowiedzi są poprawne, prawie zawsze można uniknąć przestojów przy użyciu odpowiednich architektur. Ale to ma swój koszt i ten koszt może nie być tego wart: godzina przestoju kosztuje amazona lub infrastrukturę stojącą za NASDAQ. Przepełnienie stosu ? Najprawdopodobniej nie tak bardzo.
Jak uniknąć przestojów:
Zasadniczo w architekturze warstwowej im bliżej „góry” jesteś, tym trudniej jest uniknąć przestojów, tak samo w przypadku stanu (serwer sieciowy vs baza danych).
źródło
Witryna może planować regularne przestoje, nawet jeśli nie ma nic do zrobienia za każdym razem, gdy nadchodzi zaplanowane przestoje. Robiąc tak, dostają użytkowników używane do idei, że strona będzie się przez pewien okres czasu tak często tak, że gdy praca ma potrzeby, aby to zrobić, użytkownicy nie będą narzekać tyle.
źródło
Jest w tym także aspekt psychologiczny i marketingowy. W niektórych przypadkach (ośmielę się powiedzieć, że większość przypadków, ale nie jestem aż tak odważny * g *), czytanie „Brak obsługi technicznej” może również oznaczać „Serwer się zawiesił lub przestał działać z jakiegokolwiek innego powodu”.
Widziałem to dość często. Zwykle jako programista potrzebujesz „prawdziwych” komunikatów o błędach, mówiących w stylu „Ups, obecnie mamy do czynienia z dużym obciążeniem i nie wszystkie żądania można obsłużyć”, ale niektórzy marketingowcy powiedzą „koleś, nie możesz powiedz klientowi, że mamy problem. Powiedz mu, że planujemy konserwację - będzie wyglądać znacznie lepiej ”.
Dlatego „Przerwa na konserwację” często jest po prostu innym terminem „nieczynny”.
źródło
Serwer nie wymaga konserwacji w celu konserwacji. Możesz tego uniknąć w przypadku dowolnej skali, zmiany bazy danych, aktualizacji serwera itp.
Problem polega na tym, że tworzenie i utrzymanie systemu 0 przestojów na określoną skalę jest bardzo kosztowne. Potrzebujesz wszędzie nadmiarowości, wszędzie równoważenia obciążenia, replikacji danych, synchronizacji. To są trudne problemy.
Zasadniczo musisz osiągnąć poziom możliwości wypuszczenia Netflix Chaos Monkey w prod, aby upewnić się, że działa, nawet jeśli część twojego systemu jest zajęta aktualizacją lub po prostu nie jest zsynchronizowana. Z pewnością jest to wykonalne. Jest również bardzo drogi, wymaga dużo czasu i wielu ekspertów do pracy nad problemem.
Przełączenie witryny w tryb konserwacji może być środkiem, który wybierzesz, ponieważ nie chcesz tak dużo inwestować, aby uniknąć od czasu do czasu awarii witryny.
Ekonomia.
Oczywiście, jeśli wybierzesz drogę 0down, Twoja strona zyska więcej niż tylko dostępność, zyska również niezawodność, ponieważ te najlepsze praktyki służą obu celom.
źródło
Cholera się zdarza. Chyba że wykonujesz jakąś formę matematycznej weryfikacji twoich rezultatów ( i twoje specyfikacje są ważne ), bez względu na to, jak ostrożny jesteś, zdarza się gówno.
Są też chwile, w których może być konieczne wprowadzenie zmian w kluczowym elemencie infrastruktury (powiedzmy zmiana w strukturach bazy danych), które wymagają przestoju.
O ile nie rozwijasz systemu krytycznego (powiedzmy systemu pięć-dziewięć lub sześć-dziewięć ), odpowiedzialną i opłacalną rzeczą jest zbudowanie systemu z akceptacją przestojów jako części rzeczywistości.
Co więcej, posuwasz się dalej za tą zasadą, czyniąc przestoje łatwymi do zarządzania i podlegającymi harmonogramowi (lub przynajmniej wykrywalnym) z jasnym zrozumieniem i procedurą skutecznego odzyskiwania.
źródło
Kiedyś nasza strona została zhakowana (stary serwer IIS6 i Windows 2003 kilka lat temu). pracując nad restauracją, umieściliśmy stronę „w trakcie konserwacji” na kilka godzin ....
źródło