Оё пойгоҳи додаҳо дар Кубернетес зиндагӣ мекунанд?

Оё пойгоҳи додаҳо дар Кубернетес зиндагӣ мекунанд?

Ба гунае, ки таърихан саноати IT бо ҳар сабаб ба ду лагери шартӣ тақсим шудааст: онҳое, ки "тарафдор" ҳастанд ва онҳое, ки "муқобил" ҳастанд. Илова бар ин, мавзӯи баҳсҳо метавонад комилан худсарона бошад. Кадом ОС беҳтар аст: Win ё Linux? Дар смартфони Android ё iOS? Оё шумо бояд ҳама чизро дар абрҳо нигоҳ доред ё онро дар анбори хунуки RAID гузоред ва винтҳоро дар сейф гузоред? Оё одамони PHP ҳақ доранд, ки барномасоз номида шаванд? Ин баҳсҳо баъзан табиати истисноӣ доранд ва ба ҷуз манфиати варзишӣ дигар асос надоранд.

Ҳамин тавр рӯй дод, ки бо пайдоиши контейнерҳо ва ин ҳама таомҳои дӯстдошта бо docker ва k8s шартӣ, баҳсҳои "ба тарафдорӣ" ва "зидди" истифодаи қобилиятҳои нав дар соҳаҳои гуногуни пуштибон оғоз шуданд. (Биёед пешакӣ қайд кунем, ки гарчанде ки Кубернетес дар ин муҳокима аксар вақт ҳамчун оркестр нишон дода мешавад, интихоби ин асбоби мушаххас аҳамияти асосӣ надорад. Ба ҷои ин, шумо метавонед ягон чизи дигареро иваз кунед, ки ба шумо қулай ва шинос аст. .)

Ва, ба назар чунин мерасад, ки ин як баҳси оддӣ байни ду тарафи як танга хоҳад буд. Ба мисли муқовимати абадии байни Win против Linux, ки дар он ҷо одамони мувофиқ вуҷуд доранд, бемаънӣ ва бераҳм. Аммо дар мавриди контейнеризатсия на ҳама чиз оддӣ аст. Одатан дар ин гуна баҳсҳо тарафи рост вуҷуд надорад, аммо дар мавриди “истифода” ё “истифода набурдани” контейнерҳо барои нигаҳдории пойгоҳи додаҳо ҳама чиз чаппа мешавад. Зеро ба як маъно ҳам тарафдорон ва ҳам мухолифони ин равиш ҳақ ҳастанд.

Тарафи рӯшан

Далели тарафи рӯшноиро метавон бо як ибора мухтасар тавсиф кард: "Салом, 2k19 берун аз тиреза аст!" Албатта, ин популизм ба назар мерасад, аммо агар шумо ба вазъ муфассалтар равед, он бартариҳои худро дорад. Биёед ҳоло онҳоро ҷудо кунем.

Фарз мекунем, ки шумо як лоиҳаи бузурги веб доред. Онро дар аввал метавонистанд дар асоси равиши микросервис сохтанд, ё дар баъзе мавридҳо тавассути роҳи эволютсионӣ ба он расид - дар асл ин чандон муҳим нест. Шумо лоиҳаи моро ба микросервисҳои алоҳида пароканда кардед, оркестрсозӣ, мувозинати сарборӣ ва миқёсро танзим кардед. Ва ҳоло, бо виҷдони пок, шумо ба ҷои баланд бардоштани серверҳои афтода, дар гамак ҳангоми эффектҳои ҳабра моҷито мехӯред. Аммо дар ҳама амалҳо шумо бояд устувор бошед. Аксар вақт, танҳо худи барнома - код - контейнер карда мешавад. Мо ғайр аз код боз чӣ дорем?

