Pięć kroków. Stary serwer działa do końca, więc zawsze jest droga powrotu.
Spisujemy wszystko, co działa na starym serwerze: strony, bazy, cron, poczta, certyfikaty, przekierowania i wersję PHP.
Kopiujemy pliki i bazę na nowy serwer. Stary serwer działa dalej, klienci niczego nie zauważają.
Sklep albo strona działa na nowym serwerze pod adresem testowym. Sprawdzamy koszyk, płatności, maile i panel.
Tuż przed przełączeniem dociągamy zamówienia i zmiany z ostatnich godzin, żeby nic nie zginęło.
Zmieniamy DNS z niskim TTL. Stary serwer zostaje jako zabezpieczenie, dopóki ruch w całości nie przejdzie na nowy.
Także duże: sklep z 22 GB plików i bazą 166 tabel przenieśliśmy w około 5 minut kopiowania.
Skrzynki, aliasy i rekordy DNS. Przed zmianą robimy pełną kopię strefy DNS, żeby dało się wrócić.
Zadania cykliczne, wysyłka maili, połączenia z BaseLinkerem, ERP i bramkami płatności.
Certyfikaty, Cloudflare, firewall i kopie zapasowe na nowym serwerze od pierwszego dnia.
Przy zmianie domeny lub adresów ustawiamy przekierowania 301 i zamieniamy stare adresy w bazie.
Przy okazji migracji podnosimy PHP, np. z 7.4 do 8.3, po sprawdzeniu zgodności wtyczek i modułów.
Z hostingu współdzielonego na nasz serwer z Dockerem, nginx i Cloudflare: 22 GB plików, baza 166 tabel i 3426 zamówień, test na subdomenie i finalna synchronizacja.
| Co mierzyliśmy | Przed → po |
|---|---|
| Koszyk | 2,1–2,6 s → 1,1–1,4 s |
| Strona główna, pierwsze wejście (zimny cache) | 4,6–6,8 s → 2,1–2,3 s |
| Karta produktu, pierwsze wejście | 2,6–8,2 s → 1,3 s |
| Dodanie do koszyka | 1,2–1,8 s → 0,5–0,9 s |
| Zapis produktu w panelu | 36,7 s → 0,6 s |
| Rozgrzanie cache, 212 adresów | 396 s → 47 s |
Przy ciepłym cache czasy na obu serwerach były porównywalne. Różnicę widać przy pierwszych wejściach, w koszyku i w panelu, czyli tam, gdzie cache nie pomaga.
| Co przenosiliśmy | Jak to wyglądało |
|---|---|
| Aplikacja Laravel po awarii serwera | odtworzona z kopii w S3, baza ok. 40 GB; przy okazji liczba procesów kolejki zmniejszona z 62 do 12 |
| Strona WordPress na nowej domenie | ok. 414 tys. zamian adresów w bazie, przekierowania 301, PHP 7.4 → 8.3 |
| Poczta dwóch domen | skrzynki przeniesione u nowego dostawcy, wcześniej pełna kopia DNS |
Kopie zapasowe i monitoring od pierwszego dnia
Pomiar szybkości przed i po migracji
Stary serwer jako zabezpieczenie, dopóki nie potwierdzisz, że wszystko działa
Lista przeniesionych elementów: strony, bazy, cron, poczta i DNS
