Apakah ada alasan untuk menggunakan Wayang bersama dengan Docker?

15

Saya telah mencoba Ops bagian dari DevOps beberapa waktu lalu dan itu cukup menyenangkan, tetapi saya tidak punya waktu dan alasan untuk mencobanya dalam proyek apa pun. Tetapi minggu lalu saya memulai pekerjaan baru, di mana bos bertanya kepada saya apakah saya dapat mengkonfigurasi server untuk membuat sesuatu seperti pementasan lingkungan untuk proyek-proyek perusahaan. Bersamaan dengan itu saya sudah mulai berpikir tentang bermigrasi proyek menjadi lebih banyak DevOps daripada hanya dev.

Saya telah keluar dengan Docker yang hebat dan sangat mudah bagi saya. Tetapi beberapa waktu yang lalu saya mencoba Wayang, jadi muncul pertanyaan: "Apakah ada alasan untuk menggunakan Wayang dengan Docker?". Docker tampaknya melakukan semua hal yang akan dilakukan Wayang, tetapi dengan cara yang lebih mudah.

PS Beberapa waktu lalu di Hacker News ada Konsul yang merupakan konfigurasi dan penemuan layanan yang bagus, bahkan konfigurasi dapat diselesaikan (dan saya juga berpikir untuk mengimplementasikan ini).

Hauleth
sumber

Jawaban:

18

Wayang dan buruh pelabuhan dapat melakukan banyak hal yang sama, namun mereka mendekati mereka dengan cara yang berbeda.

Wayang mengelola file + paket + layanan. (Disebut trifecta). Docker merangkum file-file biner dan konfigurasi di dalam sebuah wadah.

Pada saat penulisan ini, buruh pelabuhan masih tidak stabil dan tidak boleh digunakan dalam produksi. Banyak API kemungkinan akan berubah sampai versi 1.0 dirilis.

Bahkan ketika buruh pelabuhan menjadi stabil, itu akan menjadi upaya besar untuk mengkonversi setiap proses dan file konfigurasi ke wadah buruh pelabuhan.

Boneka di sisi lain adalah produk yang stabil dan dilengkapi dengan seluruh ekosistem alat (heira, mcollective, facter, razor). Alat-alat ini dapat diimplementasikan dengan cepat dan tanpa khawatir hal-hal yang melanggar.

Saya akan sangat menyarankan sumber daya berikut.

Video tentang cara mengelola tumpukan aplikasi dengan boneka
https://www.youtube.com/watch?v=KSo_mcJxFIA

Podcast tentang bagaimana buruh pelabuhan dan boneka bisa bekerja bersama
http://devopscafe.org/show/2014/1/23/devops-cafe-episode-46.html

Artikel boneka blog tentang cara mengintegrasikan dengan buruh pelabuhan
http://puppetlabs.com/blog/building-puppet-based-applications-inside-docker

Artikel blog lain tentang boneka dan buruh pelabuhan hidup berdampingan
http://puppetlabs.com/blog/can-containers-and-configuration-management-co-exist

Modul boneka untuk berinteraksi dengan buruh pelabuhan
http://docs.docker.io/use/puppet/

Sebuah koreksi kecil pada terminologi para devops. Devops lebih dari a metodologi pengembangan perangkat lunak tempat pengembang dan operasi bekerja sama, daripada alat khusus apa pun.

Memperbarui

Saat ini perusahaan saya menggunakan boneka dan buruh pelabuhan. Berikut ini adalah presentasi hebat yang diberikan di puppet conf 2014 tentang mengapa Anda akan menggunakan boneka vs buruh pelabuhan. Diberikan oleh James Turnbull, mantan majikan puppetlab dan penulis buku buruh pelabuhan.

https://puppetlabs.com/presentations/using-docker-puppet-james-turnbull-kickstarter

Juga tutorial video pendek yang bagus tentang buruh pelabuhan yang diberikan oleh sysadmincasts.com

https://sysadmincasts.com/episodes/31-introduction-to-docker

Pro Docker:

  • Dapat memutar contoh dengan cepat
  • Lebih mudah dipelajari daripada boneka
  • Mudah untuk melakukan 0 downtime

