Apa pertanyaan yang tepat untuk ditanyakan saat memutuskan apakah akan menggunakan Chef atau Wayang?

16

Saya akan memulai proyek baru yang akan, sebagian, memerlukan penggelaran banyak simpul identik dari sekitar tiga kelas yang berbeda:

  • Node data , yang akan menjalankan instance dari MongoDB.
  • Node aplikasi , yang akan menjalankan instance dari aplikasi Ruby on Rails dan aplikasi ASP.NET MVC yang lebih lama.
  • Pemrosesan node , yang akan menjalankan pekerjaan yang diminta oleh aplikasi node.

Semua node akan berjalan pada instans Ubuntu 10.04, meskipun mereka akan menginstal paket yang berbeda.

Saya memiliki sedikit keakraban dengan Chef dari proyek sebelumnya, meskipun saya tidak menganggap diri saya seorang ahli. Dalam upaya untuk melakukan uji tuntas, saya telah menyelidiki kemungkinan alternatif. Kami memiliki sejumlah orang di rumah yang sudah lama menjadi pengguna Wayang, dan mereka mendorong saya untuk melihatnya.

Saya mengalami kesulitan mengevaluasi kedua pilihan itu. Chef dan Wayang berbagi banyak terminologi domain yang sama - paket , sumber daya , atribut , dan sebagainya, dan mereka memiliki sejarah bersama yang bermula dari mengambil pendekatan berbeda untuk masalah yang sama. Jadi dalam beberapa hal mereka sangat mirip. Tetapi banyak informasi pembanding yang saya temukan, seperti artikel ini , agak ketinggalan jaman.

Jika Anda memulai proyek ini hari ini, pertanyaan apa yang akan Anda tanyakan pada diri sendiri untuk memutuskan apakah Anda harus menggunakan Chef atau Wayang untuk manajemen konfigurasi? (Catatan: Saya tidak ingin menjawab pertanyaan "Haruskah saya menggunakan Chef atau Wayang?")

John Feminella
sumber
pembaruan pada tahun 2016: Ada migrasi besar-besaran dari Chef dan Wayang. Mereka tidak disarankan untuk proyek baru. Pertarungan itu dimungkinkan vs garam sekarang. (mungkin lebih mudah untuk mengatur dan memulai + bekerja lebih dari SSH, garam lebih mudah setelah infrastruktur menjadi besar dan kompleks + lebih cepat)
user5994461

Jawaban:

12

Baik Boneka maupun Koki dapat melakukan apa yang Anda inginkan dengan baik. Yang terbaik adalah mulai melakukan apa yang Anda coba lakukan dan memutuskan alat mana yang paling Anda sukai. Saya pikir pertanyaan besar yang harus Anda tanyakan adalah:

Apakah Anda menginginkan DSL? - Resep koki ditulis dalam ruby, boneka memiliki DSL. Apakah DSL itu pilihan baik atau buruk adalah salah satu perbedaan terbesar antara koki dan boneka. Tautan yang Anda poskan ke perbandingan konsultasi bitfield memiliki beberapa komentar bagus tentang hal ini yang harus Anda baca jika belum. Saya juga menemukan posting blog ini berguna, pastikan Anda membaca komentar juga.

Apakah Anda tahu ruby? - Jika Anda tidak tahu ruby, memulai dengan koki bisa lebih sulit atau memerlukan investasi waktu yang lebih besar karena Anda perlu belajar bahasa baru. Wayang memiliki bahasa sendiri yang mudah untuk memulai. Dimulai dengan wayang 2.6, manifes dapat ditulis dalam ruby juga.

Di Open Source Bridge pada tahun 2009, mereka memiliki panel penulis dan perwakilan koki, boneka, bcfg2, cfengine, dan automateit yang dapat Anda tonton di bliptv yang memiliki 1,75 jam diskusi tentang utilitas manajemen konfigurasi.

Opscode / Chef berbicara tentang perbedaan antara itu dan boneka di FAQ mereka juga.

