fbpx

Переїзд сайту із сервера на сервер та безшовна міграція

2019-03-26T00:14:50+00:00Март 22nd, 2019|Блог|

Якщо перед вами стоїть завдання перевезти високонавантажений сайт, що вимагає розміщення на окремому сервері, на більш чуйний хостинг, тоді ця стаття для вас. У ній ми розповімо вам про способи перенесення сайту з одного сервера на інший. А також детально розглянемо методику безшовної міграції — безболісного переїзду без перерв у роботі вашого сайту та без втрати будь-яких даних про взаємодію з користувачами, наприклад, про замовлення або про відвідування, які відбулися під час міграції з майданчика на майданчик.

Що таке переїзд сайту

Переїзд з хостингу на хостинг — це перенесення сайту з одного хостингового майданчика (віртуальної або фізичної машини) на інший хостинговий майданчик (тобто на іншу інфраструктуру). Внаслідок переїзду у сайту зміняться:

  • середовище виконання;
  • IP-адреса сервера, з яким взаємодіють користувачі.

Міграція — процес трудомісткий та кропіткий, тому вимагає знань і спеціальної підготовки. Нерідко при перенесенні можуть виникнути складнощі, одна з яких — перенести сайт таким чином, щоб не було простою та втрати транзакцій.

Варіанти міграції

Усього існують 3 варіанти міграції сайтів. Розглянемо їх докладніше:

  1. Перший спосіб, при якому власник сайту оголошує downtime. Іншими словами, він ставить «заглушку» на сайт з повідомленням про технічні роботи. Під час перенесення користувачі не зможуть користуватися вашим сайтом і робити замовлення.
  2. Інший варіант міграції ми називаємо «розщепленням». При такому способі розгортається копія сайту на нашому сервері, тестується, а потім змінюються налаштування DNS. У зв'язку з особливостями роботи DNS-серверів, інформація про внесені зміни в налаштування поширюється в мережі не одномоментно, тому частина користувачів, у яких вже відбулося оновлення інформації про зміни, при переході потрапляє на новий сайт, а частина відвідувачів, у яких не оновилися дані, — на старий.
    Виходить, що одночасно існують дві версії одного й того ж сайту, які знаходяться на різних серверах. При використанні такого способу міграції існує ймовірність втратити замовлення, які клієнти оформили під час перенесення на старій копії сайту.
  3. Варіант, якому надаємо перевагу ми при перенесенні з одного сервера на інший, — безшовна міграція. Спосіб реалізації залежить від декількох параметрів, які враховуються при перенесенні, а саме:
  • звідки і куди переноситься сайт;
  • як саме буде змінено доменну зону (потрібно тільки змінити А-записи, які вказують на те, де буде працювати сайт, або ж буде повна зміна NS-серверів, які вказують, куди слід звертатися браузеру за А чи MX-записами);
  • специфіки роботи конкретного сайту.

Розглянемо спосіб безшовного перенесення сайту з сервера на сервер поетапно та більш докладно.

Етап підготовки безшовного переїзду з сервера на сервер

Приступимо до первинного етапу переїзду — підготовки. Для безшовної міграції потрібно підготувати середовища як з боку, звідки забирається сайт, так і з боку, куди ми його переносимо. Саме на цьому етапі і визначається, що необхідно підготувати, аби провести міграцію з мінімальними втратами.

Перш за все, слід уточнити, на які NS-сервери делегована доменна зона вашого сайту. Якщо вони належать реєстратору доменного імені, то при перенесенні сайту потрібно змінити лише записи доменної зони, які відповідають за коректну роботу сайту. Зазвичай управління налаштуваннями зони є в панелі вашого особистого кабінету у реєстратора доменного імені.

У разі, якщо NS-сервери належать поточному хостинг-провайдеру, то їх слід змінити, тому що висока ймовірність того, що після розірвання договору з провайдером на цих NS-серверах доменну зону буде видалено. У даному випадку ми рекомендуємо налаштувати управління доменною зоною на наших NS-ах або використовувати NS-сервери реєстратора домену.

У разі зміни NS-серверів, найбільш правильне рішення — підготовка доменної зони.

Припустимо, сайт працює на NS-серверах ns1.somesite.somehost.ua та ns2.somesite.somehost.ua, ми ж переносимо сайт на NS ns1.somesite.tucha.ua і ns2.somesite.tucha.ua. Заходимо до панелі управління DNS-записами на somehost.ua, уважно дивимося список записів і створюємо аналогічні записи в панелі управління DNS-записами в панелі управління доменом на tucha.ua. Після того, як зміни буде внесено, можемо змінювати NS-записи. При цьому показник TTL у даному випадку особливої ролі не грає, та чим менше TTL, тим швидше пройде один з наступних етапів. Оптимальне рішення показника TTL на час переїзду — 300 секунд (5 хвилин). В результаті наш сайт змінить NS-записи, але не втратить клієнтів, що дозволить нам змінити TTL вже на потрібних NS-серверах.

DNS підготували, тепер приступаємо до підготовки середовищ існування. Для цього нам потрібно визначити можливості сервера, з якого відбувається перенесення. У разі переїзду з сервера на сервер план не найпростіший, але він цілком залежить від технічних навичок, а не від можливостей сервера (якщо є повний доступ до обох серверів, то встановити і налаштувати належним чином необхідний інструментарій не становитиме великих труднощів).

Сценарій безшовної міграції з сервера на сервер
Крок 1. Налаштовуємо односторонню реплікацію всіх даних, які є на старому сервері, на новий.

