Как выиграть в масштабной игре по миграции баз данных

В наших предыдущих статьях мы объясняли, почему нам пришлось переместить 800 000 баз данных из одного центра обработки данных в 300 километров. Итак, мы… Моя команда и я сделали это! Это была настоящая горелка мозгов, так что я надеюсь, что наша история поможет вам рассмотреть больше огромных технических проектов, с которыми мы любим играть.


Правила
  • Чтобы уменьшить задержку, база данных должна быть перенесена одновременно с использованием веб-сайта.
  • Поскольку базы данных распределены по всем доступным серверам MySQL, гранулярность миграции должна быть базой данных, а не экземпляром MySQL. Другими словами, мы не можем перенести весь сервер MySQL. Мы должны переместить только часть этого.
  • Поскольку на ссылку между веб-сайтом и его базой данных нет необходимости ссылаться, веб-сайт в Gravelines должен иметь возможность связаться с базой данных в Париже (например), и наоборот.
  • Чтобы связаться со своей базой данных, веб-сайт использует имя хоста, имя пользователя и пароль. Мы хотим, чтобы миграция была прозрачной, поэтому никому не нужно менять какие-либо из этих элементов для связи с их новой базой данных.
  • Платформы баз данных меняются между Парижем и Гравелином, как показано ниже.
Подводя итог, вот что мы имеем до миграции веб-кластера:

И это то, что мы хотим после миграции:


Еще несколько вещей…
  • Очевидно, что мы имели в виду одну из самых важных вещей при работе с базами данных: согласованность. Для каждой базы данных мы должны были определить точку согласованности. До этого момента на временной шкале чтение / запись производились в Париже. После этого чтение / запись были сделаны в Gravelines.
  • Мы верим в прозрачность и обратимость. Это обе ключевые части нашего облака SMART. Вот почему мы хотели предоставить вам доступ к этой точке согласованности в виде дампа на вашей панели управления OVHcloud. Для каждой перенесенной базы данных мы решили предоставить вам доступ к дампу на один месяц.
  • Миграция 800K баз данных примерно за 60 ночей означала, что мы должны быть очень быстрыми и масштабируемыми. Наш рекорд был 1 июля 2019 года, когда мы успешно мигрировали 13502 базы данных за 1 час 13 минут и 31 секунду.
  • Если вы привыкли быть на дежурстве, вы знаете, что ваше внимание и эффективность снижаются ночью. Повторение процесса миграции примерно 60 раз в год усилит это, поэтому мы хотели, чтобы все было максимально автоматизировано и максимально просто. Как мы увидим позже, чтобы запустить миграцию базы данных, нам просто нужно было выполнить одну команду на одном хосте:
migrate-p19
Теперь вы знаете правила, пора начинать игру!

1-й уровень
Первый уровень всегда легкий, где вы узнаете, как игра работает, с помощью своего рода учебника! Итак, начнем с небольшой миграции базы данных. Вот как мы это делаем:

1. У источника (Париж)
  • Установите режим только для чтения. Нам абсолютно необходимо избегать записи во время миграции, чтобы избежать знаменитого раскола мозга. Самый простой способ сделать это — перевести базу данных в режим только для чтения. В большинстве случаев веб-сайтам нужно только читать базы данных, но в некоторых случаях им нужно чтение и запись, и поэтому они будут повреждены. Это не проблема, потому что сайт в настоящее время перенесен и закрыт. Мы заблокируем доступ на запись в случае, если база данных используется другим хостом, на который не влияет ночная миграция.
  • Дамп базы данных и положить куда-нибудь дамп. Мы решили хранить дампы в общедоступном облачном хранилище (PCS) OVHcloud, поскольку мы уже используем это решение для хранения 36 миллионов дампов в месяц. Добавление 800 000 дампов в год — не проблема для этой потрясающей платформы!
  • 3 минуты и 31 секунда.
Если вы привыкли быть на дежурстве, вы знаете, что ваше внимание и эффективность снижаются ночью. Повторение процесса миграции примерно 60 раз в год усилит это, поэтому мы хотели, чтобы все было максимально автоматизировано и максимально просто. Как мы увидим позже, чтобы запустить миграцию базы данных, нам просто нужно было выполнить одну команду на одном хосте:


2. В пункте назначения (Гравелин)
Получить дамп и импортировать его.
Создайте пользователя и разрешения с правами записи.


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


