{"id":14268,"url":"\/distributions\/14268\/click?bit=1&hash=1e3309842e8b07895e75261917827295839cd5d4d57d48f0ca524f3f535a7946","title":"\u0420\u0430\u0437\u0440\u0435\u0448\u0430\u0442\u044c \u0441\u043e\u0442\u0440\u0443\u0434\u043d\u0438\u043a\u0430\u043c \u0438\u0433\u0440\u0430\u0442\u044c \u043d\u0430 \u0440\u0430\u0431\u043e\u0447\u0435\u043c \u043c\u0435\u0441\u0442\u0435 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e?","buttonText":"\u0423\u0437\u043d\u0430\u0442\u044c","imageUuid":"f71e1caf-7964-5525-98be-104bb436cb54"}

Простой план сохранения онлайн-бизнеса при пожаре в дата-центре

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

Если инфошум о замедлении Твиттера вчера не позволил вам увидеть важное, то сообщаю. Вчера, 10 марта, произошел пожар в дата-центре провайдера OVH в Страсбурге, который входит в топ-5 крупнейших провайдеров. Полностью уничтожен центр обмена данными SBG2 (выгорел полностью) и на 30% ЦОД SBG1 (выгорело несколько боксов). Остальные 2 здания, находившиеся рядом, залиты водой.

Восстановление затопленных ЦОДов займет не менее 2 недель. В дата-центре размещались крупные европейские компании, часть из них уже заявили, что данные потеряны безвозвратно.

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

Я руковожу небольшим Digital-агентством, обслуживаем малый и средний бизнес, часто общаемся с начинающими предпринимателями. И постоянно сталкиваемся с анти-кейсами резервного копирования, возражениями вроде «дорого», «сложно», «позже настроим», «пока не надо» и «само рассосется».

Хочу развеять сомнения руководителей, показать, что все просто, дешево и само не рассосется. Поэтому сегодня дам простой план резервного копирования, в большинстве случаев даже программировать не придется. Инструкция подойдет небольшим и средним компаниям, не имеющим собственной IT-инфраструктуры. Итак, начнем.

1. Купите отдельные IP-адреса для боевых проектов

Если у вас облако, сервер или VPS, то один IP-адрес уже в комплекте. Если у вас виртуальный хостинг, то докупите к нему выделенный IP-адрес. В нештатных ситуациях это поможет быстро сменить хостинг или перенести проект на другой сервер. Обойдется примерно в 99 руб. в месяц.

2. Используйте NS-сервера регистратора домена

Хостинг провайдеры предлагают перенести обслуживание DNS на свой хостинг. Не соглашайтесь, оставьте домен на NS-серверах регистратора домена, а в А-записи домена пропишите IP-адрес хостинга. Так вы сможете быстрее сменить хостинг в случае аварии. При изменении А-записи обновления распространятся в течение 1 часа, и ваш проект через час уже будет доступен на новом хостинге. Но если же вы будете менять NS-сервера, то обновления могу занять до 72 часов. Обычно регистраторы предоставляют услугу бесплатно, но RU-center хочет денег.

3. Включите локальное резервное копирование на хостинге

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

4. Храните 1-3 локальных бэкапа

Как правило, дисковое пространство на хостинге стоит не дешево, даже если вы покупаете отдельный диск для бэкапов. Поэтому нецелесообразно хранить там большие объёмы информации. Храните только самые последнии копии за предыдущие дни.

5. Настройте резервное копирование на отдельный сервер

Я рекомендую использовать облака как основное хранилище резервных копий, но вы можете использовать и простой сервер или дешевый хостинг от другого провайдера. Главное, чтобы сервера этого другого провайдера располагались не в том же дата-центре, что и основной сайт. Но облака гораздо дешевле, хранение одного террабайта там стоит обычно около 500 руб. в месяц. Можно использовать Google Cloud, AWS или Yandex Cloud — для них есть готовые инструменты резервного копирования, поэтому их легко настроить. Обычно рекомендуют хранить 7 копий за неделю, 4 копии за месяц, 12 копий за год — так и сделайте.

6. Поверяйте бэкапы раз в неделю

Минимум раз в неделю проверяйте факт создания бэкапов и их размер. Любой сбой может нарушить вашу схему резервного копирования: смена пароля, обновление ПО, переполнение диска, нехватка денег на счету. Потратьте всего 2-3 минуты в неделю — этого хватит, чтобы предотвратить неприятности.

7. Восстанавливайте бэкапы раз в месяц

Хотя бы изредка восстанавливайте свои резервные копии на тестовом сервере. Идеально делать это раз в месяц, минимум хотя бы раз в 3 месяца. Одно дело иметь резервные копии, и совсем другое — иметь реально работающие резервные копии. Вы должны быть уверены, что в нужный момент бэкапы вам реально помогут и у вас есть возможность их быстро развернуть. Удобно и дешево можно разворачивать облачные сервера на reg.ru или hetzner.cloud, потратите максимум 100-200 руб за раз. Процедура займет всего 1-2 часа, но убережет от проблем в будущем.

Вот и все, просто соблюдайте хотя бы эти простые правила.

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

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

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

0
53 комментария
Написать комментарий...
Павел Шабалин

1. Очень спорно покупать себе отдельный IP, нет это полезно для того чтобы не залетать в какой-нибудь спам лист по IP из за соседа, но при пожаре никак не поможет.

