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:
- Pengembangan
- termasuk integrasi berkelanjutan dan pengujian otomatis
- pengujian rilis
- grup saya menganalisis rilis itu sendiri
- meninjau log instalasi
- pengujian rollback
- QA
- pengujian penerimaan pengguna
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.