Уровень 2: «Децентрализованный конечный автомат»
Чтобы подтвердить концепцию миграции, сначала мы выполнили все эти шаги вручную и последовательно. Естественный способ автоматизировать это — написать скрипт, который сделает то же самое, но быстрее. Это централизованный метод, но такие методы рано или поздно сталкиваются с узкими местами и предполагают единую точку отказа.

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


Используя этот конечный автомат, мы можем выполнить эти три больших шага на разных машинах для распараллеливания рабочей нагрузки:
  • Источник
  • Пункт назначения
  • Тот, который обновляет DNS
Эти три хоста могут выполнять свои задачи независимым и децентрализованным способом. Все, что им нужно сделать, это посмотреть граф состояний, чтобы увидеть, есть ли у них что-то, и, если да, обновить его и выполнить задачи.

Мозг миграции: CloudDB
Мы любим концепцию «ешь свою еду»! Это самый лучший контроль качества, и благодаря отзывам, которые вы нам предоставили, наш первый источник запросов по функциям. Поэтому неудивительно, что мы использовали наш собственный продукт CloudDB для хранения графиков состояний миграций баз данных.

Технически граф состояний — это строка в таблице. Упрощенная структура этой таблицы выглядит следующим образом:
- database_name VARCHAR(255) PRIMARY KEY,
- source VARCHAR(255),
- destination VARCHAR(255),
- status VARCHAR(255) NOT NULL DEFAULT 'Waiting',
- dump_url TEXT


За исключением dump_url, все поля заполняются до начала миграции. Другими словами, мы знаем, где находятся базы данных и где они будут.

Мы победили все проблемы этого уровня. Теперь пришло время победить финального монстра!

Уровень 3: Миграция 800K баз данных
Теперь, когда мы знаем, как переносить одну базу данных децентрализованным способом, давайте заполним CloudDB всеми базами данных, которые мы хотим перенести! Вот как выглядит миграция:

В Париже
Примерно раз в минуту * каждый хост из 780 серверов баз данных спрашивает CloudDB, есть ли у них что-то, что нужно выгрузить. Столбцы источника и состояния таблицы используются для получения этой информации:
SELECT … WHERE source = me AND status = 'To dump';

Если это так, они выполняют свои задачи и обновляют CloudDB о том, что они делают. Когда они закончат, они передают эстафету для этой миграции Гравелинам:
UPDATE … SET status = 'To import' WHERE database_name = '…';


В гравелинах
В то же время, в 300 километрах, сотни серверов баз данных также спрашивают CloudDB, есть ли у них что-то для импорта. Как и в Париже, они запрашивают CloudDB примерно раз в минуту *. Столбцы назначения и состояния таблицы используются для получения этой информации:
SELECT … WHERE destination = me AND status = 'To import';

Если это так, они выполняют свои задачи и обновляют CloudDB о том, что они делают. По завершении они передают эстафету третьему роботу, который изменит записи DNS для этой миграции базы данных:
UPDATE … SET status = 'DNS to update' WHERE database_name = '…';


Чтобы избежать переполнения CloudDB, мы используем случайную частоту для запроса базы данных с графиками состояний. Таким образом, соединения глобально распределяются во времени.

Обновление DNS
Робот, отвечающий за обновление DNS, является третьим игроком в процессе миграции и работает так же, как роботы дампа и импорта, описанные выше.

Не так просто ...
Конечно, реальная игра была более сложной. Это была упрощенная версия миграции, в которой некоторые шаги отсутствуют или недостаточно подробны, например:
  • Предотвращение записи в исходную базу данных
  • Обновление IS (среди прочего), чтобы вы могли видеть дамп в панели управления
  • Установка пароля в пункте назначения (так же, как в источнике), не зная его
  • И многие другие
Но теперь, когда у вас есть концепция основных шагов, вы можете представить, как мы справились с остальными.

тепловой код: итерация!
Вы знаете закон действительно больших чисел? В нем говорится, что при достаточно большом количестве образцов может наблюдаться любая маловероятная вещь.

Это один из первых уроков, которые вы изучаете, когда размещаете 1,2 миллиона баз данных. Каждый день мы сталкиваемся со многими невероятными вещами, которые могут случиться с базами данных, поэтому мы знали, что, несмотря на проведенные нами тесты, мы столкнемся с трудностями, странными случаями и невероятными узкими местами.