2. Если у вас виртуальный хостинг, то вам придется переносить DNS на хостера, потому что хостер периодически меняет сервера и IP на ваши проекты меняются, если у вас DNS у регистратора, то при таких плановых работах сайты будут отваливаться. С другой стороны это древний миф, что DNS разносятся за 72 часа, на моей практике коренные DNS доменов с RU обновляются в течении часа/двух. Ну и DNS сервера это тоже сервера и у регистратора они или у хостера, они падают, по этому есть понятия primary DNS и secondary DNS

3. По сути бесполезное занятие эти ваши локальные бэкапы, заставьте разработчиков использовать git в конце концов.

4.А лучше 10 или 20, кто знает что может понадобится, чем больше тем лучше же =))

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

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

7. Ну а тут да, я раз в месяц/два обновляю дев сервер как раз из бэкапа и проект актуализирую по данным и сразу работоспособность бэкапов проверяется

Ответить
Развернуть ветку
Igor Filippov
 3. По сути бесполезное занятие эти ваши локальные бэкапы, заставьте разработчиков использовать git в конце концов.

Санитар! Тут парень базу в гите сохраняет!

Ответить
Развернуть ветку
Павел Шабалин

Зачем вам локальная БД в бэкапе? Ну вот чисто интересно какой кейс использования её если в gzip 1Гб база будет весить пару мегабайт. Бэкап обычно нужен когда уже все, диски рассыпались, сервер сгорел (вместе с ДЦ) и так далее. В противном случае я не вижу смысла откатывать БД, для этого есть такие штуки как миграции и да они хранятся в гите.

Ответить
Развернуть ветку
Алексей Ковалёв
Автор

Тут примитивная инструкция, для тех кто не в курсе про гит, кто обновляет движок на живую и не делает резервных копий перед релизом новых фич. Таких товарищей миллион, но их нет на хабре и виси, они не коментят посты. И с ними приходится работать. 
Кейсы очевидные:
- сеошник обновил движок, все рухнуло
- контент-менеджер массово изменил свойства товаров - сломал базу
- из 1С выгрузили обновления прайсов - потерли структуру каталога
- установили непонятный модуль, он снес несколько таблиц в БД
И естественно нет никаких гитов и миграций БД, единственный вариант - откатить базу. 

Ответить
Развернуть ветку
Павел Шабалин

А как вы будете решать вопрос если в это время вам накидали уже 10-20 заказов, форм, лидов? Просто сотрете накатив бэкап? Может проще и дешевле не давать работать на живую? =))

Ответить
Развернуть ветку
Алексей Ковалёв
Автор

Типичный заказ у нас - SEO-продвижение сайта, никаких доступов от сайта нет, разработкой у заказчика занимается какой-то свой подрядчик "на опыте". При этом у того "опытного" ни гита нет, ни бэкапов не настроено, как только что случается - он в кусты. Мы следующие, кому будет задан вопрос про восстановление сайта.
И вот только с этого момента заказчик начинает проникаться идее гита и бэкапов :) Тогда уже ценность и цена нашей работы возрастает в разы, настраиваем все как должно быть. 

Так что вот про 20 лидов вообще не смешно, в среднем именно так и происходит раз в год с каким нибудь заказчиком. В этом случае делаем бекап того что осталось и откатываем сайт. И потом уже на тестовом сервере восстанавливаем сломанный сайт, достаем оттуда все что возможно и даем заказчику какой-то инструмент для просмотра этих данных. Если их можно смержить с продакшеном, то мержим.

Ответить
Развернуть ветку
Павел Шабалин

Ну так и популяризируйте же эту методику, пишите правильные инструкции, а не выделенный IP и 4 локальных бэкапа, я как бы к этому и писал, просто сама суть бэкапов это не откатить что то, а восстановить в рабочее состояние. И создать бэкап перед началом работы, а потом его восстановить сильно затратнее, чем с гитом. Ну разве что не считая БД, но тут на живую просто ничего делать не стоит (ставить плагины, тестировать интеграции с 1С и так далее) и об этом не слова в статье.

Ответить
Развернуть ветку
Алексей Ковалёв
Автор
 Ну так и популяризируйте же эту методику

Это не среди заказчиков надо продвигать, а среди специалистов. Заказчик не поймет и вообще ничего не сделает.

выделенный IP

По всем вопросам вашу позицию понял и с ней согласен, но вот про IP никак не пойму. Чем вам IP так насолил? Очевидно же, что A-запись быстрее сменить, чем NS-сервера. Или вы этим никогда не занимались? В случае аварии недоступность сайта составит 30-60 минут, этого хватит, чтобы развернуть проект на другом сервере, и распространить обновление А-записи. Чтобы смена записи происходила быстрее нужно выставить TTL как можно ниже. При этом все остальные сервисы домена продолжат работать в штатном режиме. Если же NS-сервера менять при переезде на другой сервер, то распространение обновлений DNS займет в разы больше времени. И это зависит не от хостера, а от интернет-провайдеров по миру. На части провайдеров процесс займет больше суток, все это время сайт будет недоступен для пользователей. 

Ответить
Развернуть ветку
Павел Шабалин

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

И заказчики все равно ничего не сделают, проблемы бэкапов это проблемы специалистов, а не заказчиков, я лично сразу говорю что надо, где надо и настраиваю, а они потом только оплачивают и всё, потому что для них, что сменить А запись в днс равноценна, как и завести проект в гит. 

Ответить
Развернуть ветку
Алексей Ковалёв
Автор
 в чем смысл выделенного тогда если вписать все равно нужно будет другой?

В 10 раз повторю, что смысл в скорости обновления записей. NS-записи невозможно обновить у всех провайдеров за 5 минут, А-запись - возможно. Так понятно? Скорость переезда и восстановления возрастает в разы. 

Ответить
Развернуть ветку
50 комментариев
Раскрывать всегда