Ако сте контејнеризирали свој развојни ток, сложићете се да је Доцкер један од најбољих избора за контролу верзија. Међутим, Доцкер Сварм је једна од Доцкер-ових функција која се користи за оркестрирање сложених апликација.

Доцкер Сварм радни механизам у почетку може бити тешко разбити. Али без бриге, разложићемо то у овом чланку. Дакле, шта је Доцкер Сварм? Зашто га користити? И како то функционише?

Шта је Доцкер Сварм и како функционише?

Доцкер Сварм се односи на групу Доцкер хостова (рачунара) умрежених као кластер за испоруку одређених задатака. Сваки Доцкер хост у овом кластеру је чвор, који се назива и радни чвор.

Да бисте обезбедили ефикасну дистрибуцију задатака, потребан вам је чвор менаџера. У идеалном случају, иницијализација Доцкер Сварм режима почиње са чвором менаџера, а наредни чворови постају радници.

Као оператер, морате само да комуницирате са чвором менаџера, који преноси упутства радницима. Раднички чворови увек добијају доделу задатака од чвора менаџера и извршавају их у складу са тим.

Међутим, менаџерски чвор такође може учествовати у извршавању задатака (као радник) или директно управљати лицем. Можете спречити заказивање задатака на менаџеру пребацивањем његовог стања са активан до одвод. Али ваша одлука да доделите ову двоструку функцију може зависити од неколико фактора. У суштини, желите да будете сигурни да има довољно ресурса за обављање неколико улога пре него што то учините.

Чворови не успевају. Дакле, менаџерски чвор активно надгледа стање сваког радног чвора и активира механизам отпоран на грешке да прераспореди задатак са неуспелог чвора на други.

Али шта ако се и менаџерски чвор сруши? Занимљиво, рој наставља да трчи. Једина замка је што више нећете моћи да комуницирате са менаџерским чвором да бисте контролисали кластер.

Уобичајени приступ безбједности да се ово спречи је додељивање улоге менаџера многим чворовима (Доцкер препоручује највише седам по кластеру). Затим можете да изаберете примарни чвор менаџера од њих. Када се примарни менаџер сруши, улогу преузима један од менаџера у стању приправности.

Међутим, не морате да бринете о промени улога између чворова или одржавању стања у кластеру. Алгоритам консензуса сплава (метод отпоран на грешке) уграђен у Доцкер СвармКит брине о томе.

Зашто користити Доцкер Сварм?

Доцкер Сварм је згодан за примену сложених апликација са великим изгледима за скалабилност. Један од његових примарних случајева употребе је децентрализација микросервиса. Сваки микросервис затим дели сличан контејнер са онима на другим радничким чворовима.

Други разлог за коришћење Доцкер Сварм-а је тај што више хостова истовремено извршава задатке у кластеру. Ово је у супротности са Доцкер Цомпосе, који вам омогућава да покренете само више контејнера на једном Доцкер машини.

Овај скалабилни атрибут Доцкер Сварм-а омогућава апликацијама да буду доследно доступне са нултом кашњењем. То је чак један од разлога зашто то желите изаберите Доцкер у односу на друге алате за виртуелизацију.

И шта више? За разлику од појединачних Доцкер контејнера, где се контејнер зауставља када поквари, Доцкер Сварм аутоматски редистрибуира задатке међу доступним радничким чворовима кад год не успе.

Доцкер Сварм такође чува резервну копију сваке државе. Тако да увек можете да вратите нове конфигурације роја у стање претходне. Рецимо да менаџерски чвор на претходном роју не успе; можете покренути нови кластер са више менаџерских чворова и вратити га да бисте прилагодили конфигурацију претходног.

Такође је важно напоменути да је интеракција између чвора менаџера и чворова радника сигурна.

Доцкер има много алтернатива, а један од најближих је Кубернетес. Међутим, Доцкер Сварм је лак за коришћење и аутоматизованији. На пример, иако ћете можда морати ручно да балансирате оптерећење у неким другим алатима за оркестрацију као што је Кубернетес, Доцкер Сварм има аутоматско балансирање оптерећења, што олакшава живот ДевОпс-у.

