Migrasi server: cara paling efisien


10

Saya telah ditugaskan untuk memigrasi salah satu situs kami di antara server (dua host berbeda). Kedua lingkungan tersebut adalah linux.

Situs ini mengalirkan video, sehingga server saat ini dipenuhi dengan file media (gambar dan video). Pikiran pertama saya adalah bahwa kami akan menggunakan rsycnc untuk mentransfer segalanya, tetapi saya ingin menjadi seefisien mungkin dan melakukan semuanya secepat mungkin. Saya pikir beberapa dari Anda mungkin memiliki saran tentang cara mempercepat proses, atau jika rsync bahkan merupakan pilihan yang tepat di sini.

Terima kasih sebelumnya. Permintaan maaf atas pengetahuan saya yang terbatas tentang hal-hal sysadmin ...

EDIT: Kami menjalankan pada tumpukan LAMP dasar (centos) dan pindah ke topi merah di rackspace).


1
Tentukan "efisien" dalam konteks ini. Cepat, andal, kuat, atau apa? Dan tidak, Anda tidak dapat memiliki semua itu.
John Gardeniers

1
rsync hampir pasti merupakan pilihan terbaik untuk memigrasi data; masih ada konfigurasi dan kemungkinan database dll yang telah disebutkan orang lain yang memiliki opsi lain yang lebih baik.
fukawi2

Jawaban:


12

Ada banyak hal yang terlibat dalam "migrasi aplikasi dari satu server ke server lain" - benar-benar tidak ada cara kita dapat menjawab ini secara komprehensif untuk semua kasus penggunaan. ANDA dapat menjawabnya dengan cukup komprehensif untuk pengaturan Anda, jika Anda mendekatinya secara sistematis:

  1. Buatlah daftar semua yang dibutuhkan aplikasi Anda.
    • Server Web?
    • Server Database?
    • Server Surat?
    • Bahasa scripting (PHP, Ruby / Rails, Perl, sesuatu yang lain)?
    • Program tambahan (ImageMagick, dll.)?
  2. Buat daftar item konfigurasi penting.
    • Alamat IP, Netmask, Gateway, dll.
    • Server DNS
    • Item khusus aplikasi (direktori temp, dll.)
  3. Ambil daftar dari (1) dan (2) dan tulis garis besar migrasi.
    Ini harus mencakup hal-hal seperti menginstal dan mengkonfigurasi perangkat lunak / paket yang Anda butuhkan, membuang dan memuat basis data, dll.
  4. UJI MIGRASI
    Salin semuanya seperti yang Anda lakukan jika server akan ditayangkan, tetapi jangan membuatnya hidup. Menempelnya di jaringan yang terisolasi ketika Anda selesai dan menguji semuanya.
    Jika Anda memiliki prosedur pengujian standar untuk aplikasi Anda, Anda harus menjalankannya di server yang dimigrasi.
  5. Jika semuanya tidak berjalan dengan sempurna, goto (3), perbarui (1) dan (2) kemudian revisi rencana Anda.
  6. Ketika migrasi tes berjalan dengan sempurna, lakukan migrasi yang sebenarnya.
    Bergantung pada seberapa rumit proses migrasi, ini mungkin berarti menjatuhkan dan memuat ulang basis data, atau Anda mungkin ingin menghapus mesin dan melakukan semuanya dari awal.

Setelah selesai, Anda akan memiliki daftar periksa untuk aplikasi khusus Anda, di lingkungan khusus Anda. Daftar periksa itu mungkin akan berevolusi saat Anda mengembangkan aplikasi, tetapi itu bisa berfungsi sebagai titik awal dalam 3-5 tahun ketika Anda harus bermigrasi lagi.

Hal lain yang perlu dipertimbangkan termasuk menerapkan manajemen konfigurasi ala Puppet atau Chef.
(Jika Anda akan menjadi "sysadmin", Anda harus mempertimbangkan mereka, jika tidak, sampaikan kepada orang / tim yang bertanggung jawab.)


5

Nah, Anda memiliki konfigurasi server dan konten server untuk ditangani, dan sangat tidak mungkin teknik yang sama akan bekerja untuk keduanya.

Apakah Anda memiliki database? Jika demikian, itu perlu dipindahkan juga. Rsync berfungsi bagus untuk konten statis. Jalankan sekali saja untuk mendapatkan daftar data Anda dipindahkan, dan kemudian katakan setiap beberapa jam untuk menjaga semuanya tetap sinkron sampai selesai. Pastikan untuk menonaktifkan cron rsync sebelum migrasi!

Sehubungan dengan konfigurasi, kami tidak tahu apa yang sedang Anda jalankan, jadi tidak bisa benar-benar memberikan rekomendasi.


Terima kasih! Kami saat ini berjalan di CentOS dengan tumpukan Apache / PHP / MySQL (cukup standar) dengan WHM. Kami memindahkan semuanya ke redhat linux di Rackspace.
Ghost Code
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.