Docker Compose vs Docker Swarm

Docker Compose Vs Docker Swarm



Dengan aplikasi ‘revolusi’ wadah telah berkembang lebih dari sekadar menjadi pangkalan data dan frontend. Aplikasi dibahagikan kepada pelbagai perkhidmatan mikro dan mereka biasanya berkomunikasi antara satu sama lain melalui REST API (biasanya muatan berformat JSON melalui HTTP). Bekas dok sesuai untuk seni bina jenis ini. Anda boleh mengemas ‘microservice’ frontend anda ke dalam wadah Docker, pangkalan data masuk ke yang lain, dan seterusnya dan seterusnya. Setiap perkhidmatan bercakap dengan yang lain melalui REST API yang telah ditetapkan dan bukannya menjadi monolit yang ditulis sebagai satu perisian.

Sekiranya anda perlu menerapkan fungsi baru atau ciri, seperti mesin analitik, anda hanya boleh menulis perkhidmatan mikro baru untuk itu dan ia akan menggunakan data melalui REST API yang didedahkan oleh pelbagai perkhidmatan mikro aplikasi web anda. Dan seiring dengan bertambahnya fungsi anda dari masa ke masa, senarai perkhidmatan mikro ini akan bertambah seiring dengannya.







Anda tidak mahu menggunakan setiap bekas, konfigurasikannya dan kemudian konfigurasikan semua perkara lain untuk bercakap dengannya juga. Itu akan membosankan walaupun dengan tiga bekas. Docker-Compose membolehkan anda mengautomasikan penggunaan beberapa kontena secara automatik.



Docker-Compose adalah salah satu alat termudah yang membantu anda mengubah idea abstrak perkhidmatan mikro menjadi set kontena Docker yang berfungsi.



Sistem Teragih

Sekarang setelah kami membelah aplikasi web menjadi beberapa bekas, tidak masuk akal untuk menyimpan semuanya di satu pelayan (lebih buruk lagi pada satu mesin maya!) Di situlah perkhidmatan seperti Docker Swarm dan Kubernetes dimainkan.





Docker Swarm membolehkan anda menjalankan beberapa replika aplikasi anda di beberapa pelayan. Sekiranya perkhidmatan mikro anda ditulis dengan cara yang dapat ditingkatkan 'secara mendatar' maka anda dapat menggunakan Docker Swarm untuk menyebarkan aplikasi web anda di beberapa pusat data dan beberapa wilayah. Ini menawarkan daya tahan terhadap kegagalan satu atau lebih pusat data atau pautan rangkaian. Ini biasanya dilakukan dengan menggunakan subcommand di Docker, iaitu Docker Stack.

The Tumpukan Docker subkomen berperilaku lebih mirip seperti perintah Docker-Compose dan yang boleh menyebabkan salah tanggapan kepada seseorang yang menggunakan salah satu teknologi.



Punca Kekeliruan

Dari segi penggunaan dan aliran kerja, kedua-dua teknologi berfungsi sama antara satu sama lain, dan ini menimbulkan kekeliruan. Cara anda menggunakan aplikasi anda menggunakan Docker Swarm atau Docker-Compose sangat serupa. Anda menentukan aplikasi anda dalam file YAML, file ini akan berisi nama gambar, konfigurasi untuk setiap gambar dan juga skala (jumlah replika) yang harus dipenuhi oleh setiap layanan mikro dalam penyebaran.

Perbezaannya terletak pada backend, di mana docker-compose menggunakan container pada host Docker tunggal, Docker Swarm menyebarkannya di beberapa nod. Secara longgar, ia masih boleh melakukan kebanyakan perkara yang boleh dibuat oleh pembuat-dok tetapi ia dapat menimbangnya di beberapa hos Docker.

Persamaan

Kedua-dua Docker Swarm dan Docker-Compose mempunyai persamaan berikut:

  1. Mereka berdua mengambil definisi berformat YAML dari timbunan aplikasi anda.
  2. Keduanya dimaksudkan untuk menangani aplikasi multi-container (perkhidmatan mikro)
  3. Kedua-duanya mempunyai parameter skala yang membolehkan anda menjalankan beberapa bekas gambar yang sama yang membolehkan perkhidmatan mikro anda skala secara mendatar.
  4. Keduanya dikendalikan oleh syarikat yang sama, iaitu, Docker, Inc.

Perbezaan

