Microsoft Azure mengharuskan aplikasi menggunakan dua contoh di beberapa pusat data untuk mencapai SLA "ketersediaan tinggi" mereka dan memastikan situs Anda tidak turun untuk pemeliharaan rutin. Mereka bahkan memberi tahu Anda pasangan pusat data mana yang tidak akan pernah pergi untuk pemeliharaan pada saat yang sama.
Itu semua baik dan bagus, tetapi bagaimana Anda melakukan ini dengan mudah dalam praktek untuk aplikasi seperti WordPress dengan database MySQL pada VM yang sama? Saya tidak asing dengan memuat penyeimbangan antara dua VM tetapi setup replikasi database menghindari saya. Kami tidak ingin dua versi data yang bisa keluar dari sinkronisasi. Replikasi MySQL tampaknya memerlukan pengaturan master-slave yang akan gagal menyinkronkan perubahan ke master DB jika pengguna mendarat di instance slave.
Apakah saya hanya salah memahami konsep ini? Bantuan apa pun sangat kami hargai!
Jawaban:
Berita Buruk: Basis inti open source Wordpress memang membuat beberapa asumsi tentang dijalankan di server tunggal (konten-wp, unggahan pengguna, dan perpustakaan media untuk menyebutkan beberapa)
Berita Baik: Hampir semua penyedia cloud (termasuk Azure) memiliki abstraksi yang memungkinkan Anda mengatasi keterbatasan desain ini.
Pada dasarnya, Anda akan mengatasi masalah berikut:
Mengelola sesi JIKA Anda membiarkan pengguna masuk ke situs. Jika demikian, Anda harus memastikan kapan mereka masuk ke server 1 bahwa semua permintaan masa depan mereka dialihkan ke server itu (sesi tempel) atau tidak masalah server mana yang mereka akses karena sesi dikelola melalui mekanisme lain (via Zend Server Session Clustering , misalnya).
Mengelola Login Admin JIKA Anda membiarkan beberapa pengguna masuk ke back-end untuk mengelola konten (mirip dengan di atas).
Memilih Sistem DB yang JUGA Sangat Tersedia. Tidak ada gunanya memiliki dua server ujung depan jika DB Anda menyebabkan seluruh sistem lumpuh. Anda harus memanfaatkan replikasi MySQL Master / Slave melalui ClearDB atau memodifikasi WordPress melalui plugin untuk memanfaatkan SQL Server sehingga Anda dapat menggunakan sistem pengelompokan asli . Ini berarti Anda membutuhkan setidaknya 4 VM jika Anda ingin mengelola sendiri layer DB (2 x App & 2 x DB). Begini tampilannya:
CATATAN - untuk memastikan kegagalan yang andal & melindungi keamanan sistem, subnet jaringan KETIGA biasanya digunakan untuk menghubungkan dua node basis data satu sama lain melalui saluran pribadi yang terpisah dari jaringan komunikasi lain yang digunakan server aplikasi untuk berbicara dengan database & server aplikasi gunakan untuk berkomunikasi dengan dunia luar.
Mengaktifkan Koneksi Pooling untuk memaksimalkan kinerja dan keandalan koneksi database server aplikasi Anda.
Memanfaatkan plugin Caching seperti W3 Total Cache atau Super Cache untuk meminimalkan beban pada server ujung depan.
Panduan berikut menawarkan spesifik tentang bagaimana Anda dapat mengatasi setiap tantangan di atas. Ada beberapa cara untuk menangani masing-masing dalam Azure, jadi terserah kepada Anda untuk memutuskan bagaimana Anda ingin menyerang setiap tantangan kemudian berurusan dengan kendala masing-masing pilihan yang dikenakan saat Anda bekerja naik turun tumpukan.
sumber