Но для этого босса есть чит-код: итерация!
  • Начните миграцию
  • Столкнуться с проблемой
  • Исправьте это окончательно (не только для конкретного случая, который потерпел неудачу, но также и для всех подобных случаев на всей платформе)
  • Тогда попробуйте еще раз, быстрее!
Этот метод возможен благодаря двум вещам:
  • Волшебная команда
  • Большая красная кнопка

Волшебная команда
Как упоминалось выше, для запуска миграции базы данных нам нужно было выполнить одну команду на одном хосте:
migrate-p19
Эта магическая команда имеет один параметр: количество параллельных миграций, которые вы хотите выполнить. Мы использовали 400 для этого параметра.
migrate-p19 --max-procs 400

Это означает, что 400 баз данных выгружаются или импортируются одновременно — не больше, не меньше.

Команда migrate-p19 является планировщиком. Он обновляет CloudDB каждые 10 секунд, поэтому мы всегда выполняем эти 400 миграций параллельно:
SELECT COUNT(database_name) … WHERE status in ('To dump', 'Dumping', 'Dump failed', 'To import', …);
42
UPDATE … SET status = 'To dump' WHERE status = 'Waiting' LIMIT (400 - 42);


Приостановить игру: большая красная кнопка
На каждой машине обязательно иметь большую красную кнопку, чтобы нажимать, когда что-то не так. Чтобы прервать миграцию по той или иной причине, нам просто нужно убить скриптigration-p19. Когда мы делаем это, текущие миграции прекращаются, после чего новые не запускаются.

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

Веб-хостинг - почему мы решили перенести три миллиона сайтов



Вы перенесли сайт раньше? Если у вас есть или вам потребуется регулярно мигрировать веб-сайты, вы будете знакомы с трудностями, связанными с этим видом операций.
Чтобы выразиться в самых основных терминах, эта операция обычно включает шесть шагов:
  • покупка и настройка инфраструктуры назначения
  • тестирование новой инфраструктуры путем импорта данных и кода сайта
  • закрытие веб-сайта или перевод его в режим только для чтения, чтобы предотвратить сохранение данных в старой инфраструктуре в процессе миграции
  • развертывание кода в новой инфраструктуре и импорт данных в новые базы данных
  • изменение исходного кода для его адаптации к новой инфраструктуре (идентификаторы базы данных, подключение к внешним API и т.д.)
  • когда веб-сайт работает над новой инфраструктурой, перенаправляет трафик, чтобы сделать его снова доступным (изменение зон DNS, обновление серверной части балансировщика нагрузки и т.д.)

В зависимости от исходного кода веб-сайта и сложности инфраструктуры эти шаги могут различаться по сложности. На самом деле, это зависит от доступа вашего сайта к записи данных. Должны ли данные храниться в базе данных? Есть ли у вашего сайта кеш на основе локальных файлов? Все это определено в исходном коде ваших веб-страниц.



Всего год назад, в марте 2018 года, OVH запустил крупный проект: миграция всех веб-хостинга и почтовых клиентов, размещенных в его устаревшем парижском центре обработки данных, в новый центр обработки данных. Для организации проекта процесс миграции был разделен на две части, управляемые двумя отдельными командами: веб-хостинг для первой команды и электронная почта для второй. Сегодня мы сосредоточимся на миграции веб-хостинга, но команда по миграции электронной почты также обсудит их процесс в нашем техническом блоге.

Для веб-хостинга этот проект включает миграцию трех миллионов различных веб-сайтов, размещенных на 7000 серверов в Париже. Некоторые из этих сайтов работают с 1999 года! Это одно из самых продолжительных мероприятий OVH. Так зачем их мигрировать, если они хорошо работают в Париже почти 20 лет? Чтобы понять все проблемы, с которыми мы сталкиваемся, нам нужно углубиться в историю этой службы.

Краткая история нашей веб-хостинговой платформы
Когда в 1999 году Октав основал OVH, доступ к Интернету все еще был ограничен. Первым направлением деятельности компании был хостинг веб-сайтов. То, что кажется простым сейчас, не было таким простым в то время. Вы должны были иметь хорошие сетевые соединения, поддерживать работу веб-серверов и правильно их настраивать. Трудно было найти людей с техническими знаниями или ресурсами, чтобы сделать это.