Ин дуруст аст, маълумот. Дили ҳама гуна лоиҳа маълумоти он аст: ин метавонад ё DBMS маъмулӣ - MySQL, Postgre, MongoDB, ё нигаҳдории барои ҷустуҷӯ истифодашаванда (ElasticSearch), нигаҳдории арзиш барои кэш - масалан, redis ва ғайра бошад. Ҳоло мо нестем. мо дар бораи вариантҳои татбиқи каҷшудаи пуштибонӣ сӯҳбат хоҳем кард, вақте ки пойгоҳи додаҳо аз сабаби дархостҳои нодуруст навишта шудааст ва ба ҷои он мо дар бораи таъмини таҳаммулпазирии айби ин махзани маълумот дар зери бори муштарӣ сӯҳбат хоҳем кард. Дар ниҳоят, вақте ки мо замимаи худро дар контейнер ҷойгир мекунем ва ба он имкон медиҳем, ки барои коркарди ҳама гуна дархостҳои воридотӣ миқёси озодона гузорем, ин табиист, ки сарбории пойгоҳи додаҳоро зиёд мекунад.

Дарвоқеъ, канал барои дастрасӣ ба пойгоҳи додаҳо ва сервере, ки дар он кор мекунад, чашми сӯзан дар паси зебои контейнерии мо мегардад. Ҳамзамон, ангезаи асосии виртуализатсияи контейнерӣ ҳаракатнокӣ ва чандирии сохтор мебошад, ки ба мо имкон медиҳад, ки тақсимоти сарбориро дар тамоми инфрасохтори дастрас ба қадри имкон самаранок ташкил кунем. Яъне, агар мо ҳама унсурҳои мавҷудаи системаро дар саросари кластер контейнерсозӣ ва паҳн накунем, мо хатои хеле ҷиддӣ содир мекунем.

Кластер кардани на танҳо худи барнома, балки хидматҳое, ки барои нигоҳдории маълумот масъуланд, хеле мантиқтар аст. Бо кластеркунӣ ва ҷойгиркунии веб-серверҳое, ки мустақилона кор мекунанд ва сарбориро дар k8s байни худ тақсим мекунанд, мо аллакай мушкилоти ҳамоҳангсозии маълумотро ҳал карда истодаем - ҳамон шарҳҳо дар бораи паёмҳо, агар мо баъзе расонаҳо ё платформаи блогро мисол гирем. Дар ҳар сурат, мо дар дохили кластер, ҳатто виртуалӣ муаррифии пойгоҳи додаҳо ҳамчун ExternalService дорем. Савол ин аст, ки худи махзани маълумот ҳанӯз кластер нашудааст - веб-серверҳои дар куб ҷойгиршуда дар бораи тағирот аз базаи статикии ҷангии мо, ки алоҳида давр мезанад, маълумот мегиранд.

Оё шумо сайдро ҳис мекунед? Мо k8s ё Swarm-ро барои тақсим кардани сарбор истифода мебарем ва аз садамаҳои веб-сервери асосӣ пешгирӣ мекунем, аммо мо ин корро барои пойгоҳи додаҳо иҷро намекунем. Аммо агар махзани маълумот ба садама дучор шавад, пас тамоми инфрасохтори кластерии мо маъное надорад - веб-саҳифаҳои холӣ, ки хатои дастрасӣ ба пойгоҳи додаҳоро бармегардонанд, чӣ фоида доранд?

Аз ин рӯ, зарур аст, ки на танҳо веб-серверҳоро, ки одатан анҷом дода мешавад, кластер кунед, балки инфрасохтори пойгоҳи додаҳо низ. Танҳо бо ин роҳ мо метавонем сохтореро таъмин кунем, ки дар як даста пурра кор кунад, вале дар айни замон аз ҳамдигар мустақил бошад. Гузашта аз ин, ҳатто агар нисфи пуштибонии мо дар зери сарборӣ "фурӯпошад" бошад ҳам, боқимонда зинда мемонад ва системаи ҳамоҳангсозии пойгоҳи додаҳо бо ҳамдигар дар дохили кластер ва қобилияти беохир миқёс ва ҷойгиркунии кластерҳои нав барои зуд расидан ба иқтидори зарурӣ - агар танҳо дар маркази додаҳо рафҳо мебуданд.