Створюємо копію сайту на новому сервері. Тестуємо, запускаємо, дивимося, як реагує сайт на запити. Якщо все справно працює, налаштовуємо реплікацію баз даних. Що це означає? Коли запит від відвідувачів надходить на старий сервер, той сповіщає клієнта про нові дані. Новий сервер отримує всі дані про зміни зі старого сервера протягом лічених секунд (найчастіше, навіть за 1 секунду).

Таким чином, на новому сервері копія бази даних постійно оновлюється та залишається актуальною. Щодо статичної інформації (файлів, кеша), тут потрібно налагодити односторонню синхронізацію з диска на диск. Можна скористатися як простими технологіями, так і більш складними (розподіленими файловими системами). З нашого досвіду, цілком достатньо rsync, що запускається в нескінченному циклі. Він цілком підходить для вирішення подібних завдань, хоча вирішити питання синхронізації статики можна і будь-якими іншими відомими та зручними засобами.

В результаті ми отримуємо 2 сервери. На старому знаходиться старий сайт, до якого все ще ходять користувачі. І навіть після того, як ми внесемо зміни в DNS, ще мінімум 5 хвилин користувачі будуть потрапляти на старий сервер.

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

Крок 2. Тестуємо роботу нового сервера.

Після налаштування реплікації тестуємо роботу сайту на новому сервері. Для того, щоб ваш локальний комп'ютер міг звертатися до нової копії сайту без зміни налаштувань DNS, необхідно внести зміни до файлу hosts (в ОС Windows це зазвичай C: \ Windows \ System32 \ drivers \ etc \ hosts), додавши рядок виду IP.адреса .нового.сервера (наприклад, 13.13.13.13) yourdomain.com www.yourdomain.com

Якщо потрібно виконати механічну перевірку великої кількості записів, робимо це за допомогою скрипта, який послідовно виконує ряд запитів та порівнює їх із відповідями.

Крок 3. Налаштовуємо проксіювання для перенаправлення веб-трафіку на новий сервер.

Перед внесенням зміни до DNS переводимо роботу сайту на старому сервері на новий. Для цього скористаємося механізмом проксіювання, котре доступне і в NGINX, і в Apache HTTP Server.

У конфігураціях веб-сервера вказуємо, що в разі, якщо щось прийшло на старий сервер з адресою 6.6.6.6, слід звертатися до нового сервера 13.13.13.13 із цим же запитом, а потім його відповідь передати назад клієнту від свого імені. Клієнт звертається до старого сервера, на якому сайту вже немає, але є проксіюючий веб-сервер. Проксіюючий веб-сервер з адресою 6.6.6.6 при цьому приймає запити від користувача, потайки адресує їх на 13.13.13.13. Таким чином, клієнти, хоч і звертаються до старого сервера 6.6.6.6, фактично вже працюють із сайтом на новому сервері 13.13.13.13.

Ще одна перевага в роботі з проксі-сервером в тому, що йому можна ставити fall-back (запасний варіант): якщо на сервері 13.13.13.13 немає необхідного файлу, значить, потрібно пошукати його в локальному каталозі. Це дозволяє вирішити проблему затримки при синхронізації файлів.

Крок 4. Вимикаємо старий сервер.

Змінюємо DNS-записи сайту на 13.13.13.13. Коли приходить відвідувач, який все ще звертається до 6.6.6.6 (протягом перших 300 секунд після внесення змін такі запити ще будуть надходити), проксіюючий веб-сервер обробляє його запити шляхом передачі новому веб-серверу з адресою 13.13.13.13. А коли користувач безпосередньо звернеться до нової адреси 13.13.13.13, він буде оброблений новим сервером у штатному режимі. Це позбавляє від проблеми появи розщеплення баз даних, оскільки клієнти працюють з однією базою даних, з одним набором файлів, з одним і тим же сайтом.

Вичікуємо час, який ми вказували в TTL (якщо пам'ятаєте, ще до перенесення ми встановили його величину в 300 секунд), і чекаємо, коли перестануть надходити запити на старий сервер. Для того, щоб остаточно переконатися, що всі клієнти та запити від них надходять безпосередньо на новий сервер, вичікуємо добу та впевнено вимикаємо старий сервер.

Готово! Тепер ваш сайт успішно переїхав на новий сервер.

Вартість послуги безшовної міграції

Ви можете перенести сайт самостійно. Ми завжди готові допомогти порадою та якісними інструкціями. Або довірте переїзд нам, і ми все зробимо за вас. Перенесення сайту з використанням «заглушки» або способом «розщеплення» ми робимо безкоштовно. Методика безшовної міграції вимагає підготовки та знань, а також займає більше часу, тому така послуга є платною. Вартість послуги безшовного переїзду — 100% від вартості сервера за 1 місяць, але не менш ніж 30 євро. Наші фахівці допоможуть вам перенести високонавантажений проект безболісно, гладко та без шкоди для працездатності сайту.

Підбиваємо підсумки

Хоча міграція сайту з сервера на сервер — відповідальний та кропіткий процес, наша методика безшовного переїзду дозволяє зробити це без простоїв у роботі сайту та втрати замовлень клієнтів.

Якщо вам потрібна допомога в зміні хостингу, звертайтеся до нас! Ми допоможемо перенести проект будь-якого масштабу безболісно та гладко. Головне: міграція сайту — це зовсім не страшно, якщо довірити її досвідченому та вмілому провайдеру. Тобто, нам. :) Раді вам 24/7!

Метки: , , , , , , , , , , , , ,