Docker Compose vs Docker Swarm

Docker Compose Vs Docker Swarm



A konténer „forradalmi” alkalmazásai sokkal többet nőttek, mint csupán adatbázis és kezelőfelület. Az alkalmazások különböző mikroszolgáltatásokra vannak felosztva, és általában REST API -n keresztül kommunikálnak egymással (jellemzően JSON formátumú hasznos adatok HTTP -n keresztül). A Docker konténerek ideálisak az ilyen típusú építészethez. Csomagolhatja a front mikroszolgáltatást egy Docker -tárolóba, az adatbázis átmegy egy másikba, és így tovább. Minden szolgáltatás egy előre meghatározott REST API -n keresztül beszél a másikkal, ahelyett, hogy egyetlen szoftverként írt monolit lenne.

Ha új funkciót vagy szolgáltatást, például elemzőmotort kell megvalósítania, egyszerűen írhat ehhez egy új mikroszolgáltatást, és az az adatokat a webes alkalmazás különböző mikroszolgáltatásai által kitett REST API -n keresztül használja fel. És ahogy a funkcionalitás idővel növekszik, ez a mikroszolgáltatások listája is együtt fog növekedni.







Nem szeretné telepíteni az egyes tárolókat, konfigurálni, majd beállítani minden mást, hogy beszéljen vele. Ez még három konténerrel is unalmas lesz. A Docker-Compose lehetővé teszi több tároló telepítésének automatizálását.



A Docker-Compose az egyik legegyszerűbb eszköz, amely segít a mikroszolgáltatások absztrakt elképzelésének átalakításában a Docker tároló funkcionális készletévé.



Elosztott rendszerek

Most, hogy több tárolóra osztottuk fel a webalkalmazást, nincs sok értelme egyetlen kiszolgálón tartani (még rosszabb esetben egyetlen virtuális gépen!), Ahol olyan szolgáltatások jönnek szóba, mint a Docker Swarm és a Kubernetes.





A Docker Swarm lehetővé teszi az alkalmazás több másolatának futtatását több szerveren. Ha mikroszolgáltatása úgy van megírva, hogy „vízszintesen” skálázható legyen, akkor a Docker Swarm segítségével telepítheti webes alkalmazását több adatközponton és több régión keresztül. Ez rugalmasságot kínál egy vagy több adatközpont vagy hálózati kapcsolat meghibásodásával szemben. Ez általában a Docker egy alparancsával, azaz a Docker Stack használatával történik.

Az Docker verem alparancs sokkal jobban viselkedik, mint a Docker-Compose parancs, és ez félreértésekhez vezethet, ha valaki bármelyik technológiát használja.



Zavar forrása

Használat és munkafolyamat tekintetében mindkét technológia nagyon hasonlóan működik, és ez zavart okoz. Az alkalmazás telepítésének módja a Docker Swarm vagy a Docker-Compose használatával nagyon hasonló. Az alkalmazást egy YAML fájlban határozza meg, ez a fájl tartalmazza a kép nevét, az egyes képek konfigurációját, valamint azt a skálát (replikák száma), amelyet minden mikroszolgáltatásnak teljesítenie kell a telepítés során.

A különbség leginkább a háttérben rejlik, ahol a docker-compose tárolót telepít egyetlen Docker-gazdagépre, a Docker Swarm pedig több csomóponton keresztül telepíti. Lazán szólva még mindig képes a legtöbb olyan dologra, amit a docker-compose képes, de skálázhatja több Docker-gazdagépen.

Hasonlóságok

Mind a Docker Swarm, mind a Docker-Compose a következő hasonlóságokkal rendelkezik:

  1. Mindkettő YAML formátumú definíciókat vesz fel az alkalmazáskötegből.
  2. Mindkettő több konténeres alkalmazások kezelésére szolgál (mikroszolgáltatások)
  3. Mindkettő rendelkezik egy skála paraméterrel, amely lehetővé teszi, hogy ugyanazon kép több tárolóját futtassa, lehetővé téve a mikroszolgáltatás vízszintes méretezését.
  4. Mindkettőt ugyanaz a cég tartja fenn, azaz a Docker, Inc.

Különbségek

