Поиск VPS — осеннее обновление
Наступила осень, поэтому у меня появилось желание отчитаться о проделанной за лето работе на проекте poiskvps.ru
Я думаю, что почти каждый вебмастер или владелец сервера сталкивался с проблемой, когда нужна была резервная копия данных, а ее по какой-то причине не оказывалось. На обычном шаред хостинге принято, что хостеры сами делаю резервные копии и в случае чего готовы предоставить их пользователям. Однако при аренде виртуального или выделенного сервера ситуация ровно обратная: владельцу нужно самостоятельно следить за сохранностью данных и выполнять резервное копирование своими силами. Иногда хостеры предлагают «коробочные» решения, когда вместе в сервером дают пользователю возможность арендовать место для хранения бэкапов. На мой взгляд, это не самая лучшая идея, так как бэкапы нужно хранить как минимум в другом дата-центре, а желательно и в нескольких. Например, можно вспомнить пожар в дата-центре hosting.ua — от такого стечения событий никто не застрахован, однако такой случай показывает, что хранить резервные копии в одном и том же дата-центре не самая лучшая идея. Также, на мой взгляд, хранить резервные копии у хостера тоже не самая лучшая идея, даже если бэкапы хранятся далеко от основного сервера. В последнее время не редки случаи, когда хостер может просто пропасть или у него изымают все оборудование.
Сервис аренды места для резервного копированияСервис аренды места для резервного копирования работает меньше полугода, однако в последнее время в нем произошли значительные изменения. О них и о сервисе я хочу сегодня подробно рассказать.
Изначально была идея сделать простой и удобный сервер для хранения резервных копий, в то же время хотелось, чтобы цена за гигабайт была не заоблачная. Для этого был выбран довольно известный дата-центр — hetzner.de — и до недавнего времени купить место можно было только в этом дата-центре в Германии по очень «вкусной» цене: 10 Gb стоит 30 рублей, 50 Gb — 100 рублей и далее пропорционально.
Однако несколько дней назад появилась возможность арендовать хранилище помимо Германии на серверах в России, в Санкт-Петербурге ДЦ Selectel. Это может быть актуально для тех пользователей, кто хочет делать резервные копии на очень хорошей скорости. Трафик не ограничен, скорость подключения — 100 Mbit/s, никаких искусственных ограничений скорости нет. Цена аналогична размещению в Германии. Плюс, до конца сентября предоставляется постоянная скидка 10% на любой объем.
Для пользователя хранилище представляет из себя пару логин-пароль, с помощью которых можно производить манипуляции с файлами по FTP протоколу. Никаких других способов обмена информацией сервис не предлагает, так как самые распространенные панели управления поддерживают загрузку по FTP, а сервис, в первую очередь, ориентирован на простоту.
С технической стороны на каждый сервер установлена ОС Debian и панель управления ISPmanager. C помощью API этой панели управления производятся все действия с аккаунтом пользователя: активация, смена пароля, получение информации о занятом пространстве и получение списка файлов, установка ограничений по IP адресам.
Активация услуги
Активацию услуги можно разделить на две логические части:1. Генерация логина и пароля и создание пользователя с нужными ограничениями на сервере.Небольшое пояснение, почему логин и пароль генерируются, вместо привычного предложения придумать их самостоятельно.В качестве логина используется результат php-функции uniqid (), соответственно в любой момент времени это значение уникально, оно валидно для создания нового пользователя в системе, и его трудно подобрать. Также в качестве адреса сервера всегда используется конструкция вида login.backup.poiskvps.ru, соответственно логин также должен быть валидным поддоменом. Чтобы не «грузить» пользователя ненужной информацией, было принято решение использовать именно такой подход, в противном случае пользователю пришлось бы довольно долго подбирать правильный логин, чтобы он удовлетворял всем требованиям. Все равно эти данные используют только при настройке и забывают о них.Пароль генерируется сервисом и не запрашивается у пользователя из-за того, что активация услуги может быть отложенная: то есть пользователь заказал услугу, но оплатил ее через сутки. И чтобы не хранить у себя пароль в открытом виде для последующей активации хранилища, пароль генерируется автоматически сразу после оплаты и отсылается на почту. Естественно, ничего не мешает пользователю сразу изменить пароль. Использование AJAX на сайте позволяет сделать это довольно просто.
2. Создание нужного поддомена для активации адреса сервера вида login.backup.poiskvps.ru. В случае, если понадобится переместить аккаунт пользователя с одного сервера на другой (например, чтобы грамотнее распоряжаться занятым пространством), самый хороший способ — выдавать каждому пользователю свой поддомен. В случае если по какой-то причине аккаунт пользователя переедет на другой сервер, то достаточно будет изменить одну запись в ДНС, и пользователь ничего не заметит. Время обновления ДНС записей установлено достаточно небольшое, так что к моменту получения письма с логином и паролем ДНС записи уже успевают обновиться, и пользователь успешно заходит на сервер.
Смена пароля
Сразу после активации услуги и получения сгенерированного пароля у любого параноика возникнет желание сменить этот пароль. Тут все довольно продуманно: сменить пароль можно прямо из панели управления, причем смена пароля лишена надоедливых функций, например, не нужно набирать пароль дважды, а ограничение на «качество» установлено только одно: длина пароля должна быть 8 символов и более. То есть никаких уведомлений «В пароле должна встречаться большая гласная буква на любой четной позиции» пользователь никогда не увидит.
Ну и как бонус — смена пароля происходит без перезагрузки страницы, поэтому красивая картинка будет примерно секудну указывать на то, что происходит обмен данными, а как только от конечного сервера получен ответ о том, что пароль изменен — пользователь будет немедленно уведомлен об этом.
Уведомления о превышении порога занятого пространства
Чаще всего резервное копирование настраивают один раз и забывают про него, пока не приходит время использовать бэкап. Согласитесь, будет очень грустно узнать, что за последние три месяца резервных копий нет, так как оказалось занято все доступное пространство. Конечно, предусмотреть, а тем более предотвратить все случаи «испорченности» бэкапов не в наших силах, однако вопрос с занятым пространством вполне можно довести до совершенства.Принцип действия следующий: пользователь указывает процент занятого пространства, после заполнения которого ему нужно прислать уведомление о том, что осталось мало места.На сервисе есть один из «фоновых» процессов, который раз в минуту получает информацию со всех серверов и обновляет статистику по свободному и занятому пространству. С помощью этой функции как раз можно смотреть, сколько было занято до обновления и сколько оказалось занято после, и если указанный пользователем порог преодолен — нужно слать пользователю уведомление.В теории это хороший план: четкое оповещение без задержек, и пользователь сразу узнает, что свободного места осталось мало. Однако реалии добавляют немного негатива: чаще всего панели управления делают резервные копии следующим образом: сначала они закачивают «свежую» версию бэкапа, а только после этого удаляют самую старую. Из-за этого на момент закачивания в хранилище может заканчиваться свободное место, и пользователь каждый раз будет получать уведомление, хотя после того, как файл докачался, свободное место вновь появится. Чтобы избежать таких случаев, используется следующий механизм: как только преодолевается порог, указанный пользователем, в базу данных ставится флажок, и через час происходит повторная проверка занятого пространства: если места все еще мало — пользователь, получает уведомление, а если место освободилось — мы зря не побеспокоили пользователя и все счастливы.
Ограничение доступа по IP адресам
С целью повышения безопасности на сервисе есть возможность устанавливать ограничение по IP адресам. Если сервер поддерживает IPv6 протокол, то можно установить ограничение и на адреса этого типа.Изначально ограничение планировалось делать через общий файрволл сервера, но это доставило бы очень много неудобств, например, обязательное ограничение доступа для всех пользователей. Однако в данный момент ограничение действует на отдельный аккаунт и не затрагивает «соседей», поэтому если пользователь не хочет (например, у него не постоянный IP адрес), то ограничения можно не устанавливать. Так же как и пароль, обновление происходит через AJAX без перезагрузки страницы.
Просмотр списка файлов и папок
Еще одна почти уникальная возможность сервиса — просмотр списка файлов и папок прямо из панели управления хранилищем. Чтобы каждый раз не подключаться к серверу через FTP клиент, у пользователей есть возможность просматривать список файлов и папок в виде дерева прямо через панель управления. Принцип действия следующий: раз в 15 минут опрашиваются все сервера, и для каждого аккаунта создается карта файлов и папок, в которой указаны название, дата изменения и размер. Так как у разных пользователей может быть разное количество папок, обход всех хранилищ и составление их карт может занять несколько минут, поэтому информация обновляется 4 раза в час. Однако на будущее есть планы сделать кнопку для «ручного» обновления.
Буду рад ответить на вопросы и выслушать комментарии. По запросу в личку или на leonid@poiskvps.ru могу предоставить тест услуги для проверки скорости передачи данных.
P.S. Благодарю хостинг-компанию VDSina.ru за поддержку проекта.