План отказоустойчивости · ноябрь 2026

Сервисы,
которые не падают

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

Begetостаётся основным хостингом сайтов
1свой сервер для всех баз, потом — его реплика
03:00каждую ночь бэкап всех баз на наш сервер
≈15 миндо переключения сайтов на резерв, если ляжет Beget
Что защищаем

Все сервисы, а не только магазин

Сайты остаются на Beget. Меняется то, где живут их данные: базы с общего хостинга Beget переезжают на наш MySQL-сервер — туда, где уже лежат вход, вики и задачи портала.

Магазин

shop.4brewers.ru

Заказы клиентов, резервы, взаиморасчёты. Сайт — на Beget.

база CRM и магазина→ свой серверпишет 1С

Портал

portal.4brewers.ru

CRM, задачи, вики, отчёты, вход сотрудников для всех сервисов.

база CRM и магазинавход, вики, задачи и ещё 10 базуже на своём сервере

Контрол

control.4brewers.ru

Производство: варки, приёмка, санитария, проверки. Вход через портал.

база контрола→ свой серверпишет 1С

Сайт пивоварни

4brewers.ru

Публичный сайт 4BREWERS на Beget.

основной домен

Картинки

S3-облако Beget

Фото сортов и баннеры. Остаются в S3 Beget, копия — у нас, для резервной копии сайтов.

S3+ копия у нас

Аналитика ЕГАИС

раздел портала

Большая база ClickHouse на нашем сервере. Бэкап раз в месяц — чаще не нужно.

ClickHouseбэкап раз в месяц
2 ноября 2026

Что подвело в этот раз

Beget лёг целиком. Магазин подняли на своём сервере за день, но четыре вещи стоили нам почти всего этого дня. Каждая из них закрывается планом ниже.

DNS

Домен не переключить

DNS 4brewers.ru жил у того же Beget, и он же регистратор домена. Пока лежал хостинг, лежало и управление доменом — пришлось покупать новый.

Будет: регистратор и DNS 4brewers.ru — не у Beget. Как это работает — ниже.
Бэкапы

Свежего дампа нет

Ежедневные бэкапы хранились на самом Beget. У нас был только дамп от 28 июля — три месяца назад.

Будет: бэкап всех баз каждую ночь на наш сервер с отдельным диском.
Базы

Данные заперты на Beget

Базы магазина и контрола жили на общем хостинге. Лёг Beget — недоступны и данные, а схему новых таблиц собирали по логам.

Будет: все базы на нашем сервере, схема в git, потом — реплика.
1С

1С привязана к адресу

Обмен ходит в базу по адресу хостинга. Сменился сервер — обмен встаёт, пока его не перенастроят и не перевыгрузят данные.

Будет: 1С подключается к базам по имени и не зависит от того, где сайты.
Как будет устроено

Хостинг отдельно, данные у нас

Сайты работают на Beget, данные — на нашем сервере баз. Рядом — бэкапы на отдельном сервере, реплика баз и резервная копия сайтов. Нажмите на сценарии, чтобы увидеть, что происходит при сбое.

Схема прокручивается вбок на телефоне
Схема: DNS не у Beget ведёт клиентов на сайты Beget или на резервную копию; сайты и 1С работают с базами на своём сервере; бэкапы уходят на наш сервер; реплика баз — второй сервер Клиенты и сотрудники магазин · портал · контрол · сайт 1С обмен с базами по имени DNS 4brewers.ru — не у Beget BEGET · ОСНОВНОЙ ХОСТИНГ Сайты магазин · портал контрол · 4brewers.ru S3 картинки не отвечает РЕЗЕРВНАЯ КОПИЯ · СВОЙ VPS Сайты те же, из git ждут ждут работают Картинки копия S3 копия картинок СВОЙ СЕРВЕР БАЗ там, где уже вход, вики и задачи MySQL 8.4 все базы сервисов ClickHouse аналитика ЕГАИС не отвечает SQL по сети Наш сервер бэкапов внешний диск · каждую ночь · ЕГАИС раз в месяц Telegram только тревоги и отчёт о бэкапе Реплика баз · этап 4 второй сервер, правила обсудим второй сервер, правила обсудим после этапа 4 — становится основной

