Коли настав час встановити високу доступність веб-сайту?


16

Коли настав час встановити високу доступність веб-сайту?

Існує безліч статей про параметри високої доступності. Це не так очевидно, проте КОЛИ саме час перейти з одного сервера на конфігурацію високої доступності.

Будь ласка, врахуйте мою ситуацію:
http://www.postjobfree.com - це цілодобовий веб-сайт із значним трафіком: http : //www.s подобниweb.com/website/
postjobfree.com

В даний час я запускаю його на одному сервері: і веб-сервер IIS 7.0, і SQL Server 2008 працюють на одній і тій же апаратній коробці.

Існує періодичний (~ один на місяць) ~ 5 хвилин простою, який зазвичай спричиняється перезавантаженням, необхідним деяким оновленням Windows Server. Зазвичай час простою планується і трапляється вночі. І все-таки це неприємно, адже Google Bot та деякі користувачі все ще активні вночі.

Поточний дохід веб-сайту становить близько $ 8 К / місяць.

Я розглядаю можливість переходу на конфігурацію з двома серверами (веб-ферма з 2 веб-серверів та кластер 2 серверів SQL, розміщених на двох апаратних серверах).

Плюси:
1) Висока доступність (теоретично немає простоїв). Навіть якщо один із серверів вийде з ладу - інший сервер взяв би на себе.
2) Немає втрати даних: без кластера SQL можна втратити до одного дня дані у разі відмови обладнання (ми робимо щоденне резервне копіювання).

Мінуси:
1) Більше зусиль для налаштування та підтримки такої конфігурації.
2) Більш висока вартість хостингу. Замість ~ 600 доларів на місяць це становило б близько 1200 доларів на місяць.

Яка б ваша рекомендація?


Відповідь на моє запитання може вплинути на розвиток. Наприклад, я можу розглянути розбиття бази даних по частинах і зберігати дані, які вимагають високої надійності (введення користувача) окремо від даних, що вимагають високої продуктивності (обчислення).

2
Привіт Деннісе, це насправді не рекомендація, тому я затримав це як коментар, але ваші витрати на хостинг здаються досить високими для одного сервера Windows? Я припускаю, що це повністю виділений сервер (не VM), але навіть тоді ви повинні дивитись, мабуть, на половину цієї вартості на гідний сервер специфікацій з 8 Гб оперативної пам’яті, хороший обсяг дискового простору тощо. Можливо, варто поговорити з ваша хостинг-компанія щодо отримання вищої ціни.
Еван Лейт

6
Я думаю, що високу доступність слід планувати з першого моменту задуму проекту.
Том О'Коннор

Еване, я хочу, щоб мій веб-сайт працював швидко, тому у мене є Quad-процесор з 8 ГБ пам'яті та накопичувач SDD. Фактор вартості ліцензій на програмне забезпечення (Windows, SQL Server), SSL та технічна підтримка. Чи є у вас гарне рішення з низькою ціною на це? В даний час я використовую серверний інтелект (підтримуваний SoftLayer) для хостингу. Ви б порекомендували щось краще?
Денніс Горелік

2
Оновлення Windows надходить із оновленнями безпеки. Якщо я не виправляю свій сервер, це може бути вразливим до атак. Яку частоту оновлення ви б рекомендували для виробничого сервера Windows?
Денніс Горелік

Відповіді:


15

Коротка відповідь: Коли час простою або ризик це коштує вам дорожче, ніж коштуватиме вам висока доступність.

Це принципово економічне рішення. Як приклад. $ 8k / місяць означає, що 2 години відключення обійдуться вам у 22 долари. Якщо ви зможете налаштувати вашу систему таким чином, що за 2 години ви можете перейти з нуля на повністю функціональний сайт, то висока доступність лише надбавить вам 22 долари функціональності.

Інакше кажучи, ви можете заощадити гроші, якщо / поки у вас не буде 54 години непередбачуваного простою в даному місяці.


