Kopya, bir WordPress taşımasını bozan parça nadiren olur. Bozan, kimsenin yazmadığı şeydir: bir cron, bir webhook, eski hostname’i bir satıra işlemiş bir eklenti, hâlâ eski sunucudan çıkan bir posta kutusu. Envanteri taşıma sayarım. Dosya aktarımı ondan sonra gelen kolay öğleden sonradır.
Dokunmadan önce sistemi yazın
Bir dosya hareket etmeden önce yabancı birinin kullanabileceği bir sayfa yazarım. PHP sürümü. Veritabanı boyutu. Cron satırları ve WordPress içindeki zamanlanmış eylemler; aynı liste değildir. Posta: kim gönderir, ne üzerinden, SPF o sunucuyu zaten adlandırıyor mu. Siteyi çağıran ya da sitenin çağırdığı her bütünleşme. Ödeme webhook’ları ve bir CRM eşlemesi alışılmış sürprizlerdir, çünkü kimsenin dışa aktarmadığı bir eklenti ayarında yaşarlar.
Bu dükkân için “çalışmak”ın ne demek olduğunu da yazarım. Bir fiziksel ürünün ödemesi. Bir sanal ürünün ödemesi. Giriş. Parola sıfırlama. İletişim formu, gelmesi gereken e-posta dahil. Katalog ona bağlıysa arama. Yolu adlandıramıyorsam DNS’i değiştirmeye hazır değilim.
| Satır | Neden burada |
|---|---|
| PHP, veritabanı boyutu, nesne önbelleği | Yeni sunucu «ayakta» olup yine yanlış çalışma zamanı olabilir. |
| Cron ve zamanlanmış eylemler | Kaçırılan gece işi, sabah raporu boşalana kadar iyi görünür. |
| Posta yolu | Site açılırken her sipariş postası yeni makinede ölebilir. |
| Webhook’lar ve giden API’ler | Genelde belgelenmemişlerdir ve ana makine adını ilk onlar fark eder. |
| Para kazandıran beş yol | Ana sayfa kontrolü onları yürümez. |
TTL’yi bir gün önce düşürün
Geçişten bir gün önce DNS TTL’yi 300 saniye yapın. Bunu atlarsanız ve yeni sunucu yanlışsa, kitlenin bir kısmı eski kaydı saatlerce tutar. Kısaltmadığınız bir önbelleği acele ettiremezsiniz. Kesinti sırasında bu bekleyişi keşfetmektense bir günü bilerek beklemeyi tercih ederim.
Bir staging adresi gerçek ana makine adı değildir
Yeni sunucuyu kaldırır ve genel DNS hâlâ eski sunucuyu sunarken, hosts dosyasında bir istisna ile yalnızca kendi makinemi ona yöneltirim. Sonra yolları gerçek ad üzerinde yürürüm. Bir staging adresi, üretim alan adını veritabanında saklayan eklentileri gizler. Gerçek ad istekte olana kadar uslu dururlar; sürpriz istemediğiniz an tam da odur.
Kritik yol gerçek ana makine adında yürünmediyse, taşıma test edilmemiştir.
Eski sunucuyu sıcak tutun
Taşıma haftasında eski barındırmayı iptal etmem. En az iki hafta ayakta kalır, salt okunur. Az tutar. Henüz kullanmak zorunda kalmadığım bir yedeğe bağlı olmayan tek geri dönüş budur. Yeni sunucu üçüncü gün terslik çıkarırsa, eski kayıt hâlâ bir şey ifade eder.
Posta, unutulan kontroldür
Site bitmiş görünebilirken her sipariş postası yeni makinede ölüyor olabilir. From adresini, relay’i ve 25. kapının açık olup olmadığını yazarım. Birden fazla sunucuda açık değildir ve çalışan tek yol 587’de kimliği doğrulanmış bir relay’dir. SPF’nin zaten bir kaydı vardır. İkincisini eklemem. İki SPF kaydı birleşmez. İkisi de geçersiz olur ve eskiden gelen posta, bunun dışında iyi giden bir taşımadan sonraki hafta kaybolmaya başlar.
Taşımayı bitmiş saymadan önce yeni sunucudan, kontrol ettiğim bir kutuya bir gerçek sipariş postası ve bir parola sıfırlama gönderirim. “sent” diyen bir günlük satırı, kutudaki bir iletiyle aynı şey değildir. Test olan ikincisidir.
Apex’te ve www’de HTTPS. Sertifika kendi kendine yenilenir. Posta hâlâ çıkar. Beş yol hâlâ tamamlanır. Sonra bir gün hata günlüğüne bakarım, ana sayfaya değil. Ana sayfa, bir izleyicinin sizi çoktan kutladığı yerdir. Günlük, bir webhook’un ödeme sağlayıcısına 404 döndürmeye başladığı yerdir.
Bu şekilde yapılan bir taşıma sıkıcıdır. Mesele budur. Taşınma hakkındaki ilginç hikâyelerin neredeyse hepsi, envanterde eksik kalan bir satırın hikâyesidir.
