Saya telah menggunakan boneka untuk penyebaran infrastruktur, dan sebagian besar pekerjaan yang saya lakukan adalah dengan perusahaan-perusahaan Web 2.0 yang sangat menyukai pengembangan yang digerakkan oleh tes untuk aplikasi web mereka. Apakah ada orang di sini yang menggunakan pendekatan uji coba untuk mengembangkan konfigurasi server mereka? Alat apa yang Anda gunakan untuk melakukan ini? Seberapa dalam pengujian Anda?
sumber
Saya pikir Joseph Kern berada di jalur yang benar dengan alat pemantauan. Siklus TDD yang khas adalah: menulis tes baru yang gagal, kemudian memperbarui sistem sehingga semua tes yang ada lulus. Ini akan mudah untuk beradaptasi dengan Nagios: tambahkan cek yang gagal, konfigurasikan server, jalankan kembali semua cek. Kalau dipikir-pikir, aku sudah melakukan ini kadang-kadang.
Jika Anda ingin mendapatkan hard-core, Anda harus menulis skrip untuk memeriksa setiap aspek yang relevan dari konfigurasi server. Sistem pemantauan seperti Nagios mungkin tidak relevan untuk beberapa dari mereka (misalnya, Anda mungkin tidak "memantau" versi OS Anda), tetapi tidak ada alasan Anda tidak dapat mencampur dan mencocokkan yang sesuai.
sumber
Meskipun saya belum dapat melakukan TDD dengan manifes wayang, kami memiliki siklus yang cukup baik untuk mencegah perubahan masuk ke produksi tanpa pengujian. Kami memiliki dua puppetmaster yang dibentuk, satu adalah puppetmaster produksi kami dan yang lainnya puppetmaster pengembangan kami. Kami menggunakan "lingkungan" Boneka untuk mengatur yang berikut:
Pengembang aplikasi kami melakukan pekerjaan mereka pada mesin virtual yang mendapatkan konfigurasi Wayang mereka dari lingkungan pengembangan "pengujian" Puppetmaster. Ketika kita mengembangkan manifestasi Wayang, kita biasanya mengatur VM untuk melayani sebagai klien uji selama proses pengembangan dan mengarahkannya ke lingkungan pengembangan pribadi kita. Setelah kami puas dengan manifes kami, kami mendorongnya ke lingkungan pengujian tempat pengembang aplikasi akan mendapatkan perubahan pada VM mereka - mereka biasanya mengeluh dengan keras ketika ada yang rusak :-)
Pada subset representatif dari mesin produksi kami, ada boneka kedua berjalan dalam mode noop dan menunjuk ke lingkungan pengujian. Kami menggunakan ini untuk menangkap potensi masalah dengan manifes sebelum didorong ke produksi.
Setelah perubahan telah berlalu, yaitu mereka tidak merusak mesin pengembang aplikasi dan mereka tidak menghasilkan output yang tidak diinginkan dalam log dari proses puppetd mesin "noop" mesin produksi, kami mendorong manifes baru ke dalam produksi. Kami memiliki mekanisme rollback sehingga kami dapat kembali ke versi sebelumnya.
sumber
Saya bekerja di lingkungan yang sedang dalam proses migrasi ke model operasi TDD. Untuk beberapa hal seperti skrip pemantauan, ini bekerja dengan sangat baik. Kami menggunakan buildbot untuk mengatur lingkungan pengujian dan menjalankan tes. Dalam hal ini Anda mendekati TDD dari perspektif "Legacy Code". Dalam TDD "Legacy Code" adalah kode yang sudah ada yang tidak memiliki tes. Jadi tes pertama tidak gagal, mereka menentukan operasi yang benar (atau yang diharapkan).
Untuk banyak pekerjaan konfigurasi, langkah pertama adalah menguji apakah konfigurasi dapat diuraikan oleh layanan. Banyak layanan menyediakan beberapa fasilitas untuk melakukan hal ini. Nagios memiliki mode preflight, cfagent tidak beraksi, apache, sudo, bind, dan banyak lainnya memiliki fasilitas serupa. Ini pada dasarnya adalah lint run untuk konfigurasi.
Contohnya adalah jika Anda menggunakan apache dan memisahkan file konfigurasi untuk bagian yang berbeda, Anda dapat menguji bagian-bagian tersebut juga cukup menggunakan file httpd.conf yang berbeda untuk membungkusnya agar dapat berjalan di mesin uji Anda. Kemudian Anda dapat menguji apakah server web pada mesin uji memberikan hasil yang benar di sana.
Setiap langkah di sepanjang jalan Anda mengikuti pola dasar yang sama. Tulis tes, lakukan tes lulus, refactor pekerjaan yang telah Anda lakukan Seperti disebutkan di atas, saat mengikuti jalur ini, pengujian tidak selalu gagal dengan cara TDD yang diterima.
Rik
sumber
Saya yakin tautan berikut ini dapat menarik
cucumber-nagios - proyek yang memungkinkan Anda mengubah suite Mentimun Anda menjadi plugin Nagios dan yang dilengkapi dengan definisi langkah untuk SSH, DNS, Ping, AMQP dan jenis tugas "eksekusi perintah" generik.
http://auxesis.github.com/cucumber- nagios /
http://www.slideshare.net/auxesis/behaviour-driven-monitoring-with-cucumbernagios-2444224
http://agilesysadmin.net/cucumber-nagios
Ada juga beberapa upaya di sisi Wayang / Python hal http://www.devco.net/archives/2010/03/27/infrastructure_testing_with_mcollective_and_cucumber.php
sumber