Илова бар ин, модели пойгоҳи додаҳо, ки дар кластерҳо тақсим карда шудааст, ба шумо имкон медиҳад, ки ин махзани маълумотро ба ҷои лозима баред; Агар сухан дар бораи хидматрасонии ҷаҳонӣ равад, пас дар ҷое дар минтақаи Сан-Франсиско чарх задани веб-кластери ва ҳамзамон фиристодани пакетҳо ҳангоми дастрасӣ ба пойгоҳи додаҳо дар минтақаи Маскав ва бозгашт комилан ғайримантиқист.

Инчунин, контейнеризатсияи пойгоҳи додаҳо ба шумо имкон медиҳад, ки ҳамаи унсурҳои системаро дар як сатҳи абстраксия созед. Ин, дар навбати худ, имкон медиҳад, ки худи ин система мустақиман аз код, аз ҷониби таҳиягарон, бе иштироки фаъоли маъмурон идора карда шавад. Таҳиягарон фикр мекарданд, ки барои зерлоиҳаи нав DBMS-и алоҳида лозим аст - осон! файли yaml навишт, онро ба кластер бор кард ва шумо анҷом додед.

Ва албатта, амалиёти дохилӣ хеле содда карда шудааст. Ба ман бигӯед, ки шумо чанд маротиба чашмони худро пӯшидаед, вақте ки узви нави даста дастҳои худро ба базаи ҷангӣ барои кор гузошт? Дарвоқеъ кадоме ягонаест, ки шумо доред ва ҳоло чарх мезанад? Албатта, мо дар ин ҷо ҳама калонсолон ҳастем ва дар ҷое мо як нусхаи тоза дорем ва ҳатто дуртар - дар паси раф бо бодирингҳои бибию лижаҳои кӯҳна - нусхаи эҳтиётии дигар, шояд ҳатто дар яхдон, зеро офиси шумо аллакай як бор оташ гирифта буд. Аммо ба ҳар ҳол, ҳар як муаррифии як узви нави даста бо дастрасӣ ба инфрасохтори ҷангӣ ва, албатта, ба пойгоҳи додаҳои ҷангӣ як сатил валидол барои ҳама дар атроф аст. Хуб, кӣ ӯро мешиносад, навкор, шояд вай салиб бошад? Ин даҳшатнок аст, шумо розӣ мешавед.

Контейнеризатсия ва дар асл, топологияи физикии тақсимшудаи базаи лоиҳаи шумо барои пешгирӣ кардани чунин лаҳзаҳои тасдиқкунанда кӯмак мекунад. Ба навкор бовар накунед? ДУРУСТ! Биёед ба ӯ кластери шахсии худро диҳем, ки бо он кор кунад ва пойгоҳи додаҳоро аз кластерҳои дигар ҷудо кунад - синхронизатсия танҳо бо пахши дастӣ ва гардиши синхронии ду калид (яке барои роҳбари даста, дигаре барои администратор). Ва ҳама хушбахтанд.

Ва ҳоло вақти он расидааст, ки ба мухолифони кластерсозии пойгоҳи додаҳо табдил ёбем.

Тарафи торик

Бо баҳс кардан, ки чаро контейнер кардани пойгоҳи додаҳо ва идома додани он дар як сервери марказӣ арзанда нест, мо ба риторикаи православӣ ва изҳорот, ба монанди "бобоҳо дар сахтафзор пойгоҳи додаҳоро идора мекарданд ва мо низ ҳамин тавр хоҳем шуд!" Ба ҷои ин, биёед кӯшиш кунем, ки вазъиятеро пайдо кунем, ки дар он контейнерсозӣ воқеан дивидендҳои назаррас медиҳад.