16
Ви також повинні врахувати ризик для репутації
gbn

7
Вартість за годину простою майже напевно залежатиме від того, коли сервер вийде з ладу. Малоймовірно, що транзакції будуть рівномірно розподілені протягом 24 годин. Більш нормально це траплятися протягом кількох пікових годин, і тоді втрати будуть значно більшими.
John Gardeniers

Slartibartfast, я розумію вашу відповідь таким чином: переконайтесь, що час відновлення після катастрофічного збою є розумним (кілька годин), втрата даних є розумною (кілька годин), і дозвольте собі мати короткий плановий час простоїв (принаймні поки що) . Це означатиме наявність щоденних резервних копій, додаткових часткових резервних копій та сервера для відновлення всієї цієї конфігурації. Це правильно звучить?
Денніс Горелік

Відповіді: gbn: Погоджено; Я йшов за простим поясненням, але репутація легко може стати важливим фактором. John Gardeniers: Звичайно, але якщо сайт використовується лише у неділю між 11:00 та 13:00, то запланований час простою не є справді проблемою, тоді як ціна на $ 2 тис . За незапланований 2-годинний відключення є правильним . У цей момент ви повинні розібратися, наскільки ймовірним є несвоєчасне відключення (за ціною 2 000 доларів США) проти певної плати в розмірі 600 доларів на місяць для додаткового сервера. Підказка: якщо випадкові збої в критичний період трапляються частіше, ніж 4 / рік, це не варто.
Slartibartfast

Денніс Горелік: Вирішіть ризики, від яких ви хочете захиститись (наприклад, втрата бізнесу під час технічного обслуговування, втрата сервера, втрата центру обробки даних, облік облікового запису / безпеки / бази даних) та дійте для захисту від них. У цьому випадку ви захищаєтесь від простою через технічне обслуговування та непередбачувані збої (наскільки я можу сказати). Те, що ви описуєте, повинно зробити трюк, але майте на увазі, що вам не потрібно володіти сервером, якщо ви можете бути впевнені, що зможете придбати його та налаштувати його на період відновлення.
Slartibartfast

11

Ваші зацікавлені сторони / ділові люди (якими ви можете бути!) Повинні вирішити

Втрату доходу легко оцінити кількісно: на решту не можна відповісти тут вибачте ...


2

Я думаю, що більшість користувачів можуть впоратися з деяким запланованим простоєм. Вважайте, що на ebay є щотижневі оновлення у п’ятничну ніч, а ставки навколо цього часом не працюють. Інтернет-банкінг мого (головного австралійського) банку має заплановані відключення годин на тиждень. Twitter постійно працює в режимі офлайн. Нещодавно Heroku / EC2 минув.

Я б тримав це в такому ракурсі, якщо ви справді говорите лише 5 хвилин на місяць, ви робите досить гарну роботу як систематик.


1

Ви вже згадували Google як фактор з точки зору індексації, але, можливо, варто також врахувати вплив, який може мати затримка / чутливість сайту на SEO. Це чорна скринька і все таке, що її важко оцінити - хоча для того, що вона варта, Метт Кеттс вважає це однопроцентним . Мене більше турбує репутація, як заявили інші.


1

Майте на увазі, що HA, як і безпека, - це не продукт, а швидше процес.

Наприклад, реплікація бази даних приведе вас лише до того моменту, коли кожне дзеркало бази даних зможе продовжуватися самостійно, але вам також знадобиться стратегія ресинхронізації після заміни невдалих компонентів.

Розглянемо систему замовлення як приклад: замовник подає замовлення, а під час обробки фізична система, про яку він розмовляє, виходить з ладу після зберігання інформації про замовлення в локальній копії бази даних. Нетерпляче, замовник знову натискає "подати" і направляється на інший сервер, який приймає замовлення. Якщо ваші бази даних повторно синхронізуються шляхом простого відтворення відсутніх операторів INSERT з іншого боку, замовлення буде дублюватися, що може бути не тим, що ви хочете.

