Saya berencana untuk mendorong aplikasi web baru ke Layanan Aplikasi Web Azure (sebelumnya Situs Web Azure). Saya ingin memanfaatkan slot penempatan untuk dapat menguji penempatan saya sebelum mendorongnya ke produksi. Tidak masalah selama tidak ada perubahan skema DB yang diperlukan. Tetapi jika ada perubahan skema saya tidak bisa memiliki dua versi perangkat lunak yang beroperasi pada versi db yang sama. Karena saya menggunakan Migrasi EF, dorongan ke slot pementasan akan langsung menghasilkan pembaruan DB ke versi terbaru.
Jadi pertanyaan saya adalah, apakah ada penggunaan slot penempatan saat migrasi db diperlukan?
Bagaimana ini dilakukan untuk penyedia SaaS besar. Apakah mereka melakukan migrasi DB secara instan dengan versi baru? Itu pasti akan menyebabkan beberapa downtime.
Saya hanya bisa memikirkan solusi yang agak rumit untuk masalah ini, adakah yang sederhana?
Jawaban:
Rilis zero-downtime menggunakan slot Azure App Service dan satu database tunggal yang dibagikan oleh Staging dan Production dimungkinkan - tetapi Anda perlu memastikan bahwa semua perubahan database kompatibel dengan mundur, sehingga versi aplikasi web saat ini dan baru dapat berjalan secara bersamaan di slot Pementasan dan produksi.
Beberapa aturan yang memastikan ini berfungsi:
Saat Anda perlu melakukan perubahan yang merusak, seperti mengganti nama atau menjatuhkan kolom, Anda perlu 2 rilis untuk melakukan ini:
Walaupun ini terdengar agak rumit, dalam praktiknya Anda tidak akan sering melakukan perubahan destruktif.
sumber
sudahkah Anda melihat item konfigurasi khusus slot? Di bawah WebApp / Pengaturan / Pengaturan Aplikasi Anda dapat menentukan pengaturan untuk aplikasi web tetapi juga menentukan apakah itu hanya berlaku untuk slot ini.
Karenanya, Anda dapat memiliki string koneksi spesifik slot untuk slot staging Anda dan menerapkan migrasi pada slot swapping juga.
sumber