Розӣ шавед, ки лоиҳаҳоеро, ки воқеан дар як контейнер ба пойгоҳ ниёз доранд, на беҳтарин оператори фрезерӣ бо ангуштони як даст ҳисоб кардан мумкин аст. Дар аксари мавридҳо, ҳатто худи истифодаи k8s ё Docker Swarm зиёдатӣ аст - аксар вақт ин асбобҳо аз сабаби шустушӯи умумии технологияҳо ва муносибати "қудратманд" дар шахсияти ҷинсҳо барои тела додани ҳама чиз истифода мешаванд. абрҳо ва контейнерҳо. Хуб, зеро ҳоло ин муд шудааст ва ҳама ин корро мекунанд.

Дар ҳадди аққал нисфи ҳолатҳо, истифодаи Kubernetis ё танҳо Docker дар лоиҳа зиёдатист. Масъала дар он аст, ки на ҳама дастаҳо ё ширкатҳои аутсорсинг, ки барои нигоҳ доштани инфрасохтори муштарӣ киро шудаанд, аз ин огоҳанд. Вақте ки контейнерҳо гузошта мешаванд, бадтар аст, зеро он ба мизоҷ миқдори муайяни танга арзиш дорад.

Умуман, чунин ақида вуҷуд дорад, ки мафияи докер/куб муштариёнеро, ки ин масъалаҳои инфрасохторро аутсорсинг мекунанд, аблаҳона пахш мекунад. Дар ниҳоят, барои кор бо кластерҳо ба мо муҳандисон лозиманд, ки ба ин қодир бошанд ва умуман меъмории ҳалли татбиқшударо дарк кунанд. Мо боре қазияи худро бо нашрияи ҷумҳуриявӣ тавсиф карда будем - дар он ҷо мо дастаи муштариро барои кор кардан дар воқеияти Кубернетис таълим додем ва ҳама қаноатманд буданд. Ва он сазовор буд. Аксар вақт, "иҷрокунандагони" k8s инфрасохтори муштариро гаравгон мегиранд - зеро ҳоло танҳо онҳо дарк мекунанд, ки ҳама чиз дар он ҷо чӣ гуна кор мекунад; дар тарафи муштарӣ мутахассисон нестанд.

Акнун тасаввур кунед, ки бо ин роҳ мо на танҳо қисми сервери веб, балки нигоҳдории пойгоҳи додаҳоро низ аутсорсинг мекунем. Гуфтем, ки БД дил аст ва аз даст додани дил барои ҳар як организми зинда марговар аст. Хулоса, пешомадҳо беҳтарин нестанд. Ҳамин тавр, ба ҷои шитоби Kubernetis, бисёр лоиҳаҳо набояд бо тарифи муқаррарии AWS, ки ҳама мушкилотро бо сарборӣ дар сайт / лоиҳаи онҳо ҳал мекунанд, ташвиш надиҳад. Аммо AWS дигар муд нест ва намоишҳо аз пул бештар арзиш доранд - мутаассифона, дар муҳити IT низ.

ДУРУСТ. Эҳтимол, лоиҳа воқеан ба кластерсозӣ ниёз дорад, аммо агар бо барномаҳои бешаҳрванд ҳама чиз равшан бошад, пас чӣ гуна мо метавонем пайвасти хуби шабакаро барои пойгоҳи додаҳои кластерӣ ташкил кунем?

Агар мо дар бораи як ҳалли бефосилаи муҳандисӣ сухан ронем, ки ин гузариш ба k8s аст, пас дарди асосии мо такрори маълумот дар пойгоҳи додаҳои кластерӣ мебошад. Баъзе DBMS дар аввал ба тақсимоти додаҳо байни мисолҳои инфиродии худ хеле содиқанд. Бисьёр дигарон он кадар пазирой нестанд. Ва аксар вақт далели асосӣ дар интихоби DBMS барои лоиҳаи мо қобилияти такрорӣ бо хароҷоти ҳадди ақали захираҳо ва муҳандисӣ нест. Хусусан, агар лоиҳа дар аввал ҳамчун як хидматрасонии хурд ба нақша гирифта нашуда бошад, балки танҳо дар ин самт инкишоф ёбад.