P19 строительство и расширение
В начале 2000-х годов у OVH была возможность приобрести здание в 19 округе Парижа. Здание P19 имело хороший доступ к электричеству и интернет-сетям, поэтому оно могло предоставлять услуги хостинга через Интернет и электронную почту большому количеству клиентов. Некоторое время это был единственный центр обработки данных OVH.

В P19 OVH не просто предлагал веб-хостинг. В центре обработки данных также размещены выделенные серверы. Оба вида деятельности быстро завоевали популярность, и в конце 2000-х годов OVH начала строить много новых центров обработки данных в Рубе, затем в Страсбурге, Богарном (Канада), Гравелине и за ее пределами.

Каждый раз, когда мы строили новый центр обработки данных, мы приобретали больше опыта, который помог нам улучшить логистику и техническое обслуживание. Эти новые центры обработки данных были намного больше, чем наш сайт в Париже, и дали нам пространство, необходимое для ускорения разработки многих инновационных технологий и решений, таких как водяное охлаждение, наша собственная производственная линия для серверов и стоек, а также система охлаждения для сервера. номера, в которых не было кондиционера.

Как сеть развивалась между 1999 и сейчас
Интернет сильно изменился с 1999 года. С нашей точки зрения, как хостинг-провайдера, мы наблюдали три события с течением времени…
  • 1999 -> 2005: рождение сети. Статические сайты создавались в формате HTML. Это было, когда блоги начали появляться. Но эта технология была доступна только людям, которые знали, как использовать клиенты HTML и FTP, хотя FrontPage помог многим людям начать работу.
  • Для работы эти сайты включали данные прямо в код. Веб-хостинг был довольно прост: пользователю требовалось место для хранения и веб-сервер, единственной целью которого была отправка веб-страницы, которую он будет искать в пространстве для хранения.
  • 2006 -> 2013: Web 2.0 — революция в социальных сетях и базах данных. Веб-сайты стали динамичными и могли отображать пользовательские страницы в зависимости от пользователя. Это было, когда впервые начали появляться дискуссионные форумы, блог-платформы и социальные сети, которые все еще так популярны сегодня.
  • Динамические сайты были революцией для провайдеров веб-хостинга; код и данные теперь хранятся в двух разных местах. Это означало, что страница должна была быть сгенерирована до того, как она была отправлена ​​конечному пользователю. Роль веб-сервера изменилась и будет генерировать эти страницы по запросу, в основном на языке PHP. Для этих веб-сайтов необходимо добавить серверы баз данных, а также вычислительную мощность для веб-серверов.
  • 2014 -> сегодня: мощь JavaScript возросла, помогая разработчикам создавать сложные веб-приложения в браузерах и значительно улучшая работу веб-пользователей. Это изменение стало возможным благодаря развертыванию Интернета на наших смартфонах. В результате может быть запущено большое количество сервисов, требующих веб-доступа.

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

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

Развертывание веб-хостинга в Gravelines
Как только мы отметили это, было только одно решение: чтобы избежать нехватки планов веб-хостинга, нам нужно разместить наши сайты в другом центре обработки данных. Мы внедрили наши услуги в Париже, чтобы предоставлять услуги хостинга 24/7, управлять 7 000 серверов и поддерживать их работоспособность на основе самых ранних технологий OVH.

Мы могли бы сохранить эту индустриализацию и применить ее к Gravelines, но мы решили сделать что-то еще. Мы решили создать новую техническую архитектуру, которая будет поддерживать растущие потребности с точки зрения производительности и, прежде всего, позволит нам повторно использовать другие продукты OVH. Это известный подход «съешь свою собачью еду», который применяется и расширяется в соответствии с нашими планами веб-хостинга.

Мы поставили перед нашими собственными командами задачу управлять выделенными серверами, vRack (частной сетью), IP-адресами и балансировщиками нагрузки (IPLB), чтобы они могли поддерживать инфраструктуру и трафик наших клиентов. Став одним из наших крупнейших клиентов, мы смогли выявить и преодолеть множество ограничений — повысить скорость отклика наших API, оптимизировать наши базы данных и многое другое.

