Penerapan aplikasi dengan Wayang

10

Saya baru mengenal Wayang dan walaupun saya telah menggunakan sistem * nix selama bertahun-tahun, saya tidak pernah bekerja sebagai sysadmin atau dalam ops.

Saat ini saya sedang menulis manifes wayang untuk hosting satu set aplikasi web (PHP / MySQL / MongoDB, code in git). Jelas Wayang perlu memiliki pengetahuan tentang aplikasi yang sebenarnya karena saya akan membuat virtual host untuk masing-masing, tetapi saya tidak yakin apakah Wayang harus mengelola hal-hal seperti penyebaran kode dan pembuatan basis data.

Apakah Wayang alat yang tepat untuk penyebaran aplikasi? Jika tidak, dapatkah Anda merekomendasikan alat yang lebih tepat?

michaeltwofish
sumber
3
Jika Anda mengikuti ini nanti, semua jawabannya baik, jangan hanya membaca yang saya pilih sebagai jawabannya.
michaeltwofish

Jawaban:

10

Saya akan mencari Capistrano atau Fabric untuk penempatan ..

Anda akan memiliki kontrol yang lebih baik tentang bagaimana penyebaran terjadi dengan dua alat ini.

Mike
sumber
Saya memberi +1 jawaban ini karena memberi dua solusi.
François Beausoleil
Saya menghargai petunjuknya. Kami memiliki Ruby di tempat lain di tumpukan kami, jadi saya akan melihat Capistrano.
michaeltwofish
9

Wayang digunakan untuk penyebaran di banyak organisasi besar, tetapi itu tidak selalu sempurna. Sebagian besar tergantung pada metodologi penempatan Anda. Apakah Anda menggunakan banyak mesin sekaligus? Apakah Anda melakukan penggelaran bergulir?

Beberapa organisasi menggunakan Wayang dengan membangun paket penyebaran mereka dan kemudian memiliki kebijakan menegakkan wayang untuk berada di versi yang tepat dari paket itu. Karena boneka memiliki konsep lingkungan termasuk, Anda dapat menggunakan lingkungan untuk melakukan penyebaran secara bertahap (dev, test, prod misalnya).

Organisasi lain menggunakan boneka untuk mengatur penyebaran dengan menembakkan rsync, checkout git atau beberapa salinan file secara rekursif menggunakan boneka (meskipun itu agak lambat).

Ada alat lain yang cukup bagus yang tersedia untuk ditempatkan juga. Saya telah menggunakan Whiskey Disk di masa lalu (alat ruby ​​sederhana) dan sangat menyukainya.

(Penafian, saya bekerja di Puppet Labs)

stahnma
sumber
Terima kasih. Penyebaran adalah untuk dua server seimbang, saat ini menggunakan rsync manual.
michaeltwofish
4

Jika Anda ingin membuat paket dari aplikasi Anda, Anda bisa melihat ke FPM . Kode ada di GitHub .

François Beausoleil
sumber
Terima kasih atas tipnya. Kami tidak membangun paket dalam hal ini, tetapi FPM terlihat menarik, dan kami dapat menggunakannya untuk tugas lain.
michaeltwofish
4

Menurut saya, wayang bukanlah alat yang tepat untuk menempatkan aplikasi.

Saya menggunakan Jenkins untuk membangun dan menggunakan kode kami untuk menguji dan mengatur.

Jenkins awalnya merupakan server integrasi berkelanjutan, tetapi sangat fleksibel dan modular. Ada banyak plugin untuk Jenkins yang dapat membantu Anda menggunakan aplikasi Anda:

Untuk aplikasi kami, saya telah mengonfigurasi Jenkins dengan Publish over SSH yang menyalin file WAR yang berhasil dibuat ke server tujuan dan kemudian menjalankan skrip yang melakukan pencadangan dan penyebaran. Semoga ini membantu!

pkhamre
sumber
Kami menggunakan Jenkins untuk CI, jadi ini jelas merupakan opsi yang menarik untuk dijelajahi, terima kasih.
michaeltwofish
1

Wayang tidak benar-benar dirancang untuk penyebaran karena ketika ada sejumlah besar file yang terlibat Anda bisa mengalami masalah. Anda dapat melihat capistrano untuk penerapan aplikasi.

http://rubyforge.org/projects/capistrano/

johnshen64
sumber