Мо фикр мекунем, ки дар бораи суръати дискҳои шабакавӣ гап задан лозим нест - онҳо сустанд. Онхое. Мо то ҳол имкони воқеиро надорем, ки агар чизе рӯй диҳад, як мисоли DBMS-ро дар ҷое аз нав оғоз кунем, масалан, қудрати протсессори ё RAM ройгон. Мо хеле зуд ба иҷрои зерсистемаи диски виртуалӣ дучор мешавем. Мувофиқи он, DBMS бояд ба маҷмӯи шахсии мошинҳои худ, ки дар наздикии он ҷойгиранд, мехкӯб карда шавад. Ё зарур аст, ки ба таври ҷудогона синхронизатсияи тези маълумотро барои захираҳои пешбинишуда хунук кунед.

Идомаи мавзӯи системаҳои файлии виртуалӣ: Ҳаҷми Docker, мутаассифона, бе мушкилот нестанд. Умуман, дар чунин масъала, ба монанди нигоҳдории боэътимоди маълумот, ман мехоҳам бо схемаҳои аз ҷиҳати техникӣ соддатарин кор кунам. Ва илова кардани қабати нави абстраксия аз FS-и контейнер ба FS-и мизбони волидайн худ як хатар аст. Аммо вақте ки кори системаи пуштибонии контейнерсозӣ дар интиқоли маълумот байни ин қабатҳо низ ба мушкилот дучор мешавад, пас ин воқеан як фалокат аст. Дар айни замон аксарияти проблемахое, ки ба инсонияти тараккипарвар маълуманд, гуё бартараф карда шудаанд. Аммо шумо мефаҳмед, ки механизм чӣ қадар мураккабтар бошад, он қадар осонтар мешиканад.

Бо назардошти ҳамаи ин "саргузаштҳо", нигоҳ доштани пойгоҳи додаҳо дар як ҷо хеле фоиданоктар ва осонтар аст ва ҳатто агар ба шумо лозим аст, ки барномаро контейнер кунед, бигзор он мустақилона кор кунад ва тавассути шлюзи тақсимот иртиботи ҳамзамон бо махзани маълумот, ки танҳо як маротиба ва дар як ҷо хонда ва навишта мешавад. Ин равиш эҳтимолияти хатогиҳо ва синхронизатсияро то ҳадди ақал коҳиш медиҳад.

Мо ба чӣ оварда истодаем? Ғайр аз он, контейнеризатсияи пойгоҳи додаҳо дар он ҷо мувофиқ аст, ки ба он эҳтиёҷоти воқеӣ вуҷуд дорад. Шумо наметавонед махзани пурраи барномаро пур кунед ва онро гӯё ду даҳҳо хидматрасонии хурд дошта бошед - ин тавр кор намекунад. Ва ин бояд равшан фаҳмид.

Ба ҷои баромадан

Агар шумо интизори хулосаи возеҳ "барои виртуализатсия кардани пойгоҳи додаҳо ё не" бошед, мо шуморо ноумед хоҳем кард: он дар ин ҷо нахоҳад буд. Зеро ҳангоми эҷоди ҳама гуна ҳалли инфрасохтор на мӯд ва пешрафт, балки пеш аз ҳама ақли солимро роҳнамоӣ кардан лозим аст.

Лоиҳаҳое ҳастанд, ки принсипҳо ва асбобҳое, ки бо Kubernetis меоянд, комилан мувофиқанд ва дар чунин лоиҳаҳо ҳадди аққал дар минтақаи пушти сар оромӣ вуҷуд дорад. Ва лоиҳаҳое ҳастанд, ки ба контейнеризатсия ниёз надоранд, балки ба инфрасохтори муқаррарии сервер ниёз доранд, зеро онҳо ба таври куллӣ ба модели кластери микросервис тағир дода наметавонанд, зеро онҳо меафтанд.

Манбаъ: will.com

Илова Эзоҳ