Saat ini saya mengelola sekelompok server PHP-FPM, yang semuanya cenderung tidak sinkron satu sama lain. Aplikasi yang saya gunakan di atas server aplikasi (Magento) memungkinkan admin untuk memodifikasi berbagai file pada sistem, tetapi sekarang situs tersebut dalam kumpulan yang diatur untuk memodifikasi file hanya memodifikasinya pada satu contoh (pada salah satu server aplikasi) dari berbagai mesin di cluster.
Apakah ada aplikasi open-source untuk Linux yang memungkinkan saya untuk menjaga semua server ini tetap sinkron? Saya tidak punya masalah dengan membuat instance VM kecil yang dapat mendengarkan perubahan dari mesin untuk disinkronkan. Secara teori, aplikasi yang sempurna akan memiliki klien kecil yang berjalan pada setiap mesin untuk disinkronkan, yang akan berbicara dengan server master yang kemudian akan memutuskan bagaimana / apa yang akan disinkronkan dari setiap mesin.
Saya sudah memeriksa kemungkinan menjalankan file server terpusat, tetapi sayangnya server aplikasi saya tersebar antara EC2 dan mesin fisik, yang membuat ini tidak mungkin dilakukan. Karena ada beberapa server aplikasi (beberapa di antaranya dibuat secara dinamis tergantung pada beban situs), hanya menyiapkan tugas cs rsync tidak efisien karena tugas cron harus dimodifikasi pada setiap mesin untuk mengirim file satu sama lain mesin di cluster, dan itu hanya akan menjadi sejumlah besar transfer data yang tidak perlu / koneksi ssh.
sumber
Jawaban:
Anda mungkin ingin mempertimbangkan untuk menggunakan Wayang atau CFEngine untuk membuat perubahan pada server. Alat-alat seperti ini memungkinkan Anda membuat perubahan terkontrol ke semua server. Mereka banyak membantu menjaga konfigurasi beberapa server tetap sinkron.
sumber
Lihatlah GlusterFS. AFAIK tersedia di EC2.
Ini replikasi / mirroring berbasis file, dan cukup mudah untuk setup. File berada di direktori lokal di sistem file lokal dari node.
Khususnya dalam kasus Anda, Anda dapat mengatur mirror antara semua server aplikasi dan dengan aman mengakses direktori lokal ini untuk membaca agar dapat bekerja di sekitar overhead FUSE (tetapi Anda harus menulis melalui mount glusterfs, sehingga file direplikasi pada semua node).
sumber
Menjadi sangat akrab, saya tidak mengetahui adanya instalasi Magneto yang membuat perubahan pada file atau direktori melalui penggunaan normal selain
Bagaimanapun, sistem file jaringan seperti NFS tidak akan menjadi pilihan yang solid - kecuali Anda memiliki pengalaman luas dalam mengamankan dan menyetelnya melalui WAN.
Replikasi blok jaringan, mis. Gluster / DRBD juga bukan pilihan yang baik. Performa lemah untuk Gluster (dan kompleks untuk dikonfigurasikan) dan DRBD harus menggunakan sistem file multi-master seperti OCFS2 - tidak ideal.
Rilis Magento yang lebih baru juga mendukung penyimpanan DB untuk media, untuk alasan yang tepat ini - meskipun ini di luar yang kurang ideal dan hanya Bukan Ide Yang Baik.
Perangkat lunak kontrol versi (Git / SVN) akan memenuhi persyaratan tingkat kode Anda. Anda dapat dengan mudah menambahkan kait ke mesin pementasan Anda untuk melakukan tarikan ganda tanpa sentuhan pada sistem produksi. Tetapi tidak akan memenuhi untuk upload admin (gambar dll.).
Masuk akal jika FAR lebih praktis untuk mengarahkan ulang semua lalu lintas admin dan peluncuran produksi ke satu node - kemudian replikasi dari sumber itu ke node yang tersisa.
Lipsync adalah aplikasi yang akan memenuhi tuntutan "gaya Dropbox" Anda dan melakukan perubahan dan dan bila perlu. Kami telah menggunakannya dengan kelompok Magento pada beberapa kesempatan.
sumber
./media/catalog/product/cache
di semua server.