Saya pikir Anda tidak mengetahui pertanyaan yang tepat untuk diajukan mungkin berasal dari Anda yang tidak memiliki terlalu banyak pengalaman bekerja dengan salah satu dari mereka, begitu Anda mulai menggunakannya, Anda akan mulai melihat perbedaan di antara mereka. Saya sarankan datang dengan beberapa masalah kehidupan nyata yang akan Anda pecahkan dengan koki atau boneka, kemudian mulai mencoba menyelesaikannya dan lihat apa yang Anda suka / tidak suka tentang mereka. Dengan Opscode / Chef, mereka menawarkan solusi yang di -host yang dapat Anda atur 5 node secara gratis untuk memulai.

Mark McKinstry
sumber
3
Chef memiliki DSL juga, perbedaannya adalah bahwa itu adalah Ruby DSL internal, sedangkan DSL Puppet adalah eksternal. Puppet sejak itu menambahkan DSL murni-Ruby juga baru-baru ini, tetapi tidak dianjurkan atau direkomendasikan oleh pengguna wayang, maupun Puppet Labs.
jtimberman
1
"Anda ingin tahu ruby" adalah pertanyaan nomor 1. Saya masih berharap untuk sistem berbasis python. :)
Sirex
Artikel blog yang ditautkan adalah permulaan yang sangat membantu bagi orang yang ingin membandingkan koki dan boneka.
Clinton
6

Biarkan saya katakan dulu - jika Anda tidak menggunakan Wayang atau Koki; tidak ada jawaban yang salah. Entah akan jauh lebih baik daripada apa yang Anda lakukan sekarang.

Sebagai pemimpin tim, saya membuat pilihan untuk Wayang untuk tim saya. Jika saya adalah tim yang terdiri dari diri saya sendiri, saya akan memilih Chef sebagai gantinya. Inilah alasannya:

Sementara keahlian saya tentu dalam administrasi sistem, latar belakang saya dalam pemrograman. Untuk itulah saya bersekolah, dan saya tidak asing dengan menulis aplikasi lengkap (bukan hanya skrip). Meskipun saya tidak tahu Ruby, saya ingin, dan Chef akan menjadi alasan yang bagus untuk belajar keduanya.

Namun, tim saya penuh dengan administrator sistem dengan sedikit pengalaman pemrograman, selain skrip shell sesekali. Bagi mereka, menulis modul boneka sama seperti menulis file konfigurasi. Ini deklaratif, tidak ada iterator, dan secara keseluruhan lebih ramah admin.

Tim yang penuh dengan pengembang yang melakukan kegiatan sysadmin cenderung memilih Chef. Karena DSL Puppet bersifat deklaratif, urutan (bahkan di dalam file individual) tidak masalah, dan itu membuat frustrasi banyak yang menggunakan bahasa pemrograman yang lebih tipikal.

Saya juga sering mendengar bahwa Chef jauh lebih ramah cloud daripada Puppet, tetapi Puppet telah membuat fokus dengan produk Puppet Enterprise mereka pada tahun lalu. Saya tidak dapat berbicara dari pengalaman tentang kemampuan cloud salah satu produk.

Karena kualitas-kualitas di atas, stereotip (dan seringkali benar) adalah Anda akan menemukan Wayang menjadi lebih meresap di perusahaan pada mesin fisik, di mana Chef mengatur para startup di awan. Tentu saja ada pengecualian, tetapi apa yang saya lihat tentu mendukung stereotip itu.

Jika ini adalah tim satu orang, maka evaluasi keduanya dan pilih yang mana yang Anda suka. Namun, jika seperti saya Anda memiliki tim orang, pastikan bahwa Anda tetap memprioritaskan kebutuhan tim Anda di atas preferensi pribadi, itu akan menyelamatkan Anda nanti ketika Anda mencoba dan mendapatkan dukungan.