Beberapa perbezaan antara Docker Swarm dan Docker-Compose:

  1. Docker Swarm digunakan untuk mengukur aplikasi web anda di satu atau lebih pelayan. Di mana sebagai Docker-compose hanya akan menjalankan aplikasi web anda pada satu host Docker.
  2. Menambah skala aplikasi web anda Docker Swarm menawarkan ketersediaan tinggi dan toleransi kesalahan. Menambah skala aplikasi web anda menggunakan Docker-Compose pada satu host hanya berguna untuk ujian dan pengembangan.
  3. Docker Swarm dan subcommands yang berkaitan seperti Docker Swarm dan Docker Stack dimasukkan ke dalam Docker CLI itu sendiri. Semuanya adalah bahagian binari Docker yang anda panggil melalui terminal anda. Docker-Compose adalah binari mandiri dalam dirinya sendiri.

Kes Penggunaan untuk Docker-Compose

Seperti yang dijelaskan di atas, kedua-duanya adalah alat yang sama sekali berbeza dan masing-masing menyelesaikan masalah yang sama sekali berbeza sehingga tidak seperti satu adalah alternatif untuk yang lain. Walau bagaimanapun, untuk memberi gambaran kepada pendatang baru mengenai apa yang saya bicarakan, berikut adalah kes penggunaan untuk Docker Compose.

Katakan anda mahu menjadi tuan rumah Blog WordPress pada pelayan tunggal. Menyiapkannya atau mengekalkannya bukan sesuatu yang anda ingin lakukan secara manual, jadi apa yang anda lakukan adalah memasang Docker dan Docker-compose pada VPS anda, buat fail YAML ringkas yang menentukan semua pelbagai aspek tumpukan WordPress anda, seperti di bawah, :

Catatan: Sekiranya anda menggunakan di bawah ini untuk menggunakan laman WordPress, ubah semua kata laluan menjadi sesuatu yang selamat. Lebih baik lagi, gunakan Rahsia Docker untuk menyimpan data sensitif seperti kata laluan, dan bukannya memilikinya dalam fail teks biasa.

versi:'3'

perkhidmatan:
db:
gambar: mysql:5.7
jilid:
- db_data:/di mana/lib/mysql
mulakan semula: selalu
persekitaran:
MYSQL_ROOT_PASSWORD: anyordpress
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress

wordpress:
bergantung kepada:
- db
gambar: wordpress: terkini
pelabuhan:
-'8000: 80'
mulakan semula: selalu
persekitaran:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpressPassword
WORDPRESS_DB_NAME: wordpress
jilid:
db_data:{}

Setelah fail dibuat dan kedua-dua Docker dan Docker-compose dipasang, yang perlu anda lakukan ialah jalankan:

$dok buat-buat-d

Dan laman web anda akan terus beroperasi. Sekiranya terdapat kemas kini, kemudian jalankan:

$dok mengarang

Kemudian buang gambar Docker lama dan jalankan perintah composeer-comp up -d dan gambar baru akan ditarik secara automatik. Oleh kerana anda mempunyai data berterusan yang disimpan dalam Volume Docker, kandungan laman web anda tidak akan hilang.

Bila hendak menggunakan Docker Swarm

Walaupun Docker-compose lebih merupakan alat automasi, Docker Swarm dimaksudkan untuk aplikasi yang lebih menuntut. Aplikasi web dengan beratus-ratus atau ribuan pengguna atau beban kerja yang perlu ditingkatkan secara selari. Syarikat dengan asas pengguna yang besar dan syarat SLA yang ketat ingin menggunakan sistem yang diedarkan seperti Docker Swarm. Sekiranya aplikasi anda berjalan di pelbagai pelayan dan beberapa pusat data, kemungkinan waktu henti kerana pautan DC atau rangkaian yang terjejas akan berkurang dengan ketara.

Oleh itu, saya teragak-agak untuk mengesyorkan Docker Swarm untuk kes penggunaan pengeluaran kerana teknologi bersaing seperti Kubernetes boleh dikatakan lebih sesuai untuk tugas ini. Kubernetes disokong secara asli di banyak penyedia awan dan berfungsi dengan baik dengan Docker Containers sehingga anda tidak perlu membuat semula aplikasi anda untuk memanfaatkan Kubernetes.

Kesimpulannya

Saya berharap bahawa pergolakan di Docker dan projek satelitnya dapat memberi maklumat dan anda lebih bersedia untuk ekosistem pelabuhan.