Черный день
Когда хостинг ушел в небытие, волноваться было уже поздно. Сайт умер во время активного продвижения, в пятницу, до техподдежки было невозможно дозвониться, братья по несчастью пожимали плечами. Нам повезло: у одного из разработчиков была старая копия сайта, мы ее восстановили и проект был спасен. Но больше так рисковать не хотел никто.
Bitcalm. Начало.
Это было пять лет назад. Тогда мы впервые всерьез занялись вопросами «страхования» своих данных, и в работе над различными проектами перепробовали немало решений.
Сейчас, когда мы обзавелись собственным решением проблемы, я хочу немного обобщить полученный нами опыт.
Надеюсь, что наши набитые шишки помогут вам немного сократить страдания и найти сервис резервного копирования, оптимальный для вас.
Самопистные скрипты и готовые скрипты с GitHub
Плюсы: дешевизна, гибкость настройки.
Минусы: вариативная надежность, отсутствие гарантий, затраты времени на написания или поиск скриптов,
Кому подойдет: нестандартным проектам, системным администраторам.
Поначалу мы решили не тратиться на серьезные решения и написать скрипты для восстановления данных самостоятельно. Ну, или почти самостоятельно: благо, на github\'e было немало готовых вариантов. Пять бессонных ночей, очень много кружек кофе — и я теперь гуру bash’a, rsync’a и других технологий.
При написании своего скрипта важно определиться с тем, куда вы сохраняете свои данные и не забыть сделать резервные копии баз данных. У данного решения есть очевидные плюсы: гибкость — вы сами решаете какие возможности вам нужны и как их реализовать; обучение — в процессе написания вы можете познакомиться с каким-либо новым языком программирования, технологией или API. Кроме того, стоимость итогового продукта определяете только вы сами.
Но и цена ошибки здесь довольно высока, поскольку может обернуться потерей проекта. Хорошо, что мы поняли это на этапе тестирования восстановления информации. Экономия на бэкапах ни к чему.
Business решения
Acronis, Handy Backup
Плюсы: высокая надежность, техподдержка.
Минусы: высокая цена, закрытый код и инфраструктура.
Кому подойдет: среднему и большому бизнесу.
Это ледоколы в мире бэкапов. У них обслуживаются крупные компании и они существуют на рынке уже много лет. Если у вас появится проблема, то вам обязательно придет на помощь техподдержка в самое короткое время. Я говорю об Ashampoo, Acronis, Symantec, Handy и других. Данные решения подкупают своей очень высокой надежностью, техподдержкой и опытом работы на рынке. Единственное, что останавливает мелкий бизнес и фрилансеров от использования — это большая цена за надежность (от 1000$ в год). Так же есть вопросы к закрытому коду этих систем — не понятно, что спрятано в этих черных ящиках.
Решения от хостинг-провайдеров
Плюсы: низкая цена, быстрота первоначальной настройки.
Минусы: низкий уровень доверия, малая гибкость.
Кому подойдет: простым сайтам.
А вот данный путь спас меня совсем недавно. Один из очень давних заказчиков забыл продлить хостинг и его аккаунт со всеми его данными стерли через месяц. История закончилась хэппи-ендом: в течение суток был зарегистрирован новый аккаунт и восстановлен сайт из бэкапа хостера.
Техническая реализация различается у хостеров, обычно все сводится к одной галочке при создании виртуальной машины. При этом не всегда понятно, где хостер хранит бэкап ваших данных, ведь это может быть и сервер в соседней стойке. Также возникает вопрос, как часто он делает бэкапы и сколько предыдущих копий он хранит. Непонятна процедура восстановления, как удачно и как быстро мы сможем получить доступ к нужной информации.
Внимательно уточняйте данную информацию у хостера. Если не можете найти ответы в документации, обязательно спросите у поддержки.
Хватит это терпеть
И вот, настал тот момент, когда при очередной настройке бэкапа для нового проекта, мы сказали: “Хватит это терпеть!” и решили реализовать полноценный сервис, который поможет нам обрести спокойствие за свои данные всего за три шага.
Для установки на сервер клиента нужна всего-лишь одна команда, все управление бэкапами (выбор каталогов и БД, расписание и отслеживание) происходит через удобный веб-интерфейс. Есть и минус: в некоторых ситуациях гибкости настройки бэкапа может не хватить. Мы думаем, что будем полезны фрилансерам, инди-разработчикам, стартапам и малому бизнесу (например веб-студиям), которые хотят быть спокойны за свои данные.
Какой софт?
Клиент мы разрабатываем на Python — язык поддерживается “из коробки” во всех серверных операционных системах. Исходный код опубликован в PyPI и на github.com, чтобы каждый заинтересованный разработчик мог нас проверить. Клиент будет получать настройки с нашего сервиса, сжимать нужные каталоги и сразу напрямую заливать их на Amazon S3. Весь обмен данными происходит по https
Веб интерфейс мы разрабатываем при помощи современных фреймворков AngularJS и Django. При помощи одной панели управления вы можете настраивать сразу несколько серверов. Для каждого сервера вы выбираете необходимые каталоги для бэкапа, указываете параметры подключения к СУБД, выбираете базы данных. Расписание бэкапов настраивается гибко. В панели управления отображается журнал бэкапов со статусом, размером и временем выполнения.
Данные хранятся на Amazon S3
Amason S3 – один из популярных сервисов хранения данных. Для каждого пользователя мы создаем приватный и изолированный bucket, что делает вероятность “утечки” бэкапов невозможной. Все бэкапы хранятся на Amazon S3 в зашифрованном виде.
Что скажете? =)
Сейчас проект находится в стадии активной разработки первой версии продукта. Нам очень интересны ваши пожелания, советы, впечатления, любая обратная связь.