Если ляжет Beget

0

Beget перестал отвечать

Сайты на Beget недоступны. Базы на нашем сервере живы — данные целы.

1–2 мин

Тревога в Telegram

Проверка видит, что сайты не отвечают, и присылает сообщение с кнопкой «Переключить на резерв». Решает человек: короткий сбой Beget бывает дешевле переждать.

+1 мин

DNS переключён на резервную копию

Одна кнопка меняет адреса магазина, портала, контрола и сайта на резервный сервер. Резервная копия работает с тем же сервером баз — ни одна запись не теряется.

≈15 мин

Все на резервной копии

Ответ DNS живёт в памяти устройств до 5 минут, после этого все клиенты и сотрудники работают на резерве. 1С ничего не замечает: она ходит в базы, а не на Beget.

потом

Beget вернулся

Той же кнопкой возвращаем адреса на Beget. Догонять нечего: данные всё время были на нашем сервере баз.

Этапы 1 и 4

Базы — на свой сервер

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

замерить заранее

Сайты ходят в базу по сети

Сайты остаются на Beget, а база уезжает — каждый запрос пойдёт через интернет. Страница магазина делает десятки запросов к базе. Портал уже так работает с базами на нашем сервере, но для магазина замерим задержку от Beget до сервера баз до переезда.

проверено

База CRM и магазина готова

Все 125 таблиц на InnoDB, размер 184 МБ, в архиве около 14 МБ. Перенос занимает минуты, обмен с 1С останавливаем только на время переключения.

подготовить

MySQL 8.4 и первичные ключи

На Beget база работает на MySQL 5.7 — без поддержки с 2023 года. На своём сервере ставим 8.4. Для будущей реплики у 7 таблиц не хватает первичного ключа: в 8.4 добавим скрытый, 1С его не заметит.

1С

Подключение по имени

1С пишет в базу CRM и магазина и в базу контрола. После переезда она подключается к db.4brewers.ru, а не к адресу хостинга, — дальнейшие переезды сервера баз её не задевают.

Варианты реплики — выберем после переезда

ВариантПотеря данных при сбоеПереключениеСложность
Асинхронная реплика
основной сервер → копия у другого провайдера
последние секундывручную или скриптом, 5–15 миннизкая
Полусинхронная реплика
запись подтверждается, когда дошла до копии
почти нольвручную или скриптом, 5–15 миннизкая
Синхронный кластер на 3 узла
два сервера баз и маленький судья
нольавтоматически, секундысредняя
Этап 2

Бэкапы — на наш сервер

Каждую ночь все базы MySQL уходят на наш сервер с отдельным внешним диском. ЕГАИС — раз в месяц. Сами файлы в Telegram не отправляем: туда приходит только отчёт, что бэкап сделан и проверен, и тревоги, если что-то пошло не так.

4BREWERS · Резервбот
4 ноября
✅ Ночной бэкап готов
15 баз MySQL · 23,4 МБ · на внешнем диске сервера бэкапов
Пробное восстановление прошло за 1 мин 12 с03:02
⚠️ shop.4brewers.ru и portal.4brewers.ru не отвечают 2 минуты (Beget). Базы в порядке, резервная копия готова.
Переключить на резервПодождать
14:32
✅ Переключено на резервную копию. Через 5 минут все работают на ней.14:34
1 декабря
✅ Месячный бэкап аналитики ЕГАИС готов · 4,1 ГБ04:20
Макет, цифры условные

Как устроено

В 03:00 снимаем дамп всех баз MySQL, проверяем его пробным восстановлением и кладём на наш сервер с внешним диском. Храним 30 ночных копий и по одной на каждый месяц.

Восстановление на любую минуту

Кроме ночного дампа сервер бэкапов непрерывно забирает журнал изменений баз. Удалили что-то в 15:20 — можно вернуть базу на 15:19.

Не на том же сервере

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

ЕГАИС — раз в месяц