Архитектура Доцкер Сварм

Доцкер Сварм архитектура се врти око услуга, чворова и задатака. Међутим, сваки од њих има улогу у успешном вођењу стека.

Услуге

Услуга Доцкер Сварм детаљно описује конфигурацију Доцкер слике која покреће све контејнере у роју. Садржи информације о задацима у групи. На пример, услуга може да опише а Докеризовано подешавање СКЛ сервера.

Када покренете услугу, она приморава чвор менаџера да се синхронизује са својим конфигурацијама. Чвор менаџера затим покреће остале радне чворове на основу наведених подешавања у сервису.

Услуге у Доцкер Сварм-у могу бити глобалне или реплициране.

Разлика између њих је у томе што док глобалне услуге дефинишу само један задатак за све чворове у кластеру, реплициране услуге специфицирају број задатака по чвору.

Чворови

Чвор у Доцкер Сварм-у је инстанца целокупног времена извршавања Доцкер-а, такође познатог као Доцкер енгине. Чворови роја могу бити физичке или виртуелне машине. Замислите ово као мрежу рачунара који покрећу сличне процесе (контејнере).

Међутим, обично се чворови простиру на неколико рачунара и сервера који користе Доцкер мотор у апликацијама из стварног живота. И као што је раније поменуто, чвор може бити или менаџерски или раднички чвор, у зависности од улоге.

Управљачки чвор слуша откуцаје срца роја и контролише радне чворове, који извршавају задатке које им је доделио менаџерски чвор. Као што је раније речено, можете имати више од једног менаџерског чвора у роју. Али идеално, покушајте да ограничите број на мање од седам, јер додавање превише менаџерских чворова може смањити перформансе роја.

Задаци

Задатак дефинише посао додељен сваком чвору у Доцкер роју. У позадини, заказивање задатака у Доцкер Сварм-у почиње када оркестратор креира задатке и прослеђује их планеру, који инстанцира контејнер за сваки задатак.

Чвор менаџера затим користи планер за додељивање и предодељивање задатака чворовима према потреби и специфицираном у Доцкер сервису.

Доцкер Сварм вс. Доцкер Цомпосе: Које су разлике?

Људи често користе Доцкер Цомпосе и Доцкер Сварм наизменично. Иако оба укључују покретање више контејнера, они су различити.

Док вам Доцкер Цомпосе омогућава покретање више контејнера на једном хосту, Доцкер Сварм их дистрибуира на неколико Доцкер мотора у кластеру.

Доцкер Цомпосе користите када треба да покренете засебне контејнере за сваку услугу у вашој апликацији. Дакле, када се једна компонента сруши, она не омета друге. Међутим, када хост машина поквари, цела апликација се такође руши.

Доцкер Сварм вам, међутим, помаже да покренете многе контејнере на груписаним чворовима. Дакле, свака компонента ваше апликације се налази на неколико чворова. А када се један чвор који рукује компонентом апликације сруши, рој додељује свој задатак другом чвору унутар кластера и репрограмира извршавање задатака, спречавајући застоје.

Стога, иако можда имате застоја на Доцкер Цомпосе-у, Доцкер Сварм осигурава да ваша апликација настави да ради уз помоћ резервних сервера (радних чворова). Међутим, Доцкер 1.13 подржава примену Доцкер Цомпосе у режиму Сварм користећи постављање доцкер стека команда.

Доцкер Сварм вам помаже да примените сложене апликације

Контејнеризација је надмашила виртуелне машине у дизајну софтвера за континуирану интеграцију и континуирану испоруку (ЦИ/ЦД). Стога је разумевање суштине механизма Доцкер Сварм плус вештина ако желите да постанете непроцењиви стручњак за ДевОпс.

Вероватно знате како да покренете Доцкер контејнер или чак покренете Доцкер Цомпосе за више контејнера у једном хосту. Али Доцкер Сварм је лакши за примену апликација са сложеном архитектуром. Разбија процесе на јединице, побољшава приступ времену извођења и смањује или чак елиминише шансе застоја.