Model Server Tidak Berubah dengan Docker / Ansible vs. Ansible, Puppet, and Foreman di AWS?

9

Kami mengalami perdebatan yang menarik dan jatuh ke dalam dua kubu. Saya tertarik pada masalah tertentu dengan ide atau masalah yang mungkin kami lewatkan. Sungguh, apa pun yang dapat membantu kita membuat keputusan atau menunjukkan hal-hal yang tidak kita perhitungkan. Saya tahu ini mengesampingkan aturan "tidak ada pendapat" sedikit dekat tapi saya harap ini masih merupakan pertanyaan yang dapat diterima. Maaf untuk panjang juga, ada sedikit nuansa yang adil.

1) Satu sisi (milik saya - saya bukan tanpa bias) menemukan model server yang tidak dapat diubah sangat menarik untuk sistem cloud. Untuk itu, kami membuat prototipe memindahkan semua komponen infrastruktur kami ke Docker. Aplikasi khusus kami dibuat melalui Jenkins langsung ke gambar Docker yang disebarkan ke Docker Registry lokal. Kemudian kami membuat satu set besar peran yang mungkin dan sebuah buku pedoman yang mampu menjangkau server kosong, memasang Docker dan kemudian memberitahu Docker untuk menginstal semua wadah sesuai kebutuhan. Setelah beberapa menit, seluruh aplikasi dan semua infrastruktur pendukungnya terhubung dan bekerja - logging, pemantauan, pembuatan basis data / populasi, dll. Mesin yang telah selesai adalah QA mandiri atau lingkungan dev dengan salinan persis dari aplikasi. Rencana kami untuk meningkatkan skala ini adalah membuat Playbook baru untuk membangun server AWS baru dari basis AMI tepercaya (mungkin gambar yang sangat telanjang), melakukan penyebaran aplikasi produksi untuk menangani manajemen konfigurasi dan rilis dan umumnya tidak pernah mengedit server lagi - buat mereka baru. Saya tidak khawatir tentang apa yang saya jelaskan bekerja dalam praktik - hanya jika itu model yang masuk akal.

2) Kamp lain ingin menggunakan Wayang untuk menangani manajemen konfigurasi, Dapat menggunakan aplikasi khusus kami yang merupakan tarbal yang dihasilkan dari proses build kami, Foreman untuk menangani pemicu dan manajemen proses secara keseluruhan dan Katello untuk melakukan sejumlah basis manajemen gambar. Rilis akan melibatkan konfigurasi perubahan Wayang sesuai kebutuhan dan Kemungkinan menyebarkan komponen yang diperbarui dengan sejumlah koordinasi Foreman. Server akan dibangun dengan cepat jika kita membutuhkan yang baru tetapi tujuannya bukan untuk membuatnya dapat digunakan sebagai bagian dari proses standar. Ini lebih dekat ke model server phoenix meskipun dengan umur panjang.

Jadi pertanyaan saya benar-benar turun ke ini: apakah model server yang tidak dapat diubah dengan alat-alat seperti yang saya jelaskan di atas sebenarnya sama realistisnya seperti yang terlihat? Saya suka gagasan bahwa proses pementasan kami benar-benar dapat membangun seluruh klon aplikasi secara langsung, biarkan QA memalu, kemudian hanya membalik penyimpanan database dan beberapa pengaturan DNS untuk membuatnya hidup.

Atau apakah model server yang tidak dapat diubah gagal dalam praktik? Kami memiliki banyak pengalaman baik dengan AWS dan lingkungan cloud sehingga itu tidak terlalu menjadi perhatian - lebih pada masalah bagaimana cara mendapatkan aplikasi yang cukup canggih yang digunakan secara andal ke depan. Ini sangat menarik karena kami sering merilisnya.

Kami telah melakukan sebagian besar hal yang diperlukan kecuali benar-benar membuat server EC2 untuk kami dan itu tidak sulit. Saya mengalami kesulitan memahami mengapa Anda benar-benar MEMBUTUHKAN Wayang / Foreman / Katello dalam model ini sama sekali. Docker jauh lebih bersih dan lebih sederhana daripada skrip penyebaran kustom di benar-benar alat apa pun di luar sana yang bisa saya katakan. Kemungkinan tampaknya jauh lebih mudah digunakan daripada Wayang ketika Anda berhenti khawatir harus mengonfigurasi mereka di tempat dan hanya membangunnya lagi dengan konfigurasi baru. Saya penggemar kepala Kiss - terutama dalam otomatisasi di mana Hukum Murphy merajalela. Semakin sedikit mesin, semakin baik IMO.