Justin Ellison
sumber
2
Komentar Justin adalah pendekatan terbaik. Secara pribadi saya lebih suka koki karena itu adalah pilihan CM pertama yang saya pelajari tetapi dalam praktik dan memperhitungkan kekuatan tim yang ada di boneka saya cenderung pergi dengan boneka dengan proyek infrastruktur murni sedangkan tim aplikasi sebagian besar DevOps lebih condong ke koki. Gunakan apa yang terbaik dan praktis untuk kebutuhan Anda.
5

Pengungkapan penuh, kami tidak menggunakan salah satu dari ini, meskipun kami mengevaluasinya secara internal ketika mencoba untuk memutuskan sistem manajemen konfigurasi. Jadi, jangan anggap aku ahli tentang apa saja yang terjadi.

  • Seberapa mudah untuk mendapatkan setup instance?
  • Pengaturan apa yang diperlukan pada klien untuk berkomunikasi dengan server?

Dan seterusnya. Tetapi Anda dapat menjawab sendiri pertanyaan-pertanyaan ini dengan sangat mudah: aturlah! Mendapatkan sampel dan menjalankannya adalah beberapa jam dari waktu Anda untuk setiap produk, dan mengingat bahwa apa pun yang Anda gunakan untuk ini kemungkinan akan digunakan untuk waktu yang lama, waktunya sangat berharga. Anda tidak hanya dapat merasakan bagaimana mereka menangani hal-hal platform spesifik (yaitu, berbasis Debian dan apt, berbasis RPM dan yum), tetapi itu pasti akan membantu Anda untuk merasakan aplikasi.

Perlu diingat juga, bahwa semua fitur di dunia tidak akan menggantikan antarmuka yang sulit, ditambah lagi, itu dapat memaparkan masalah yang spesifik untuk infrastruktur Anda - yaitu, apa yang terjadi jika file konfigurasi diperbarui dalam urutan yang berbeda dari yang diharapkan?

Jadi itu saran saya; Koki dan Wayang tidak terlalu sulit untuk mendapatkan satu server dan satu atau dua klien setup, dan akan memberikan Anda pengalaman langsung pada keduanya. Selain itu, jika Anda mulai mengaturnya dan menyadari bahwa ini sangat menyebalkan, Anda sudah memiliki pengetahuan sebelum melakukannya.

Andrew M.
sumber
5

Jika ada orang di proyek Anda yang sudah memiliki pengalaman dengan Wayang, maka saya sarankan Anda hanya menggunakan Wayang.

Koki dan Wayang cukup mirip, dan kedua proyek sama-sama berkualitas tinggi. Jika Anda memiliki akses ke orang-orang yang sudah memiliki pengalaman Wayang, gunakan saja Wayang.

robbyt
sumber
2

Di atas jelas merupakan pedoman yang baik, saya juga ingin mengajukan pertanyaan umum ini setiap kali saya mempertimbangkan ketergantungan pihak ketiga yang baru.

  • Berapa umur proyek?
  • Seberapa aktif komunitas (Mailing list, bug, irc dll)?
  • Apakah dokumentasi yang solid dan baik dilengkapi dengan praktik standar?

Ini adalah indikator yang baik dari keberhasilan keseluruhan proyek dan agak dapat memprediksi rentang hidup.

ScottZ
sumber
Usia mudah atau sulit untuk dinilai: Koki dimulai oleh perusahaan yang telah menggunakan Wayang tetapi tidak puas dengan hal-hal tertentu. Ini beberapa tahun lebih baru, tetapi dapat dilihat sebagai garpu.
freiheit
0

Cobalah untuk menemukan orang-orang yang telah menggunakan Chef atau Wayang selama lebih dari beberapa bulan dan bertanya kepada mereka tentang pengalaman mereka.

Mike Bailey
sumber
0

Bagi saya itu terkait erat dengan tradisi komunitas tertentu. Secara historis Chef lebih dekat dengan teman-teman RubyOnRails. Popularitas Chef juga besar di komunitas ROR karena Engineyard membangun infrastruktur mereka di atas Chef.

AB
sumber