GD Star Rating
loading...

Подскажите мне, или сделайте это за меня ЗА ДЕНЬГИ.

Имеем SaaS проект для корпоративных клиентов, MySQL, веб-морда на PHP, ngnix ну и предположим всего 5000 пользователей в сутки, но очень критична доступность 99%.
Есть собственная стойка с фермой виртуализации в дата-центре, арендованные VDS в другом дата-центре и серверная в офисе.
Надо сделать что-то, чтобы при падении канала или сервака в любом из вышеперечисленных мест сервисы поднимались на другом прозрачно для клиентов с минимальным временем простоя.
Сейчас это все крутится на VDS в Селектел и они надоелли – за последние 4 месяца общее время простоя уже больше суток, причем сука всегда в середине рабочего дня.

Tagged with →  

40 Responses to Подскажите мне, или сделайте это за меня ЗА ДЕНЬГИ.

  1. OhiBlank:

    После 99 я забыл добавить,9 а еще лучше бы 99,99%

  2. Relenko:

    :
    Привет. А что вы уже предпринимали для организации high-availability? Ведь точно были попытки, во что уперлись?
    Поставьте software/hardware балансировщик, за ним фронтенды/бекенды, в достаточном количестве, чтобы при падении N% из них, проект также хорошо работал, в пределах одного ДЦ все сделать довольно несложно.

  3. NarSm:

    Сделать, чтобы “автоматически поднимались” будет стоить примерно на два порядка дороже, чем чтобы “не падали”.

  4. OhiBlank:

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

  5. Avhnode:

    : вы там на чём в селектеле сидите? Они так-то неплохая компания. На простом вдс или в облаке?

  6. OhiBlank:

    : В пределах одного дата-центра не получается никак, потому что в Роиссе дата-центры, декларирующие Tier-III не соответствуют этим декларациям. Тот же Селектел декларирует Tier-3 Но вот конкретная цифра – 4 месяца работы и суммарный простой наших VDS чуть больше суток. Это как-то нихера не 99,982.
    У меня опыт работы с дата-центрами небольшой, но с 3 я работал, в одном у нас ферма виртуализации на собственном железе, в другом VDS в третьем раньше были VDS. отказы были везде и везде выше декларируемого уровня надежности.
    Мы сами сейчас сделали постоянную репликацию MySQL на сервер в офисе, + с него делаются LVM снапшоты раз в час и раз в сутки, поэтому разрушение и потеря данных нам не грозит. Но вот что делать с ДНС я не представляю. Т. е. допустим есть у нас этот сайт http://www.nechto.ru на VDS с IP 20.20.20.20. Рухнул центральный маршрутизатор дата-центра (так селектел объяснил предпоследний сбой, какого хера этот маршрутизатор один, я не знаю) в офисе стоит машина с актуальной базой MySQL, и ip 10.10.10.10 и если клиенты попадут на него все будет работать, но как сделать, чтобы клиенты попадали на него ничего не меняя, не чистя DNS-кэш браузера и т. п.? И что делать, чтобы, когда дата-центр оживет они вернулисмь обратно так же прозрачно? Я ХЗ, потому что web не занимаюсь.

  7. OhiBlank:

    : Да, и еще сами VDS не падают, более того, если бы все это было в офисе, у нас есть ферма виртуализации и в офисе с общим хранилищем, поэтому можно вживую смигрировать куда угодно, вопрос – что делать с DNS? Как правильно настроить репликацию MySQL чтобы при перескоке клиентов туда-сюда не нарушалась целостность и актуальность базы?

  8. OhiBlank:

    : Вроде в облаке, вообще этим отдел web-разработки занимается, а я сейчас инициативу проявляю 🙂

  9. NarSm:

    : С ДНС – есть бесплатный колхозный вариант.
    Ставите маленький ттл, поднимаете нс-сервера на на каждой площадке, и с каждой площадки отдаете только свои адреса.

    С mysql – на площадках слейвы, а мастер – где-то вообще в стороне.

  10. Avhnode:

    : и сидеть собирать всю эту реплику 🙂

  11. OhiBlank:

    : ок, предположим, у нас мастер крутится на ферме в офисе (парадоксально, но это пока надежней дата-центра) к нему идут три линка, два проводных и третий там Yota какая-нибудь. В одном дата-центре слейв и в другом дата-центре слейв. Отваливется один проводной канал, или оба. Слейвы могут переключится на другой ОйПи сами, или их руками надо перевести?

    С ДНС я как-то в общем понял, но может есть дорогой и НЕ колхозный вариант?

  12. GibPhone:

    : c DNS все довольно просто – выставь TTL на 60 секунд. 99.987% клиентов в течение максимум 120 секунд получат новый ip на запрос после того, как ты сменишь его. Не реалтайм, конечно, но от ДНС большего не добиться.

  13. NarSm:

    : Держать мастер в том месте, куда каналы не отваливаются.
    Если же отвалился канал в ДЦ у слейва – то и трафика на нем нет.

    Дорогой неколхозный вариант – покупаешь AS-ку, покупаешь блок адресов, покупаешь по стойке в двух дц, покупаешь по два линка на стойку или, желательно, вместо второго линка – прямой линк между ДЦ.
    Вкручиваешь туда хотя бы по одному 3750 (а желательно по два – линки в разные железки воткнуть).

    Поднимаешь BGP-сессии с операторами в каждом из линков, и анонсируешь себя через каждый линк. Адреса железа в своем ДЦ анонсируешь с бОльшим приоритетом, из соседнего – с меньшим.

    Поверх этого – натягиваются бесплатные колхозные решения.

    Подобная схема позволяла бизнесу конторки работать с потерей до 70% оборудования (блэкаут в ДЦ М1, например). Из тарифицируемых запросов пользователей за 3 года не было потеряно _ни_одного_.
    Ценник на вход – $30k примерно, не считая серверов.

  14. OhiBlank:

    : Мда, я такие циферки даже складывать не умею…
    В общем сегодня уменьшим TTL, а потом программеры готовы сделать репликацию master-master на нашу собственную ферму. Ну а там посмотрим.

  15. NarSm:

    : М-м-м-м… Аккуратнее с master-master. Там есть подводные грабли – подробностей не знаю, но наши ДБА отказались от такой схемы по каким-то осязаемым причинам.

  16. KNTCap:

    : в 90% случаев мастер-мастер не нужен, и тут явно не оставшиеся 10% а я вот жую кактус с мастер-мастер репликацией

  17. OhiBlank:

    : А ты можешь спросить, почему?

  18. OhiBlank:

    : Ну и что нажевалось?

  19. KNTCap:

    : Нормально все, но у меня не mysql

  20. NarSm:

    : Как поймаю. Я ту крупную интернет-компанию покинул с полгода назад 🙂

  21. NarSm:

    : Но почему-то мне кажется, что там есть веселости в первую очередь с автоинкрементными полями. Плюс, возможно, с вычислением автоинкрементного поля после отроллбэченых транзакций.

  22. Aynsuper:

    : есть проблемы с auto increment полями и т.д. вроде. и прочие мелочи

  23. Emaodin:

    А как вообще занесло к этим анальным клоунам? Шуклин же полный неадекват, судя по коментам на хабре.

  24. GibPhone:

    : кто такой Шуклин?

  25. Avhnode:

    : общался с ним на собеседовании. Очень адекватный мужик.

  26. GibPhone:

    : Написал неправду

  27. Vvvre:

    : пояснишь на примерах?

  28. NarSm:

    : Что именно?

    Обеспечить надежное функционирование веб-проекта об 5000 пользователей – это арендовать у фошшистов 6 серверов по 100 евро в месяц, и построить на них троекратно резервированную платформу.
    600 в месяц плюс, ну, скажем, 2к за инсталл.

    Обеспечить автоматическое переключение между 3 площадками с хер пойми какой надежностью, с негарантированым каналом между ними, работающими в active-stanby – с гарантией целостности данных и минимальным временем переключения – да еще в условиях, когда ты ничего не знаешь о клиенте (канал, наличие кэшей по дороге, соответствие подключения стандартам) – я не уверен, что это вообще реализуемо.

  29. GibPhone:

    : дык “это арендовать у фошшистов 6 серверов” не устраняет проблему единой точки отказа – ДЦ этих самых фошшистов и их каналы связи.

  30. NarSm:

    : У фошшистов есть три ДЦ – как раз по две машины в каждом. Конечно, это не устраняет точку отказа – но сильно снижает вероятность.

    Полноценная распределенная система – это дорого.

  31. OhiBlank:

    : Как раз недавно хетцнер прилег отдохнуть на несколько часов.

  32. V-nMilk:

    : вообще-то только два нс-сервера

  33. NarSm:

    : На моей памяти незапланированный простой хецнера за 2 года – около получаса.

  34. Emaodin:

    : на хабре amarao работает в селектел.

  35. Emaodin:

    : устраивался к нему на работу?

  36. OhiBlank:

    Stephan-V: Ну я ХЗ, у меня в хетцнере ничего нет, поэтому информацию не проверял.

  37. V-nMilk:

    : у меня есть один серверок, но я свой домен делегирую этим же самым сервером + 5 вторичных нэймсерверов в разных странах и если бы не массовый вой хомяков, то даже не узнал бы о проблеме

  38. Avhnode:

    : угу. Не взяли, правда. Но собеседоваться с ним мне понравилось.

  39. GibPhone:

    : дада, я нагуглил уже.

Добавить комментарий