Saya pikir saya sudah menyelesaikan ini, tetapi setelah membaca Continuous Delivery (buku bagus) saya agak bingung. Mereka berbicara tentang memiliki server untuk:
- pengembangan
- berbagai bentuk tes otomatis
- pengujian penerimaan pengguna (UAT) - yaitu duduk bersama klien dan menunjukkannya kepada mereka, dan membiarkan mereka melakukan pengujian eksplorasi. Penguji in-house juga bisa menggunakan pengaturan ini untuk pengujian eksplorasi.
- pementasan
- produksi.
Saya selalu berpikir pementasan sebagai menyediakan fungsi UAT, tetapi mereka tampaknya memiliki pementasan sebagai tingkat yang terpisah. Jadi dalam skema itu, fungsi apa yang disediakan oleh server pementasan?
deployment
testing
release-management
Hamish Downer
sumber
sumber
Jawaban:
Pementasan akan menempatkan sistem produk lengkap pada tempatnya, tetapi belum benar-benar menggunakannya. Ketika mereka mulai digunakan akan menjadi "produksi". Anda harus meletakkan semuanya di tempatnya karena akan digunakan, uji, lalu balik saklar.
UAT umumnya menggunakan lingkungan "pengujian" yang sangat berbeda dari perangkat keras / lunak / konfigurasi yang akan digunakan dalam produksi.
Misalnya, tempat saya bekerja, kami meminta pelanggan menguji semuanya dalam lingkungan VM yang berjalan di server kami. Ketika sistem mereka ditayangkan, itu akan berjalan pada perangkat keras mereka, di fasilitas mereka, mungkin berintegrasi dengan sistem mereka yang ada; itu sama sekali tidak ada hubungannya dengan server kami atau lingkungan pengujian (kecuali bahwa kode dan beberapa konfigurasi telah disalin dari sana ...)
sumber
Saya bekerja pada tim manajemen rilis di perusahaan internet yang sangat besar. Kami pada dasarnya menggunakan proses yang telah Anda uraikan di atas, dan kami memilih proses itu dengan sengaja. Dalam metodologi kami, pementasan berfungsi sebagai mekanisme percabangan untuk tingkat akhir pengujian dalam produksi.
Jelas Anda ingin melakukan semua pengujian sebelum mulai berproduksi, tetapi dalam lingkungan yang besar dan kompleks dengan banyak pengguna, itu adalah tujuan yang sangat sulit untuk dicapai. Secara khusus, hampir tidak mungkin untuk memuat perangkat lunak uji secara memadai dalam QA. Pengujian fungsional jauh lebih mudah untuk diotomatisasi daripada pengujian beban. Ketika Anda memiliki ribuan pengguna yang menghantam server Anda, banyak hal gagal dengan cara yang aneh dan sulit diprediksi.
Jadi inilah yang kami lakukan:
Itulah titik di mana kita bercabang antara pementasan dan produksi. Kami menggunakan model kereta untuk rilis, dengan kereta baru dimulai setiap beberapa minggu. Bahkan kereta bernomor masuk ke server pementasan (yang sedang dalam produksi). Kereta bernomor ganjil tidak.
Di antara kereta genap, para pengembang memiliki kemampuan untuk mendorong perubahan individu ke server pementasan ( setelah perubahan tersebut diuji oleh QA tentu saja). Ini memungkinkan mereka untuk memvalidasi bahwa perangkat lunak mereka berkinerja seperti yang diharapkan dalam lingkungan produksi nyata. Ini umumnya dicadangkan untuk komponen yang dianggap berisiko lebih tinggi, kami tidak mendorong setiap bagian kecil ke panggung.
Kemudian, semua orang mengerti bahwa ketika kereta api berikutnya dimulai, itu akan menghapus apa yang ada di server pementasan dan mengaturnya kembali ke garis dasar kereta. Pengembang baik memastikan bahwa perubahan mereka naik kereta, atau memutuskan mereka belum siap untuk penggunaan umum, dalam hal ini perubahan itu baru saja terhapus di server panggung.
Singkatnya, jawaban singkat (setidaknya bagi kami) adalah bahwa tidak mungkin untuk sepenuhnya menguji sistem yang kompleks di QA. Pementasan menyediakan cara yang aman untuk melakukan pengujian produksi terbatas.
Pada catatan terkait, inilah slide saya dari presentasi yang saya berikan tentang bagaimana proses rilis kami bekerja.
sumber
Penjelasan paling sederhana untuk pementasan adalah menguji proses penyebaran Anda dan menguji menggunakan sumber data nyata. Beberapa sistem menggabungkan pementasan dengan lingkungan pengujian mereka, tetapi untuk sistem skala besar proses penyebaran bisa sangat kompleks atau mereka mungkin langkah-langkah pengujian tambahan yang diperlukan setelah Anda terhubung ke sumber data langsung / produksi. Dalam hal ini lingkungan pementasan memungkinkan Anda menguji proses penyebaran Anda dan memeriksa bug menit terakhir menggunakan data langsung, dan setelah hal-hal telah diverifikasi sebagai bekerja, Anda dapat dengan cepat mengubah lingkungan panggung ke lingkungan produksi.
Contohnya adalah Windows Azure, yang membutuhkan 5-25 menit untuk menggunakan versi baru, tetapi Anda dapat menggunakan ke lingkungan pementasan, melakukan tes dan kemudian langsung menukar produksi dan lingkungan pementasan .
sumber
Saya baru saja menemukan artikel ini tentang pementasan lingkungan yang mengatakan
Artikel ini layak dibaca secara penuh.
sumber