Поиск по сайту Поиск

Перенос крупного проекта на мощности REG.RU: как сохранить нервы технического директора

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

Предыстория и постановка задачи

Началось всё с того, что к нам обратилось крупное сетевое IT-издание с задачей по переносу своих данных на новые серверы. От нас требовалось выполнить максимально бесшовный перенос всех проектов на мощности REG.RU. То есть, ни сотрудники, ни клиенты заказчика не должны были столкнуться с какими-либо сбоями, связанными с перемещением данных на новые серверы.

Возможно, вы спросите, зачем вообще может понадобиться переносить данные? Причин может быть много: новые требования к оборудованию, желание сменить провайдера, недовольство уровнем отказоустойчивости ЦОД, необходимость модернизации архитектуры, сайта или самой компании. В нашем случае произошло разделение компании-заказчика, из-за чего пришлось переносить проекты на другие серверы, обновлять кодовую базу и организовывать новую надёжную инфраструктуру.

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

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

Исходя из требований отказоустойчивости мы решили максимально зарезервировать мощности. Мы выбрали два сервера с абсолютно одинаковыми конфигурациями, а дисковое пространство организовали двумя пулами носителей. Первый пул состоял из программного массива дисков SSD, второй — из программного массива HDD. Это решение соответствовало требованиям скорости работы дисковой подсистемы, поскольку серверы баз данных требовательны к быстродействию дисков, в то время как для хранения статики нужен большой объём памяти. SSD стоят довольно дорого, и мы использовали более медленные диски для организации хранения статических данных. Сетевые интерфейсы были также зарезервированы при помощи агрегации — то есть каналы связи дублировались для того, чтобы обрыв провода, выход из строя порта коммутатора или сетевой карты не прерывали работу серверов.

С чем мы столкнулись при анализе проекта

Поначалу нам показалось, что перенос не будет слишком сложным. Однако проект имел долгую историю, и сам заказчик не представлял полный объём задач. Дополнительной трудностью стало то, что сайт использовал устаревшее программное обеспечение. Для его переноса нам пришлось привлечь разработчиков со стороны заказчика, чтобы выполнить первичный запуск.

От использования панели управления сервером пришлось отказаться, так как она препятствовала правильному резервированию (то есть копированию данных с одного сервера на другой). К тому же, само техническое задание не предполагало, что мы предоставим специалистам заказчика функционал по администрированию программно-аппаратного комплекса.

Самым сложным оказалось составление списка подлежащих к переносу веб-проектов, баз данных и программного окружения. Сложность была обусловлена политикой безопасности компании-заказчика и закрытым доступом к текущей системе. Из-за этого специалисты REG.RU не могли досконально проанализировать все настройки сервера и сразу понять, как перенести их и где могут возникнуть трудности.

После предварительного анализа и переговоров мы пришли к выводу, что требуется перенести порядка 20 баз данных, 20 веб-проектов, два сервиса поиска и более 1 ТБ файлов статической информации. В итоге мы разделили первичный перенос проекта на 5 этапов:

  1. Построение и тестирование архитектуры;
  2. Перенос с сервера на сервер статической информации;
  3. Перенос сервера базы данных SQL и настройка репликации между серверами;
  4. Перенос вспомогательных веб-проектов и настройка программного окружения;
  5. Перенос основного сайта компании.

Все данные переносились на выделенные серверы REG.RU.

Перенос проекта: друг за другом, шаг за шагом

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

Перенести статическую информацию (второй этап) оказалось тоже нетрудно. Мы использовали стандартную настройку CDN с регламентированным доступом для обновления информации и транслирования видео-контента. 

С переносом базы SQL на другой сервер всё оказалось сложнее, поэтому этот этап мы разбили на три шага:

  1. установка серверов баз данных;
  2. настройка репликации серверов;
  3. первичный перенос данных.

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

Затем был трудный и тернистый четвёртый этап — запуск сопутствующих веб-проектов. Сложность заключалась в устаревшей кодовой базе — пришлось параллельно обновлять ПО проектов до новых версий и переносить их по одному. Это растянуло процесс, но позволило сделать его незаметным для пользователей и клиентов заказчика.