Аналитика ЕГАИС большая и меняется редко, поэтому её бэкап — раз в месяц, чаще не нужно.

Этап 3

DNS — не у Beget

DNS — это справочник, который по имени shop.4brewers.ru выдаёт браузеру адрес сервера. 2 ноября он лежал вместе с хостингом, и сайты нельзя было даже перенаправить на резервную копию. Поэтому регистратор домена и DNS переносим к компаниям, которые не хостят наши сайты.

Регистратор указывает на DNS-провайдера не у Beget; DNS обычно отдаёт адрес Beget, при сбое — адрес резервной копии NS-записи → DNS-провайдер РЕГИСТРАТОР где куплен 4brewers.ru · не Beget хранит только адреса DNS-серверов DNS-ПРОВАЙДЕР не Beget · серверы в нескольких ЦОД 4brewers.ru, shop, portal, control ВТОРОЙ DNS · ПО ЖЕЛАНИЮ зеркало зоны у другой компании решаем на этапе 3 Обычно адреса ведут на Beget ответ живёт в памяти до 5 минут Упал Beget кнопка в боте меняет адреса на резервную копию
шаг 1

Регистратор отдельно

4brewers.ru сейчас зарегистрирован у Beget — у того же, кто хостит сайты. Переносим домен к отдельному регистратору и храним у него только адреса DNS-серверов.

шаг 2

Один DNS или два

Резолвер у клиента сам выбирает, какой DNS спросить, и при отказе одного идёт к другому. Один крупный провайдер с серверами в нескольких ЦОД — проще. Два зеркала надёжнее, но их зоны должны совпадать всегда: записи правим в одном месте, на оба они раскладываются сами.

шаг 3

Короткая память

Время жизни записей — 5 минут. Поэтому переключение на резервную копию доходит до всех за 5 минут, а возврат на Beget — так же быстро.

Что упалоЧто происходитСервисы
BegetКнопкой в боте переключаем адреса на резервную копию. Данные целы — они на нашем сервере баз.≈15 минут
DNS-провайдерУ крупного провайдера серверы в нескольких ЦОД — полный отказ редкость. Со вторым DNS-зеркалом закрыт и этот случай.работают
РегистраторЗаписи живут у DNS-провайдера, домен продолжает работать. Недоступна только смена DNS-серверов — это нужно раз в несколько лет.работают
Сервер базДо этапа 4 — восстанавливаем из ночного бэкапа и журнала изменений. После — переключаемся на реплику.часы → минуты
Видно всё и сразу

Страница статусов

Одна страница, где видно, отвечают ли сервисы на Beget, жив ли сервер баз, готова ли резервная копия, когда был последний бэкап и когда 1С последний раз присылала данные.

Всё работает
обновлено 12 секунд назад

основнойBeget

сайты и картинки
Магазин200 · 84 мс Портал200 · 131 мс Контрол200 · 92 мс Сайт 4brewers.ru200 · 70 мс S3 картинкидоступно

работаетСервер баз

MySQL 8.4 · ClickHouse
MySQL15 баз · отвечает Запрос от Beget4 мс Подключение 1Сесть Диск31 % Репликаэтап 4

ждётРезервная копия

свой VPS
Код сайтовсовпадает с git Копия картинок12 мин назад Доступ к базаместь Учебное переключение12 октября Сертификатыдо 01.02.2027
Ночной бэкап03:02 · 23,4 МБ · проверен
Бэкап ЕГАИС1 ноября · 4,1 ГБ
1С · остаткиобновлены 2 мин назад
Макет. Цифры условные, структура — как будет на настоящей странице.
Порядок работ

Пять этапов

Сначала то, что защищает данные, потом то, что сокращает простой. Каждый этап полезен сам по себе.

1

Базы на свой сервер

2–4 дня
  • Замер задержки от Beget до сервера баз
  • MySQL 8.4 на нашем сервере, перенос баз магазина и контрола
  • Сайты на Beget переключаем на новый сервер баз
  • 1С подключается к базам по имени db.4brewers.ru
  • Схемы баз — в git