Чтобы свести к минимуму задержку и удовлетворить требования географического распределения, мы предлагаем нашим клиентам широкий спектр центров обработки данных по всему миру. Все эти центры обработки данных были потенциальными целями для роста нашей платформы. По логистическим причинам мы решили запустить единый новый центр обработки данных в Европе. И это не влияет на наши веб-сайты: различия в задержке между нашими центрами обработки данных настолько минимальны, что они даже не кажутся размещенными на них сайтами (увеличение составляет всего несколько миллисекунд, и это занимает несколько сотен миллисекунды для создания веб-страниц).

Чтобы выбрать наш новый центр обработки данных, мы проанализировали наш естественный рост, чтобы выработать наши требования к инфраструктуре. Фактически, наша инфраструктура растет каждую неделю с новыми поставками оборудования, и мы рискуем настолько быстро заполнить наши центры обработки данных, что это помешает нашим клиентам арендовать выделенные серверы и другие сервисы OVH. Согласно этим критериям, только два центра обработки данных удовлетворяли наши потребности в плане инфраструктуры в 2016 году: Gravelines на севере Франции и Beauharnois в Канаде. Поскольку наша платформа в настоящее время развернута только в Европе, мы начали работать над Gravelines.

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

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

Этот центр данных для веб-хостинга был открыт в июле 2016 года. И с ноября того же года все наши новые планы хостинга были доставлены туда.

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

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

Почему мы решили перенести наш центр обработки данных?
Чтобы дать Парижу новую жизнь?

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

Наша инфраструктура основана на физических ресурсах, размещенных в этом центре обработки данных: выделенных и виртуализированных серверах (которые основаны на физических машинах), сетевых элементах и ​​контуре охлаждения (водяное охлаждение и кондиционирование воздуха). И чтобы инфраструктура оставалась доступной 24/7, нам необходимо периодически обновлять это оборудование.

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

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

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

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

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

Спустя двадцать лет наш центр обработки данных в Париже достиг конца жизненного цикла. Масштабная работа требуется на всех уровнях, а для этого требуется пространство. Это основная причина миграции.

Чтобы повысить производительность сайта
Благодаря новой инфраструктуре в Gravelines мы можем повысить производительность веб-сайтов наших клиентов. Более того, эти новые технологии помогли нам развернуть некоторые дополнительные функции, которые мы не можем развернуть в Париже без обновления нашей инфраструктуры: HTTP / 2, MySQL 5.6 и другие.

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

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

Как мы переносим так много сайтов?
Как провайдер веб-хостинга, мы в основном специализируемся на двух областях — хостинг данных и выполнение кода.

Хостинг данных — сложная операция, если он должен поддерживать свою целостность во времени, но это относительно стандартизированная отрасль. Данные хранятся в файловой системе (это стандарт) или в базе данных, которая использует определенный язык запросов (MySQL 5.5 или MySQL 5.6). Поэтому нам просто нужно воспроизвести архитектуру, которая соответствует тому же стандарту в целевой инфраструктуре, и перенести в нее данные.

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

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

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

В течение почти года мы разработали несколько сценариев миграции. Мы экстраполировали их по всем направлениям с двумя целями:
  • веб-сайты должны оставаться работоспособными после завершения миграции, и клиентам не нужно вносить какие-либо изменения в свой код
  • влияние на доступность услуг в процессе миграции должно быть минимальным
Мы внедрили и протестировали некоторые из этих сценариев в период с марта по июнь 2018 года. Эта первоначальная работа помогла нам выбрать лучший план миграции. Чтобы завершить эту миграцию, не затрагивая службы, нам необходимо было адаптировать часть нашей инфраструктуры и информационной системы: создать сетевой туннель между центрами данных, изменить балансировщики нагрузки, нашу платформу базы данных, добавить прокси-серверы SQL и многое другое.

Мы тщательно протестировали выбранный сценарий. Чтобы гарантировать, что эта процедура будет выполняться с минимальным воздействием, мы много раз повторяли ее в реальных условиях на внутренних кластерах, используя наборы данных на основе производственных платформ.

Хотите узнать больше информации о нашем плане миграции? Мы не можем включить все в эту запись блога, поэтому мы решили рассказать о нашей миграции в серии постов, поскольку эта тема очень обширна.

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

P19 to GRA

Овхмаркет: на этой неделе, кластер 012 (1000GP) был перенесен с P19 на GRA! Следующий кластер для переноса: кластер 013 (20gp) в январе. К концу 2019, мы будем мигрировать все из них, > 1M веб-сайтов, без простоя.