К последнему этапу (перенос основного сайта) мы приступили с уже настроенной конфигурацией программного обеспечения. Заказчик остался доволен нашей работой, поскольку всё было выполнено гладко и соответствовало заявленному ТЗ.

В итоге весь перенос проекта занял несколько месяцев — такой срок обусловлен обновлением кодовой базы со стороны заказчика. При идеальном раскладе — то есть, если бы у нас изначально были полные сведения о проекте и доступ к системе, а у заказчика была актуальная кодовая база, — перенос занял бы три-четыре дня.

Выводы

Если вы хотите выполнить перенос данных с сервера на сервер, и при этом ваш проект довольно большой — позаботьтесь о том, чтобы составить функциональную схему работы проекта.

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

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

Не стоит одновременно выполнять переделку проекта — лучше сначала обновить систему и только после этого переносить её на новые серверы.

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

Настраиваем шифрование жесткого диска, чтобы избежать утечек данных

Настраиваем шифрование жесткого диска, чтобы избежать утечек данных

В каждой компании есть сотрудники, которые хранят на рабочем компьютере конфиденциальную информацию, и её утечка может оказаться катастрофой. Среди таких...
Read More
Domains weekly: отказ в зоне .INTERNET, «собачья» прибыль и дроп домена Google

Domains weekly: отказ в зоне .INTERNET, «собачья» прибыль и дроп домена Google

ICANN вновь и вновь отказывает индийской компании в делегировании зоны .INTERNET, собака вдохновила хозяина на домен стоимостью полмиллиона долларов, Google...
Read More
CTR позиций в поисковой выдаче или Когда клики действительно помогают

CTR позиций в поисковой выдаче или Когда клики действительно помогают

Мечта каждого вебмастера — вывести сайт на первые строки в поисковиках, чтобы привлекать как можно больше трафика. Сегодня вместе с...
Read More
Что такое NVMe SSD и стоит ли выбирать его для своего веб‑проекта?

Что такое NVMe SSD и стоит ли выбирать его для своего веб‑проекта?

При выборе выделенного сервера надо учитывать много параметров: подобрать процессор, понять, сколько хватит оперативки и какой нужен тип накопителя. Если...
Read More
Domains weekly: топ стран на рынке SSL, ICANN против расизма и 50 000 доменов в дропе

Domains weekly: топ стран на рынке SSL, ICANN против расизма и 50 000 доменов в дропе

Новый еженедельный дайджест поведает о том, в каких странах больше всего используют SSL-сертификаты (спойлер: Россия там тоже есть), как ICANN...
Read More
7 лучших SEO‑плагинов для WordPress

7 лучших SEO‑плагинов для WordPress

Чтобы привлечь посетителей на сайт, без SEO-продвижения не обойтись. И это — не разовая история, а постоянный и кропотливый процесс....
Read More
404, Bad Gateway или О чём говорят популярные ошибки на сайтах

404, Bad Gateway или О чём говорят популярные ошибки на сайтах

Наверняка вы сталкивались с ситуацией, когда при попытке зайти на сайт вместо нужной страницы он выдавал то ошибку 404, то...
Read More
Domains weekly: доход от .ORG, соцсеть на VOICE.COM и персональный рейтинг доменов

Domains weekly: доход от .ORG, соцсеть на VOICE.COM и персональный рейтинг доменов

Из новой подборки вы узнаете, что за соцсеть заработает на самом дорогом домене, как будут персонализироваться подборки доменных имён для...
Read More
Как подобрать домен: возможности REG.RU

Как подобрать домен: возможности REG.RU

В зоне .RU почти 5 миллионов доменов. Несмотря на то, что многие звучные и запоминающиеся имена уже заняты, есть несколько...
Read More
Domains weekly: взлёт .BLACK, сокрытие URL от Google и защита от доменов‑омонимов

Domains weekly: взлёт .BLACK, сокрытие URL от Google и защита от доменов‑омонимов

В очередном дайджесте мы расскажем о росте зоны .BLACK (о причинах догадаться нетрудно), зачем Google убирает полные URL из адресной...
Read More