Kiedy jest odpowiedni czas na wprowadzenie wysokiej dostępności strony internetowej?

16

Kiedy jest odpowiedni czas na wprowadzenie wysokiej dostępności strony internetowej?

Istnieje wiele artykułów na temat opcji wysokiej dostępności. Nie jest to jednak takie oczywiste, KIEDY jest właściwy czas na przejście z konfiguracji pojedynczego serwera na konfigurację wysokiej dostępności.

Proszę wziąć pod uwagę moją sytuację:
http://www.postjobfree.com to witryna internetowa 24/7 ze znacznym ruchem:
http://www.similarweb.com/website/postjobfree.com

Obecnie uruchamiam go na jednym serwerze: zarówno serwer sieci Web IIS 7.0, jak i SQL Server 2008 działają na tym samym sprzęcie.

Czasami (~ jeden raz w miesiącu) ~ 5 minut przestoju, zwykle spowodowanego ponownym uruchomieniem wymaganym przez niektóre aktualizacje systemu Windows Server. Zazwyczaj przestoje są planowane i zdarzają się w nocy. Nadal jest to nieprzyjemne, ponieważ Google Bot i niektórzy użytkownicy są nadal aktywni w nocy.

Obecne przychody ze strony wynoszą ~ 8 000 $ / miesiąc.

Rozważam przejście na konfigurację z dwoma serwerami (farma internetowa 2 serwerów WWW i klaster 2 serwerów SQL hostowanych na dwóch serwerach sprzętowych).

Plusy:
1) Wysoka dostępność (teoretycznie brak przestojów). Nawet jeśli jeden z serwerów ulegnie awarii - inny serwer przejmie kontrolę.
2) Brak utraty danych: bez klastra SQL w przypadku awarii sprzętu może dojść do utraty jednego dnia danych (wykonujemy codzienne kopie zapasowe).

Minusy:
1) Więcej wysiłku w celu skonfigurowania i utrzymania takiej konfiguracji.
2) Wyższy koszt hostingu. Zamiast ~ 600 $ miesięcznie byłoby to około 1200 $ / miesiąc.

Jakie byłoby twoje zalecenie?

Dennis Gorelik
źródło
Odpowiedź na moje pytanie może wpłynąć na rozwój. Na przykład mogę rozważyć podzielenie bazy danych na części i przechowywanie danych wymagających wysokiej niezawodności (dane wejściowe użytkownika) oddzielnie od danych wymagających wysokiej wydajności (obliczenia).
2
Cześć Dennis, to nie jest tak naprawdę zalecenie, więc utknąłem w komentarzu, ale koszty hostingu wydają się dość wysokie jak na pojedynczy serwer Windows? Zakładam, że jest to w pełni dedykowany serwer (nie VM), ale nawet wtedy powinieneś patrzeć na być może o połowę mniejszy koszt serwera o przyzwoitej specyfikacji z 8 GB pamięci RAM, dużą ilością miejsca na dysku itp. Może warto porozmawiać z Twoja firma hostingowa o lepszej cenie.
Ewan Leith,
6
Myślę, że wysoką dostępność należy zaplanować od pierwszego momentu koncepcji projektu.
Tom O'Connor,
Ewan, chcę, żeby moja strona działała szybko, więc mam Quad procesor z 8 GB pamięci i napędem SDD. Współczynnik kosztów licencji oprogramowania (Windows, SQL Server), SSL i wsparcia technicznego. Czy masz na to dobre rozwiązanie z niską ceną? Obecnie do hostowania używam Server Intellect (wspierany przez SoftLayer). Czy poleciłbyś coś lepszego?
Dennis Gorelik,
2
Aktualizacje systemu Windows nadchodzą z aktualizacjami zabezpieczeń. Jeśli nie załatam mojego serwera, może on być podatny na ataki. Jaką częstotliwość aktualizacji poleciłbyś dla serwera produkcyjnego Windows?
Dennis Gorelik,

Odpowiedzi:

15

Krótka odpowiedź: gdy przestój lub ryzyko z tego powodu kosztuje Cię więcej niż koszt wysokiej dostępności.

Jest to zasadniczo decyzja gospodarcza. Jako przykład. 8 000 USD miesięcznie oznacza, że ​​2-godzinna przerwa w pracy kosztuje 22 USD. Jeśli możesz skonfigurować system tak, abyś mógł przejść od zera do w pełni funkcjonalnej witryny w ciągu 2 godzin, wysoka dostępność zapewniłaby ci tylko 22 USD więcej.

