Максимальный uptime

freedz
На сайте с 16.04.2007
Offline
115
4306

Добрый день. Никак не могу разобраться что же нам нужно, поэтому решил прибегнуть к помощи всесильных гуру данного раздела :) Заранее спасибо всем, кто не останется безразличным :)

Задача: сделать максимально отказоустойчивую систему для сайта.

Трудности: сайты посещают клиенты и одновременно работают менеджеры, которые вносят изменения в БД и файлы.

Варианты:

1) Два сервера

а) Берём отказоустойчивые DNS, например, zoneedit.com или DNS хостинг Яндекса. Прописываем там IP наших серверов.

б) Делаем на каждом сервере свои DNS.

Правильно ли я понимаю, что и в пункте а) и в пункте б) при падении одного из серверов мы всё равно будем терять 50% клиентов, т.к у них будет открываться упавший сервер.

И смена NS домена(чтобы отключить неработающий сервер) происходит очень медленно(до 48 часов)+провайдеры кешируют до недели?

Можно ли как-то настроить онлайн синхронизацию между файлами и БД двух серверов?

2) Облака

Я правильно понимаю, что облака используются только если проекту нужна масштабируемость в ресурсах и к надёжности это не имеет отношение, т.к фактически всё находится на одном очень мощном сервере с котором могут случиться проблемы?

3) Кластерный хостинг

Вроде всё как нужно, один сайт сразу находится на нескольких серверах и всё дублируется автоматически. Какие подводные камни? Какие можете посоветовать?

P.S. Нагрузка небольшая, на сайт может хватить и среднего-хорошего VPS.

rustelekom
На сайте с 20.04.2005
Offline
522
#1

1) Все не так.

2) Нет, неправильно - облако или лучше сказать отказоустойчивый и масштабируемый в реальном масштабе кластер и он состоит далеко не из одного сервера.

3) Вот это и есть то, что вам нужно :)

SSD VPS, SSD хостинг и выделенные серверы в Германии или РФ, FTP хранилища, регистрация доменов и SSL сертификаты ( https://www.robovps.biz/ ) Контакты: Telegram ( https://t.me/rustelekom_bot )
galkahost
На сайте с 16.11.2010
Offline
44
#2

Если бюджет позволяет, то собрать свой кластер серверов. А подводные камни - админ с ровными руками и финансовая сторона вопроса.

Надёжный хостинг с персональным подходом (http://www.galkahost.com). VDS на 30% дешевле с промо кодом noadmin.
freedz
На сайте с 16.04.2007
Offline
115
#3
rustelekom:
1) Все не так.

:) Не могли бы Вы объяснить подробней.

Я правильно Вас понял, что есть возможность не терять 50% клиентов в каком-то из случаев при использовании основного и дублирующего серверов?

rustelekom:
3) Вот это и есть то, что вам нужно

Можете посоветовать какие-нибудь компании?

[Удален]
#4
Можете посоветовать какие-нибудь компании?

http://freehost.com.ua/cluster/index/

Когда-то пользовался их шаредом - работало стабильно. Сервера в их собственном ДЦ, в Киеве вроде

rustelekom
На сайте с 20.04.2005
Offline
522
#5

Не могли бы Вы объяснить подробней.

Я правильно Вас понял, что есть возможность не терять 50% клиентов в каком-то из случаев при использовании основного и дублирующего серверов?

Можно вообше никого не терять если у вас отказоустойчивый кластер.

Можете посоветовать какие-нибудь компании?

Любая компания которая возьмется сделать вам кластер. Для этого, помимо желания, необходиы технические возможности. Например, в hetzner.de есть возможность использовать так называемый faileover ip - на этот ай-пи адрес будут направлены А записи вашего домена. Если один сервер упадет, то резервный поднимется. И все это без смены ай-пи адреса. Поэтому и называется эта опция failover ip address. Ну а синхронизация данных между мастер и слейв сервером дело решаемое.

H
На сайте с 12.05.2007
Offline
133
#6
freedz:

Задача: сделать максимально отказоустойчивую систему для сайта.

Вы изначально не идеально точно понимаете суть вашей задачи.

На самом деле суть - минимизировать убытки от простоя сервиса _в сумме с расходами на поддержку сервиса_.

Вот теперь давайте думать:

Добротный опытный хостинг дает достаточно высокий аптайм.

к примеру у меня 99,87% с Нового Года.

Теперь считаем - сколько это, 0,13% в месяц.

А получается это 56 минут. Не все из которых приходятся на рабочее время, большАя часть простоев все таки служебные и происходят после 22:00.