Néhány különbség a Docker Swarm és a Docker-Compose között:

  1. A Docker Swarm a webes alkalmazás méretezésére szolgál egy vagy több szerveren. Ahol a Docker-compose egyszerűen futtatja webes alkalmazását egyetlen Docker-gazdagépen.
  2. Webes alkalmazás méretezése A Docker Swarm komoly magas rendelkezésre állást és hibatűrést kínál. A webalkalmazás méretezése a Docker-Compose segítségével egyetlen gazdagépen csak tesztelésre és fejlesztésre hasznos.
  3. A Docker Swarm és a kapcsolódó alparancsok, mint a Docker Swarm és a Docker Stack, magukba a Docker CLI -be vannak beépítve. Mindegyik része a Docker binárisnak, amelyet a terminálon keresztül hív. A Docker-Compose önmagában önálló bináris.

A Docker-Compose használati eset

Amint fentebb leírtuk, mindkettő teljesen más eszköz, és mindegyik teljesen más problémát old meg, így nem mintha az egyik alternatíva lenne a másik számára. Azonban, hogy az újonnan érkezők megértsék, miről beszélek, itt van a Docker Compose használati példája.

Tegyük fel, hogy önállóan szeretné üzemeltetni a WordPress blogot egyetlen szerveren. Ha nem manuálisan szeretné beállítani vagy karbantartani, akkor a Docker és a Docker-compose telepítése a VPS-re, hozzon létre egy egyszerű YAML-fájlt, amely meghatározza a WordPress verem összes aspektusát, például alább, :

Megjegyzés: Ha az alábbiakat használja egy WordPress webhely telepítéséhez, kérjük, módosítsa az összes jelszót valami biztonságosra. Még jobb, ha a Docker Secrets használatával érzékeny adatokat, például jelszavakat tárol, ahelyett, hogy egyszerű szöveges fájlban tárolná őket.

változat:„3”

szolgáltatások:
db:
kép: mysql:5.7
kötetek:
- db_data:/ahol/lib/mysql
újraindítás: mindig
környezet:
MYSQL_ROOT_PASSWORD: somewordpress
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress

wordpress:
attól függ:
- db
kép: wordpress: legújabb
portok:
-'8000: 80'
újraindítás: mindig
környezet:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpressPassword
WORDPRESS_DB_NAME: wordpress
kötetek:
db_data:{}

A fájl létrehozása és a Docker és a Docker-compose telepítése után mindössze annyit kell tennie, hogy futtatja:

$dokkoló-összeáll-d

És webhelye működőképes lesz. Ha van frissítés, akkor futtassa:

$dokkoló-komponál le

Ezután dobja el a régi Docker -képeket, és futtassa a docker -compose up -d parancsot, és az új képek automatikusan be lesznek húzva. Mivel a tartós adatokat egy Docker -kötetben tárolja, webhelye tartalma nem fog elveszni.

Mikor kell használni a Docker Swarm -ot?

Míg a Docker-compose inkább automatizálási eszköz, a Docker Swarm az igényesebb alkalmazásokhoz készült. Több száz vagy ezer felhasználót vagy párhuzamosan méretezendő munkaterhelést tartalmazó webalkalmazások. A nagy felhasználói bázissal és szigorú SLA -követelményekkel rendelkező vállalatok olyan elosztott rendszert szeretnének használni, mint a Docker Swarm. Ha az alkalmazás több kiszolgálón és több adatközponton is fut, akkor az érintett DC vagy hálózati kapcsolat miatti leállás valószínűsége jelentősen csökken.

Ennek ellenére habozom ajánlani a Docker Swarm -ot gyártási célú felhasználásra, mivel az olyan versenytárs technológiák, mint a Kubernetes, vitathatatlanul alkalmasabbak erre a feladatra. A Kubernetes -t sok felhőszolgáltató natívan támogatja, és nagyon jól működik a Docker Containers -el, így nem is kell újratelepítenie az alkalmazást a Kubernetes előnyeinek kihasználásához.

Következtetés

Remélem, hogy ez a Docker -en és annak műholdprojektjein való tájékozódás informatív volt, és jobban felkészült a dokkoló ökoszisztémájára.