Docker Compose vs Docker Swarm

Docker Compose Vs Docker Swarm

Kontin 'vallankumoukselliset' sovellukset ovat kasvaneet paljon enemmän kuin pelkkä tietokanta ja käyttöliittymä. Sovellukset on jaettu useisiin mikropalveluihin ja ne kommunikoivat yleensä keskenään REST -sovellusliittymän kautta (tyypillisesti JSON -muotoiset hyötykuormat HTTP: n kautta). Docker -kontit ovat ihanteellisia tällaiseen arkkitehtuuriin. Voit pakata käyttöliittymäsi mikropalvelun Docker -säilöön, tietokanta siirtyy toiseen ja niin edelleen ja niin edelleen. Jokainen palvelu puhuu toisen kanssa ennalta määritetyn REST -sovellusliittymän kautta sen sijaan, että se olisi yksittäinen ohjelmisto.

Jos sinun on otettava käyttöön uusi toiminto tai ominaisuus, esimerkiksi analytiikkamoottori, voit yksinkertaisesti kirjoittaa sille uuden mikropalvelun ja se kuluttaa dataa REST -sovellusliittymän kautta, jonka verkkosovelluksesi eri mikropalvelut paljastavat. Ja kun toiminnallisuutesi kasvaa ajan myötä, myös tämä mikropalvelujen luettelo kasvaa sen mukana.



Et halua ottaa käyttöön jokaista yksittäistä säilöä, määrittää sen ja määrittää sitten kaikki muu puhumaan myös sen kanssa. Siitä tulee tylsää jopa kolmella kontilla. Docker-Compose -toiminnon avulla voit automatisoida useiden säilöjen käyttöönoton.



Docker-Compose on yksi yksinkertaisimmista työkaluista, joiden avulla voit muuttaa abstraktin ajatuksen mikropalveluista toimivaksi Docker-säilön joukkoksi.



Hajautetut järjestelmät

Nyt kun olemme jakaneet verkkosovelluksen useisiin säilöihin, ei ole mitään järkeä pitää niitä kaikkia yhdellä palvelimella (vielä pahempaa yhdellä virtuaalikoneella!), Jossa Docker Swarmin ja Kubernetesin kaltaiset palvelut tulevat pelaamaan.

Docker Swarm -ohjelman avulla voit suorittaa useita sovelluksesi kopioita useilla palvelimilla. Jos mikropalvelu on kirjoitettu siten, että se voi skaalautua 'vaakasuoraan', voit käyttää Docker Swarm -palvelua verkkosovelluksesi käyttöönotossa useiden palvelinkeskusten ja useiden alueiden välillä. Tämä tarjoaa sietokykyä yhden tai useamman palvelinkeskuksen tai verkkolinkin epäonnistumiseen. Tämä tehdään tyypillisesti käyttämällä Dockerin alikomentoa eli Docker Stack.

The Docker -pino alikomento käyttäytyy paljon enemmän kuin Docker-Compose -komento, ja se voi johtaa väärinkäsityksiin jollekin tekniikkaa käyttäville.



Sekaannuksen lähde

Käytön ja työnkulun osalta molemmat tekniikat toimivat hyvin samankaltaisesti toistensa kanssa, mikä aiheuttaa sekaannusta. Tapa, jolla otat sovelluksesi käyttöön joko Docker Swarm- tai Docker-Compose-sovelluksella, on hyvin samanlainen. Määrität sovelluksesi YAML -tiedostossa, tämä tiedosto sisältää kuvan nimen, kunkin kuvan kokoonpanon ja myös asteikon (kopioiden lukumäärän), joka jokaisen mikropalvelun on täytettävä käyttöönotossa.

Ero on lähinnä taustajärjestelmässä, jossa docker-compose ottaa säilön käyttöön yhdessä Docker-isännässä, Docker Swarm ottaa sen käyttöön useissa solmuissa. Löysästi sanottuna se voi silti tehdä useimmat asiat, joita docker-compose voi, mutta se skaalaa sen useiden Docker-isäntien välillä.

Yhtäläisyyksiä

Sekä Docker Swarmilla että Docker-Composeilla on seuraavat yhtäläisyydet:

  1. Molemmat käyttävät YAML -muotoisia määritelmiä sovelluspinoistasi.
  2. Molemmat on tarkoitettu monisäiliösovelluksiin (mikropalvelut)
  3. Molemmissa on skaalausparametri, jonka avulla voit käyttää useita saman kuvan säilöjä, jolloin mikropalvelu voidaan skaalata vaakasuunnassa.
  4. Molempia ylläpitää sama yritys, eli Docker, Inc.