Данные у нас, на Beget — только сайты.
2

Бэкапы

1–2 дня
  • Ночной бэкап всех баз MySQL на наш сервер с внешним диском
  • Журнал изменений для восстановления на любую минуту
  • ЕГАИС — раз в месяц
  • Пробное восстановление, отчёт и тревоги в Telegram
Свежая копия всех данных каждую ночь.
3

DNS и регистратор

1–2 дня + перенос домена до недели
  • 4brewers.ru — к регистратору, который не хостит сайты
  • DNS всех доменов — не у Beget, время жизни записей 5 минут
  • Решаем: один DNS-провайдер или два зеркала
Домен можно перенаправить, даже если Beget лежит.
4

Реплика баз

после этапа 1, правила обсудим
  • Второй сервер баз у другого провайдера
  • Вариант реплики — из таблицы выше
  • Первичные ключи у 7 таблиц
  • Страница статусов
Падение сервера баз — минуты простоя, а не часы.
5

Резервная копия сайтов

2–3 дня
  • Те же сайты из git на своём VPS, с тем же сервером баз
  • Копия картинок из S3 Beget
  • Переключение адресов кнопкой в боте
  • Учебное переключение раз в квартал
Лёг Beget — через 15 минут всё работает на резерве.
Деньги

Сколько стоит

Beget остаётся, поэтому новых больших расходов почти нет: используем то, что уже есть, и докупаем только второй сервер баз на этапе 4. Цены проверены на сайтах провайдеров 3 ноября 2026, работы по переезду делаем своими силами.

ЧтоОткудаВ месяц
Хостинг сайтовBeget, как сейчасбез изменений
Сервер базнаш, где уже вход, вики и задачи. Проверим, хватит ли памяти после переезда баз с Begetуже есть
возможно, тариф побольше
Сервер бэкаповнаш, плюс внешний дискуже есть
диск — разово
Резервная копия сайтовнынешний VPS, на котором сейчас временный магазинуже оплачен
DNS не у BegetSelectel — бесплатно, Yandex Cloud — около 36 ₽ за зону плюс запросы0–110 ₽
Перенос регистратора4brewers.ru к другому регистраторупо цене продления домена
Второй сервер баз · этап 4у другого провайдера, 4 ядра / 8 ГБ: Hostland — 2 315 ₽, Selectel или VK Cloud — около 6 500 ₽ с НДС2 300–6 500 ₽
Итого сверху к нынешним расходам
этапы 1–3 и 5 — почти бесплатно, этап 4 — второй сервер баз
0–110 ₽ сейчас → 2,4–6,6 тыс ₽ с репликой

Почему не балансировщик

Облачные балансировщики Яндекса, Selectel и VK работают только внутри своего облака и между Beget и нашим сервером трафик не переключают. DDoS-Guard умеет, но от 48 000 ₽ в месяц. Переключение через DNS кнопкой в боте — бесплатно, около 15 минут.

Не подтверждено

У Hostland на сайте не указаны город ЦОД и НДС — уточнить звонком, если возьмём его под второй сервер баз. Цену продления у нового регистратора уточним при выборе.

Честно

Что важно понимать

Сайты ходят в базу по сети. Если задержка от Beget до сервера баз окажется большой, страницы магазина станут медленнее. Замеряем до переезда, а не после.
До реплики сервер баз — одна точка отказа. Если он ляжет до этапа 4, восстанавливаемся из ночного бэкапа и журнала изменений — это часы, а не минуты.
Бэкапы — не на сервере баз. Иначе при его поломке пропадут и данные, и копии. Внешний диск — на отдельной машине.
Картинки в S3 Beget. Лёг Beget — недоступны и они. Для резервной копии держим их копию у себя, иначе резерв откроется без фото.
Реплика копирует и ошибки. Удалили что-то по ошибке — удалится и в копии. Поэтому ночные бэкапы нужны всегда, даже с репликой.
Telegram с нынешнего VPS недоступен. Тревоги и кнопку переключения отправляем с сервера, откуда Telegram отвечает, или через прокси.
Чтобы начать

Что нужно решить