Setiap pemikiran / komentar atau saran tentang pendekatan ini akan sangat dihargai!

Dokter John Wick
sumber
Bias saya sejalan dengan Anda. Saya telah menggunakan semua sistem manajemen konfigurasi utama selama berbulan-bulan jika tidak bertahun-tahun saya tidak bisa membayangkan menggunakan boneka untuk proyek baru di hari dan waktu ini. Chef adalah pilihan yang lebih matang jika Anda ingin tetap menggunakan sistem berbasis ruby. Kelihatannya menjadi yang terbaik saat ini, tetapi garam juga merupakan pilihan yang baik.
anak ayam
Boneka dan mungkin? Anda akan memiliki waktu yang buruk.
dmourati
Docker membuka kemungkinan menggunakan kubernetes, yang berarti penskalaan otomatis, penyembuhan sendiri, dll. Bidang kontainer sekarang semakin matang dan merupakan pilihan yang sangat baik jika aplikasi Anda dapat memenuhi paradigma layanan
mikro

Jawaban:

1

Di perusahaan kami, kami telah berhasil mengimplementasikan Puppet pada infrastruktur warisan pelanggan. Kami juga menggunakan wadah Docker untuk menjalankan layanan khusus (yang sebenarnya merupakan aplikasi lama yang dipangkas dan diputar agar sesuai dengan wadah).
Saya tidak senang dengan wadah saat pertama kali saya menatap bekerja dengan mereka (yeah ... aplikasi 30kb menjadi 200MB gambar berat) tetapi ketika saya harus menciptakan kembali seluruh lingkungan setelah bencana kecil saya berubah pikiran. Saya pikir Docker diciptakan tepat untuk ini: penyebaran cepat dan sering tanpa khawatir tentang konfigurasi server. Jika Anda merancang wadah dengan benar, Anda dapat beralih di antara penyedia cloud, laptop pengembang, dan pusat data colokasi dengan mudah. Karena yang Anda butuhkan hanyalah kotak vanilla Linux dengan daemon Docker.

  • Dalam skenario 1) Anda memiliki segalanya di satu tempat (maksud saya satu karena dengan Docker Anda akan memiliki kode DAN konfigurasi dalam repositori yang sama) mudah untuk mengelola, membaca, dan menggunakan.
  • Dalam skenario 2) Anda harus menyimpan bagian konfigurasi untuk 3 alat (!) Yang berbeda dalam satu repo dan kode aplikasi di yang lain yang membuat segalanya lebih rumit

Saya juga menggunakan Wayang dalam proyek saya sebelumnya dan pengalaman saya sejauh ini adalah bahwa server tetap dapat dicapai daripada dengan Docker daripada Wayang atau Chef. Saya percaya bahwa alat Manajemen Konfigurasi lebih berguna untuk Penyedia Cloud daripada tim pengembangan.

alxndr
sumber
0

Inilah 2 sen euro saya.

2 opsi yang Anda usulkan adalah opsi yang valid untuk mencapai (semacam) keabadian.
Saya pikir Anda harus memilih yang lebih nyaman dengan Anda.
Namun, dari apa yang Anda tulis sepertinya belum ada konsensus.
Mungkin opsi ketiga diperlukan? ;)

Namun, karena ketidakmampuan seperti itu bukan tujuan tetapi sarana untuk memastikan properti lainnya (tidak ada penyimpangan konfigurasi, stabilitas yang lebih baik, ...).
Saya jelas menyatakan tujuan saya, menaruh beberapa metrik untuk memvalidasinya, dan melakukan beberapa tes menggunakan 2 opsi. Anda kemudian akan memiliki beberapa angka untuk memilih salah satu yang paling selaras dengan bisnis Anda.

Semoga berhasil!

sebbrochet
sumber