Erot

Muutamia eroja Docker Swarm ja Docker-Compose välillä:

  1. Docker Swarmia käytetään verkkosovelluksesi skaalaamiseen yhden tai useamman palvelimen välillä. Missä Docker-compose suorittaa verkkosovelluksesi yksinkertaisesti yhdellä Docker-isännällä.
  2. Web -sovelluksesi skaalaaminen Docker Swarm tarjoaa vakavan korkean käytettävyyden ja vikasietoisuuden. Verkkosovelluksesi skaalaaminen Docker-Compose-sovelluksella yhdelle isännälle on hyödyllistä vain testaamiseen ja kehittämiseen.
  3. Docker Swarm ja siihen liittyvät alikomennot, kuten Docker Swarm ja Docker Stack, on rakennettu itse Docker CLI: hen. Ne ovat kaikki osa Docker -binaaria, johon soitat päätelaitteesi kautta. Docker-Compose on itsenäinen binaari itsessään.

A Docker-Composen käyttötapaus

Kuten edellä on kuvattu, ne ovat molemmat täysin erilaisia ​​työkaluja ja kumpikin ratkaisee täysin eri ongelman, joten ei ole kuin toinen olisi vaihtoehto toiselle. Kuitenkin, jotta uudet tulokkaat ymmärtäisivät, mistä puhun, tässä on Docker Composen käyttötapaus.

Oletetaan, että haluat itse isännöidä WordPress-blogia yhdellä palvelimella. Sen asentaminen tai ylläpito ei ole jotain, mitä haluat tehdä manuaalisesti, joten asentamalla Docker ja Docker-compose VPS-laitteeseesi, luo yksinkertainen YAML-tiedosto, joka määrittelee kaikki WordPress-pinoosi liittyvät näkökohdat, kuten alla, :

Huomautus: Jos käytät alla olevaa WordPress -sivuston käyttöönottoa, vaihda kaikki salasanat johonkin suojattuun. Parempi vielä, käytä Docker Secrets -sovellusta arkaluonteisten tietojen, kuten salasanojen, tallentamiseen sen sijaan, että ne olisivat tavallisessa tekstitiedostossa.

versio:'3'

palvelut:
db:
kuva: mysql:5.7
tilavuudet:
- db_data:/missä/lib/mysql
Käynnistä uudelleen: aina
ympäristö:
MYSQL_ROOT_PASSWORD: somewordpress
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_SALASANA: wordpress

wordpress:
riippuu:
- db
kuva: wordpress: uusin
portit:
-'8000: 80'
Käynnistä uudelleen: aina
ympäristö:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpressPassword
WORDPRESS_DB_NAME: wordpress
tilavuudet:
db_data:{}

Kun tiedosto on luotu ja sekä Docker että Docker-compose on asennettu, sinun tarvitsee vain suorittaa:

$telakoitsija-kokoonpano-d

Ja sivustosi on käynnissä. Jos on päivitys, suorita:

$docker-säveltää alas

Heitä sitten pois vanhat Docker -kuvat ja suorita docker -compose up -d -komento, jolloin uudet kuvat vedetään automaattisesti sisään. Koska pysyvät tiedot on tallennettu Docker -taltioon, verkkosivustosi sisältö ei häviä.

Milloin Docker Swarmia käytetään?

Vaikka Docker-compose on enemmän automaatiotyökalu, Docker Swarm on tarkoitettu vaativampiin sovelluksiin. Verkkosovellukset, joilla on satoja tai tuhansia käyttäjiä tai työmäärä, joka on skaalattava rinnakkain. Yritykset, joilla on laaja käyttäjäkunta ja tiukat SLA -vaatimukset, haluavat käyttää hajautettua järjestelmää, kuten Docker Swarm. Jos sovelluksesi toimii useilla palvelimilla ja useilla palvelinkeskuksilla, DC: n tai verkkolinkin aiheuttamat käyttökatkokset vähenevät merkittävästi.

En kuitenkaan epäröi suositella Docker Swarmia tuotannon käyttötarkoituksiin, koska kilpailevat tekniikat, kuten Kubernetes, ovat kiistatta sopivampia tähän tehtävään. Kubernetesia tuetaan luonnollisesti monissa pilvipalveluissa ja se toimii melko hyvin Docker Containersin kanssa, joten sinun ei tarvitse edes rakentaa sovellustasi hyödyntääksesi Kubernetesia.

Johtopäätös

Toivon, että tämä Dockerin ja sen satelliittihankkeiden huijaus oli informatiivinen ja olette enemmän valmistautuneita telakoitsijan ekosysteemiin.