Теперь вопрос - наносит ли 30 минут простоя в рабочее время вам убытка хотя бы в сотню долларов, чтобы воротить распределенные системы, и гоняться за максимальным аптаймом.

И какова будет скорость реакции ваших систем в случае аварии. Если ошибка возникла на 1 минуту, а ваша система перестраивается за... тоже минуту - толку в этом мало.

hvosting.ua (http://hvosting.ua/)
yesRuslik
На сайте с 08.02.2009
Offline
178
#7
freedz:
Добрый день. Никак не могу разобраться что же нам нужно, поэтому решил прибегнуть к помощи всесильных гуру данного раздела :) Заранее спасибо всем, кто не останется безразличным :)

Задача: сделать максимально отказоустойчивую систему для сайта.

Трудности: сайты посещают клиенты и одновременно работают менеджеры, которые вносят изменения в БД и файлы.

Варианты:
1) Два сервера
а) Берём отказоустойчивые DNS, например, zoneedit.com или DNS хостинг Яндекса. Прописываем там IP наших серверов.
б) Делаем на каждом сервере свои DNS.
Правильно ли я понимаю, что и в пункте а) и в пункте б) при падении одного из серверов мы всё равно будем терять 50% клиентов, т.к у них будет открываться упавший сервер.
И смена NS домена(чтобы отключить неработающий сервер) происходит очень медленно(до 48 часов)+провайдеры кешируют до недели?
Можно ли как-то настроить онлайн синхронизацию между файлами и БД двух серверов?

2) Облака
Я правильно понимаю, что облака используются только если проекту нужна масштабируемость в ресурсах и к надёжности это не имеет отношение, т.к фактически всё находится на одном очень мощном сервере с котором могут случиться проблемы?

3) Кластерный хостинг
Вроде всё как нужно, один сайт сразу находится на нескольких серверах и всё дублируется автоматически. Какие подводные камни? Какие можете посоветовать?

P.S. Нагрузка небольшая, на сайт может хватить и среднего-хорошего VPS.

Начать решать задачу надо с ее постановки IMHO. Если простой проекта обходится дороже в финансовом или имиджевом плане, тогда стоит заняться отказоутойчивостью.

Есть разные уровни, на которых можно организовать отказоустойчивость. Самые популярные - это failover на базе DNS(когда внешний сервис определяет доступность сервера и меняет А-запись в случае падения на резервный),а также HA-кластер, когда переключение происходит не с помощью DNS, а через специализированное ПО типа heartbeat или peacemaker(мы переключали мигрирующий образ виртуальной машины на живую аппаратную ноду). Еще одним вариантом может быть простое проксирование запросов на уровне http-протокола на разные бекенды, но тут сложно говорить о HA(high availability), если упадет фронтенд.

Если данных много или сложная настройка каждой ноды - выход виртуальная мигрирующая машина. В других случаях можно делать комбинации. Если данных мало и изменения не очень частые - то в целом DNS+failover вполне справится с задачей.

Аренда выделенных серверов (http://yeshost.ru/) от 69 евро VDS сервер (http://yeshost.ru/vds) от 7.95евро Виртуальный хостинг (http://yeshost.ru/virtualhosting)от 0.95 евро Windows VDS хостинг скоро (http://yeshost.ru/vds)
Romka_Kharkov
На сайте с 08.04.2009
Offline
485
#8

ТС, я предлагал вот такую схему определенное время назад (/ru/forum/comment/7069575), она конечно не на 100% отвечает вашей задаче, но это яркий пример построения "фермы" в одном физическом месте, для получения отказоустойчивости. Именно данное предложение служит для раздачи картинок или любого другого статического контента который можно легко кешировать. В приведенной схеме отказоустойчивость на столько велика, что при проводимых тестах, я выключал ВСЕ бекенд сервера содержащие контент и не получил при этом ни одного сообщения от клиентов, что пропали картинки с сайтов, так как они все находились в кеше (нуу скажем так почти все.... самые актуальные и недавно запрошенные). Адаптация такой фермы под веб сайт так же возможна, возможно даже распределение запросов в базу данных и сами веб сервера. Для плотного внедрения продукта на такую платформу понадобиться несколько трикшотов из серии "синхронизации PHP сессий" да и вообще синхронизации всего того, что несет в себе одна нода на все остальные, но это отдельные участки кода которые могут быть выражены в виде доп. функций или даже модулей к движкам и.т.п

Есть определенный опыт работы с такими "фермами", если есть какие-то конкретные вопросы буду рад подсказать.

Есть около 15.000 ipv4 !!! (http://onyx.net.ua/price.php#ipv4) Качественный хостинг с 2005 года - лучшее клиентам! (http://onyx.net.ua/)
freedz
На сайте с 16.04.2007
Offline
115
#9
hvosting:
На самом деле суть - минимизировать убытки от простоя сервиса _в сумме с расходами на поддержку сервиса_.

Совершенно правильно, спасибо за исправление, это я и имел ввиду.

Понимание сколько готовы платить и за что есть. Поскольку по большому счёту я ничего не понимаю в администрирование серверов, то хотелось бы понять вообще какие есть варианты решения данной проблемы, с какими издержками и как подготовиться к их решению. Ведь задача типовая.

Реальность не 99,87%, а 99,5%(и это неплохо) на более длинном промежутке времени.

Давайте прикинем убытки от простоя:

1) Клиенты не звонят в первый раз.

2) Клиенты, которые были в процессе выбора и общения с менеджерами, отваливаются.(не могут ничего посмотреть на сайте)