Innymi słowy, możesz zaoszczędzić pieniądze, chyba że będziesz mieć 54 godziny nieuniknionego przestoju w danym miesiącu.

Slartibartfast
źródło
16
Trzeba też wziąć pod uwagę ryzyko utraty reputacji
gbn
7
Koszt godziny przestoju prawie na pewno zależeć będzie od momentu awarii serwera. Transakcje są bardzo mało prawdopodobne w ciągu 24 godzin. Bardziej normalne jest występowanie w ciągu kilku godzin szczytu, kiedy to strata byłaby znacznie większa.
John Gardeniers,
Slartibartfast, rozumiem twoją odpowiedź w ten sposób: upewnij się, że czas odzyskiwania po katastrofalnej awarii jest rozsądny (kilka godzin), utrata danych jest uzasadniona (kilka godzin) i pozwól mi mieć krótkie zaplanowane przestoje od czasu do czasu (przynajmniej na razie) . Oznaczałoby to codzienne tworzenie kopii zapasowych, przyrostowe częściowe kopie zapasowe oraz serwer dostępny do przywracania całej konfiguracji. Czy to brzmi dobrze?
Dennis Gorelik,
Odpowiedzi: gbn: uzgodniony; Szukałem prostego wyjaśnienia, ale reputacja może łatwo być znaczącym czynnikiem. John Gardeniers: Jasne, ale jeśli witryna jest używana tylko w niedziele między 11:00 a 13:00, zaplanowane przestoje nie są tak naprawdę problemem, podczas gdy cena 2 000 USD za nieplanowaną 2-godzinną przerwę w prawo to potem . W tym momencie musisz dowiedzieć się, jak prawdopodobne jest to, że przedwczesne wyłączenie (przy koszcie przychodu 2 000 USD) w porównaniu z pewną opłatą w wysokości 600 USD / miesiąc za serwer addnl. Wskazówka: chyba że przypadkowe awarie w okresie krytycznym zdarzają się częściej niż 4 / rok, nie warto.
Slartibartfast,
Dennis Gorelik: Zdecyduj o ryzyku, przed którym chcesz chronić (np. Utrata działalności podczas konserwacji, utrata serwera, utrata centrum danych, naruszenie konta / bezpieczeństwa / bazy danych) i działaj, aby się przed nimi chronić. W takim przypadku chronisz przed przestojami spowodowanymi konserwacją i nieprzewidzianą awarią (o ile wiem). To, co opisujesz, powinno załatwić sprawę, ale pamiętaj, że nie musisz być właścicielem serwera, dopóki masz pewność, że możesz go zdobyć i skonfigurować w okresie przywracania.
Slartibartfast,
2

Myślę, że większość użytkowników może sobie poradzić z zaplanowanym czasem przestoju. Weź pod uwagę, że eBay ma cotygodniowe aktualizacje w piątkowe wieczory, a stawki w takich przypadkach czasami nie działają. Bankowość internetowa mojego (dużego australijskiego) banku planuje przerwy w pracy co godzinę. Twitter cały czas przechodzi w tryb offline. Heroku / EC2 ostatnio nie działało.

Trzymałbym to w tej perspektywie, jeśli tak naprawdę rozmawiasz tylko 5 minut miesięcznie, wykonujesz całkiem dobrą robotę jako administrator systemu.

Chris
źródło
1

Wspomniałeś już o Google jako o indeksie, ale warto też wziąć pod uwagę wpływ, jaki opóźnienie / czas reakcji strony mogą mieć na SEO. To czarna skrzynka i wszystko to, tak trudne do oszacowania - choć za to, co jest warte, Matt Cutts uważa, że ​​jest to jedna sprawa . Bardziej martwi mnie reputacja, jak stwierdzili inni.


źródło
1

Pamiętaj, że HA, podobnie jak bezpieczeństwo, nie jest produktem, ale procesem.

Na przykład replikacja bazy danych doprowadzi cię tylko do momentu, w którym każde dublowanie bazy danych będzie mogło kontynuować samodzielnie, ale będziesz potrzebować strategii ponownej synchronizacji po wymianie uszkodzonych komponentów.

Rozważmy system zamówień jako przykład: klient składa zamówienie, a podczas przetwarzania fizyczny system, z którym rozmawiał, nie działa po zapisaniu informacji o zamówieniu w lokalnej kopii bazy danych. Zniecierpliwiony klient ponownie naciska „prześlij” i zostaje przekierowany na inny serwer, który przyjmuje zamówienie. Jeśli Twoje bazy danych ponownie zsynchronizują się, odtwarzając po prostu brakujące instrukcje INSERT po drugiej stronie, kolejność zostanie zduplikowana, co może nie być tym, czego chcesz.

Jak sugeruje @Slartibartfast, wszystko sprowadza się do decyzji ekonomicznej, jednak zalecam zaplanowanie tutaj również kilku lat w przyszłości. Jeśli zatem potrzebujesz odpowiedniej konfiguracji HA, to teraz byłby dobry moment na zarezerwowanie zasobów na prace przygotowawcze.

Simon Richter
źródło
1

Myśląc o tym, myślę, że zastanawiasz się nad utworzeniem strony „wieloryb”

Istnieje wiele sposobów, aby to zrobić, ale połączenie aws tras53 i s3 działa dobrze na moich małych stronach.

Skonfigurowałem domenę za pomocą kontroli poprawności, aby w przypadku awarii DNS wysyłał użytkowników do użytkowników na statycznej stronie HTML siedzącej w s3; Kosztuje prawie nic.

Z mojego doświadczenia wynika, że ​​twoja witryna mówi „przepraszam, że coś jest nie tak, ale pracujemy nad tym”, co stanowi dla użytkowników świat. Konto na Twitterze, na którym można nawet komunikować się z użytkownikami, jest jeszcze lepsze.

To długa droga do złagodzenia „utraty reputacji”, która może być najbardziej znaczącym skutkiem awarii.

zobacz: https://aws.amazon.com/blogs/aws/create-a-backup-website-using-route-53-dns-failover-and-s3-website-hosting/, aby uzyskać przewodnik na temat konfiguracji.

Awaria społecznościowa DynDns http://dyn.com/managed-dns/social-failover/ jest czymś prostym .

Możesz rzucić własne i wykonać kontrole zdrowia, a następnie skrypty zmian DNS, pod warunkiem, że twoje rekordy DNS mają niski TTL i masz jakiś sposób programowego manipulowania nimi.

Nath
źródło
Czy te kontrole kondycji muszą być wykonywane z tego samego serwera, na którym znajduje się DNS? Nie mogę sobie wyobrazić, jak dokonać warunkowej aktualizacji DNS.
Dennis Gorelik
@DennisGorelik nie jest konieczny, ale twoje rekordy DNS potrzebują krótkiego czasu TTL, a cokolwiek robi twoja kontrola zdrowia, musi być w stanie szybko zmienić rekordy. Zaktualizowałem odpowiedź o więcej informacji o tym, jak to osiągnąć.
Nath,
Krótkie TTL dla DNS w połączeniu z zależnością od kontroli poprawności może sprawić, że cały system będzie nieco mniej stabilny (może się przełączać, nawet jeśli główny serwer działa dobrze). Może to faktycznie pogorszyć sytuację użytkowników końcowych, a nie poprawić.
Dennis Gorelik
Krótkie TTL same w sobie nie powinny stanowić problemu z żadnym przyzwoitym dostawcą DNS, a jeśli ustawisz dość niski pasek w kontrolach zdrowia (tj. Przełączanie awaryjne, jeśli brak HTTP 200 przez 10 minut), to stabilność nie jest problemem. Alternatywnie możesz pominąć część sprawdzania stanu zdrowia i mieć ręczne przełączanie. Będzie to oznaczało dłuższy okres czasu, kiedy użytkownicy otrzymają „przekroczony limit czasu połączenia” i inne brzydkie błędy, ale nie ma szans na fałszywe alarmy.
Nath,
0

Czy zastanawiałeś się nad użyciem czegoś takiego jak EC2, który pozwoli Ci elastycznie skalować, a także negować twoje wady? Jest to ostatecznie decyzja ekonomiczna, czy warto skorzystać z EC2, czy nie, ale przynajmniej jest to opcja do rozważenia.

manku
źródło
-2

Aby uniknąć utraty danych, powinieneś sprawdzić konfiguracje RAID przed klastrami. Należy również skonfigurować adres IP trybu failover, który można przełączyć z jednego serwera na inny w przypadku awarii bez konieczności oczekiwania na propagację DNS.

Yqt
źródło
Skąd to pochodzi? co sprawia, że ​​myślisz, że plakat nie korzysta już z RAID?
Chopper3
Siekacz 3. Powiedziałem tylko, że Raid rozwiąże problem utraty danych.
yqt
2
W jaki sposób? jeśli jeden dysk
zginie