Як запропонував @Slartibartfast, все це зводиться до економічного рішення, проте я рекомендую вам також запланувати кілька років на майбутнє тут. Якщо ви очікуєте, що тоді потрібна відповідна установка ЗС, то зараз би вдалий час відкласти ресурси для підготовчої роботи.


1

Поки ви думаєте про це, я думаю, ви розглядаєте можливість створення сторінки "невдалого кита".

Існує маса способів зробити це, але комбо комбінація route53 і s3 добре працює на моїх маленьких сайтах.

Я налаштовую домен за допомогою перевірок здоров’я, щоб у разі відмов DNS відправляв користувачів користувачам на статичну сторінку HTML, що сидить у s3; Витрати поруч нічого.

На моєму досвіді, коли ваш сайт каже, що "шкода, що речі порушені, але ми працюємо над цим", це дуже важливо для користувачів. Обліковий запис Twitter, де ви навіть можете спілкуватися з користувачами, ще краще.

Це довгий час для пом’якшення "втрати репутації", яка може бути найбільш значним наслідком відключення.

Дивіться: https://aws.amazon.com/blogs/aws/create-a-backup-website-using-route-53-dns-failover-and-s3-website-hosting/ для посібника з його налаштування.

Соціальний відмову від DynDns http://dyn.com/managed-dns/social-failover/ - це щось подібне.

Ви можете скачувати свої власні та робити медичні перевірки, а потім скриптувати зміни DNS, за умови, що у ваших записах DNS низький TTL і у вас є спосіб їх програмного маніпулювання.


Чи повинні ці перевірки стану здоров'я виконуватись з того самого сервера, на якому розміщується DNS? Я не можу уявити, як зробити умовне оновлення DNS.
Денніс Горелік

@DennisGorelik не обов'язково, але для ваших записів DNS потрібен короткий TTL, і все, що робити, потрібно перевірити стан здоров'я, щоб мати змогу швидко змінювати записи. Оновили відповідь, отримавши більше інформації про те, як цього досягти.
Нат

Короткий TTL для DNS у поєднанні із залежністю від перевірки здоров’я може зробити загальну систему трохи менш стабільною (вона може перемикатися, навіть якщо основний сервер працює нормально). Це може фактично погіршити ситуацію для кінцевих користувачів, а не краще.
Денніс Горелік

Короткий TTL сам по собі не повинен бути проблемою для будь-якого пристойного постачальника DNS, і якщо ви встановите досить низьку планку ваших медичних перевірок (наприклад, відмову, якщо немає http 200s протягом 10 хвилин), то стабільність не є проблемою. Крім того, ви можете пропустити частину перевірки стану здоров'я та мати ручне перерізання. Це означатиме більш тривалий проміжок часу, коли ваші користувачі отримують "тайм-аут підключення" та інші некрасиві помилки, але немає шансів на помилкові позитиви.
Нат

0

Чи обдумали ви використовувати щось на кшталт EC2, що дозволить вам гнучко масштабувати, а також заперечувати мінуси? Зрештою, це економічне рішення, чи варто використовувати EC2, чи варто, але це, принаймні, варіант, який слід розглянути.


-2

Щоб уникнути втрати даних, слід вивчити конфігурації Raid перед кластерами. Вам також слід налаштувати IP-режим відмови, щоб ви могли переходити з одного сервера на інший у разі катастрофи, не чекаючи поширення DNS.


звідки це походить? чому ви вважаєте, що плакат уже не використовує RAID?
Chopper3

Подрібнювач3. Все, що я сказав, - це, що Рейд вирішить проблему втрати даних.
yqt

2
Як? якщо один диск загинув впевнено, а як бути, якщо його контролер пішов погано
Chopper3
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.