Kontra Docker:

  • Kontainer memiliki batas 10GB saat menggunakan backend devicemapper
  • Perubahan konfigurasi kecil membutuhkan waktu lama untuk membangun kembali wadah
  • Biaya uang untuk menggunakan register buruh pelabuhan seperti hub.docker.com, quay.io (Registri buruh pelabuhan yang di-hosting-sendiri sangat buggy, dan tidak memiliki gui)
  • Tidak ada sistem init yang tepat. Beberapa aplikasi tidak bermain bagus.
  • Tidak ada kontrol berbutir halus atas jaringan
  • Aplikasi yang membutuhkan subshell (melihat Anda RVM + ruby) sangat sulit untuk berfungsi dengan benar
  • Tidak dapat mengelola host windows, tidak ada SLES atau sistem operasi lain yang kurang populer
  • Saat ini orkestrasi buruh pelabuhan masih sangat muda.
  • Saat ini tidak dapat mengatur /etc/resolv.conf Anda saat membangun
  • Berbagai bug yang harus kita mount / etc / localtime dan / dev / urandom untuk memetakan ke host localtime dan direktori urandom.
  • Performanya tidak secepat (terlepas dari semua klaim bahwa buruh pelabuhan harus 99% kecepatan bare metal, terkadang 30% lebih lambat dari mesin lain).
  • Kontainer kecil masih memiliki ratusan megabita overhead. Wadah kami semuanya berganda banyak.

Pros boneka:

  • Mudah diukur
  • Bekerja dengan server yang ada (windows, linux, sles)
  • Cepat untuk melakukan perubahan kecil
  • Komunitas yang kuat dari pengguna dan modul boneka lainnya
  • API standar untuk menginstal paket di semua platform

Cons boneka:

  • Infrastruktur besar menjadi sangat kompleks
  • Ketergantungan modul bersyarat membuat kode spageti
  • Berat lebih berat

Saat ini kami menggunakan boneka untuk menyediakan wadah buruh pelabuhan kami. Wadah buruh pelabuhan digunakan untuk membangun jenkins dan dihancurkan setelah masing-masing membangun. Ini bekerja dengan baik, dan memberi kita lingkungan yang konsisten. Itu berarti bahwa kita hanya perlu menulis kode sekali, dan kemudian membangun kembali mesin ubuntu, sles dan centos. Membangun kembali wadah membutuhkan waktu sekitar 15 hingga 30 menit dan masih merupakan proses manual. Docker bagus untuk memutar tes cepat vm,

Jadi singkatnya, boneka sangat bagus dalam mengelola infrastruktur yang ada. Docker bagus jika Anda memiliki greenfield yang 100% linux dengan tumpukan teknologi yang dapat dimasukkan dalam contoh singkat kecil. Sementara beberapa fungsi tumpang tindih, mereka tidak saling eksklusif.

spuder
sumber
5
Saya menemukan jawaban ini subyektif dan spekulatif. Saya tidak percaya itu benar-benar menjawab mengapa seseorang dapat terus menggunakan Wayang bersama / bersama dengan Docker, ketika Docker muncul, pada tingkat tinggi, menjadi alat yang lebih sederhana untuk tujuan yang sama.
8bitjunkie
1
@ 7 Permata Khusus Diperbarui dengan lebih banyak fakta.
spuder
1
alangkah baiknya melihat ulasan tentang jawaban ini di dunia 2015 dan bagaimana segala sesuatu telah berubah
Oliver Bayes-Shelton
2

Docker membantu Anda untuk menyediakan dan mengkonfigurasi wadah pada awalnya, tetapi menjalankan perintah satu kali pada inisialisasi wadah.

Wayang terkuat ketika Anda menjalankannya sebagai daemon, ia memastikan konfigurasi Anda tetap seperti yang Anda tentukan, jadi misalnya jika layanan Anda berhenti berjalan, itu akan mulai lagi.

Salah satu hal terbaik tentang manifes konfigurasi wayang (dirancang dengan benar) adalah adanya idempoten ; itu seharusnya menggambarkan keadaan yang Anda inginkan dan tidak terlalu banyak langkah untuk sampai ke sana.

Ini juga memungkinkan Anda untuk abstrak dan konfigurasi parametrise dan Anda bisa parameter ekspor dibuat pada satu server atau wadah dan menggunakannya di server lain (mis. mengumpulkan daftar nama host node untuk aplikasi pemantauan).

Saya akan mengatakan mereka pasti melayani tujuan yang berbeda tetapi terkait. Saat ini saya sedang melihat menggunakan manifes boneka yang ada untuk mulai mengkonfigurasi wadah sehingga lingkungan pengembangan lebih seperti lingkungan produksi.

xtrade
sumber