3) Менеджеры не могут пользоваться сайтом и вести клиентов.(не могут без сайта подбирать "товар").

4) Головная боль и суета вокруг серверов и тд

5) Выпад страниц из индекса и потеря SEO трафика.

Вероятность, что поисковый бот зайдет на сайт в момент его недоступности

99,5%. Если на главную страницу бот заходит раз в неделю, а в году 52 недели, то

99,5^52 = 0,77, следовательно с вероятностью 23% за год у Вас должна вылететь главная страница из индекса, что приведет минимум к недельной потери SEO трафика.

Вообще статистика довольна обманчива, всё зависит не только от uptime, но и характере простоя. Например, если каждые 30 мин в рабочее время сервер отрубается на 18 секунд(uptime 99,5%), то звонков от клиентов будет в 3 раза меньше, т.к реальные клиенты сначала довольно долго ищут на сайте сами и если сайт не доступен 18 секунд, то они просто с него уходят.

---------- Добавлено 14.06.2012 в 20:51 ----------

yesRuslik, огромное спасибо, что прямо по полочкам описали варианты.

yesRuslik:
Самые популярные - это failover на базе DNS(когда внешний сервис определяет доступность сервера и меняет А-запись в случае падения на резервный)

Как быстро в данном случае для клиентов будет доступен сайт?

Можете посоветовать какие-нибудь сервисы?

yesRuslik:
HA-кластер, когда переключение происходит не с помощью DNS, а через специализированное ПО типа heartbeat или peacemaker(мы переключали мигрирующий образ виртуальной машины на живую аппаратную ноду)

То есть нужно в одном ДЦ имееть 2 сервера, которые будут на одном IP?

yesRuslik:
простое проксирование запросов на уровне http-протокола на разные бекенды, но тут сложно говорить о HA(high availability), если упадет фронтенд.

Сейчас именно так всё и устроено. Фронтенд иногда падает. Первая мысль была сделать 2 фронтенда, чтобы минимально менять всю систему.

H
На сайте с 12.05.2007
Offline
133
#10
freedz:
Реальность не 99,87%, а 99,5%(и это неплохо) на более длинном промежутке времени.

Разумеется "у кого как". У меня за прошлый год 99,74%. За 10 лет как то не считал :).

freedz:

Давайте прикинем убытки от простоя:

Это ваша забота - экспертно посчитать убытки от простоя в $$/час.

А уже из этой цифры вытекает сколько денег есть резон тратить на систему, и сколько девяток после запятой стоит достигать. 99,9 или 99,999

freedz:

1) Клиенты не звонят в первый раз.

Пичаль.... А где тут убытки?

freedz:

2) Клиенты, которые были в процессе выбора и общения с менеджерами, отваливаются.(не могут ничего посмотреть на сайте)

$$ ?

freedz:

3) Менеджеры не могут пользоваться сайтом и вести клиентов.(не могут без сайта подбирать "товар").

Могут выйти на связь с клиентом и через 30 минут. 90% клиентов к этому отнесется нормально.

freedz:

4) Головная боль и суета вокруг серверов и тд

Это вроде как не ваша головная боль, а провайдера?

freedz:

5) Выпад страниц из индекса и потеря SEO трафика.

Во первых при первой недоступности страницы не выпадают, иначе при каждом ребуте сервиса

был бы риск обвалить клиентов.

Бот обязательно придет чуть позже, даже если не получит корректного "revisit after".

freedz:

Сейчас именно так всё и устроено. Фронтенд иногда падает. Первая мысль была сделать 2 фронтенда, чтобы минимально менять всю систему.

Первая мысль - протестировать железо и попытаться понять по какой причине падает фронтенд, и сколько времени нужно на рестарт сервиса.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий