Saya tidak yakin apakah ini cara yang tepat untuk mengajukan pertanyaan ini, tetapi pada dasarnya inilah yang ingin saya lakukan:
1.) Dorong perubahan ke situs di IIS.
2.) Jangan mengganggu pengguna.
3.) Dapat memutar kembali dengan mudah.
Jadi, ada beberapa hal yang saya tahu harus terjadi:
1.) Keluar dari sesi Proc - ditangani
2.) Keluar dari cache Proc - ditangani
Jadi pertanyaan yang tersisa:
1.) Bagaimana saya menjaga agar tidak mengganggu pengguna? Jika saya hanya mengunggah file ke bin, aplikasi mendaur ulang dan membutuhkan waktu 10+ detik untuk kembali online
2.) Bagaimana cara saya memutar kembali dengan mudah?
Saya berpikir solusi yang mungkin adalah membuat dua situs didirikan di IIS, satu publik dan satu pribadi. Unggah menjadi pribadi dan menjadi hangat. Setelah pemanasan, situs-situs tersebut ditukar. Kembalikan hanya memerlukan swapping ke pribadi tanpa mengunggah.
Ini sepertinya teori, tetapi saya tidak yakin dengan mekanika. Ada ide?
Jawaban:
Inilah cara saya mendekati masalah ini - perlu diingat saya belum pernah melakukan ini sebelumnya, hanya konsep yang saya uji sedikit di lingkungan dev saya. Anda harus dapat mengatur kerangka kerja yang cukup kuat menggunakan ini dan beberapa skrip dalam bahasa pilihan Anda. Pada dasarnya kita akan mengatur lingkungan penyeimbangan beban ghetto dan menggunakannya untuk beralih antara situs baru dan situs lama.
Untuk mendapatkannya, Anda perlu:
Instal ARR untuk memulai.
Setup 3 situs web di IIS:
http://192.168.1.1/
. Ini juga situs ARR. Cukup siapkan direktori kosong untuk menunjuk ini, dan letakkan di kumpulan aplikasinya sendiri. Siapkan kumpulan aplikasi untuk tidak kehabisan waktu sesuai dengan instruksi ini .http://192.168.1.2:8080
danhttp://192.168.1.3:8080
. Mereka juga harus berada di kumpulan aplikasi mereka sendiri, dan arahkan ke direktori berbeda pada sistem file (tetapi biasanya kedua direktori memiliki konten yang sama)Setelah menginstal ARR, akan ada kategori baru di IIS Manager yang disebut "Server Farms" - klik kanan itu dan buat farm baru.
{SERVER_PORT}
tidak cocok dengan 8080Pada titik ini Anda memiliki dasar-dasar tentang apa yang kami butuhkan untuk memenuhi permintaan Anda. Jika Anda pergi ke
http://192.168.1.1/
Anda akan mendapatkan situs web Anda baik dari Situs 1 atau Situs 2, tetapi akan benar-benar mulus bahwa ada situs lain.Sekarang yang dapat Anda lakukan ketika Anda ingin menggunakan versi baru aplikasi Anda adalah:
Alat Penerapan Web mulai digunakan saat Anda berbicara tentang keinginan untuk skrip semua ini. Itu membuatnya sangat mudah untuk membuat paket untuk aplikasi Anda dan menyebarkannya dari baris perintah. Anda juga dapat mengembalikan paket itu dengan mudah jika ada masalah. ARR juga bisa skrip menggunakan
Microsoft.Web.Administration
dll.Satu hal lagi - jika Anda benar-benar menggunakan Windows 2008 R2 (yaitu IIS 7.5) lihatlah modul Aplikasi Pemanasan - itu akan membuat bagian pemanasan ini juga lebih mudah bagi Anda.
sumber
MattB memukulnya keluar dari air. +1 Saya akan membalas dengan lebih detail, tetapi saya tidak ingin mengambil poinnya. Saya akan menambahkan apa yang dia katakan.
Saya memiliki pengaturan yang mirip dengan apa yang dia gambarkan, dan itu bekerja dengan baik. ARR adalah cara untuk pergi, bahkan di satu server.
Namun, beberapa hal akan saya tambahkan.
Buat 2 situs, seperti yang disarankan Matt. Sebut mereka sesuatu seperti yoursite.com01 dan yoursite.com02.
Buat 2 aturan penulisan ulang URL. Satu untuk www.domainanda.com dan satu lagi staging.domainanda.com. Untuk produksi, gunakan {HTTP_HOST} dengan nilai (^ www.domainanda.com $) | (yourIP). (atau ikatan apa pun yang Anda inginkan) Untuk pementasan, gunakan {HTTP_HOST} dengan nilai (^ staging.yourdomain.com $). Hubungi aturan yoursite.com dan staging.yoursite.com.
Bind Rule = yoursite.com ke situs = yoursite.com01 dan aturan = staging.yoursite.com ke situs = yoursite.com02.
Setup FTP di staging.yoursite.com.
Lalu lintas produksi sekarang akan menuju Aturan = staging.yoursite.com dan Situs = yoursite.com01. Menguntit sebaliknya.
Anda dapat menggunakan untuk pementasan di titik mana pun, uji, pra-spinup, tes orang lain, dll. Lakukan di siang hari, itu tidak masalah. Sebarkan setiap kali ke akun FTP yang sama. Bekerja sangat baik dengan membangun server.
Kemudian, ketika Anda siap untuk tayang, cukup buat 3 perubahan: - pindahkan pengikatan FTP dari yoursite.com02 ke yoursite.com01 - ubah URL Rewrite Rule yoursite.com untuk mengarah ke yoursite.com02 - ubah pementasan URL Rewrite Rule. yoursite.com untuk menunjuk ke yoursite.com01 Anda
Sekarang Anda memiliki Zero downtime, switching instan, dengan fungsionalitas roll-back langsung!
Satu-satunya hal yang perlu Anda pertimbangkan adalah keadaan sesi Anda di luar proses. Pastikan server negara Anda menerima kedua id situs sehingga Anda tidak kehilangan status sesi selama swap.
Perhatikan juga bahwa ini hanya web dan bukan database.
Untuk skrip, gunakan Editor Konfigurasi. Buat perubahan yang Anda inginkan dan kemudian klik "Hasilkan Script". Ini akan memberi Anda kode C #, appcmd atau AHAdmin.
Saya sudah memiliki ini di tempat selama beberapa bulan dengan ujung halaman web untuk bertukar contoh dan saya tidak pernah melihat ke belakang. Itu membuat penyebaran jadi lebih menyegarkan dibandingkan dengan penyebaran tradisional.
sumber