Архитектураи мувозинати сарбории шабака дар Yandex.Cloud

Архитектураи мувозинати сарбории шабака дар Yandex.Cloud
Салом, ман Сергей Еланцев ҳастам, ман рушд мекунам мувозинати сарбории шабака дар Yandex.Cloud. Қаблан ман ба таҳияи мувозинати L7 барои портали Яндекс роҳбарӣ мекардам - ​​ҳамкорон шӯхӣ мекунанд, ки новобаста аз он ки ман чӣ кор кунам, он мувозинат аст. Ман ба хонандагони Ҳабр мегӯям, ки чӣ гуна сарборӣ дар платформаи абрӣ идора карда шавад, он чизеро, ки мо ҳамчун воситаи беҳтарин барои ноил шудан ба ин ҳадаф мебинем ва чӣ гуна мо барои сохтани ин асбоб ҳаракат мекунем.

Аввалан, биёед якчанд истилоҳҳоро муаррифӣ кунем:

  • VIP (Virtual IP) - суроғаи IP мувозинат
  • Сервер, пуштибон, мисол - мошини маҷозӣ, ки барномаро иҷро мекунад
  • RIP (IP Real) - суроғаи IP-сервер
  • Healthcheck - санҷиши омодагии сервер
  • Минтақаи дастрас, AZ - инфрасохтори ҷудошуда дар маркази додаҳо
  • Вилоят — иттиходи АЗ-хои гуногун

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

Тавозуни сарборӣ аксар вақт аз рӯи қабати протокол аз модели OSI, ки дар он кор мекунад, тасниф карда мешавад. Тавозуни абрӣ дар сатҳи TCP кор мекунад, ки ба қабати чорум L4 мувофиқат мекунад.

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

Ҳавопаймои маълумот

Трафик дар дастгоҳҳои гаронбаҳо бо номи роутерҳои сарҳадӣ анҷом меёбад. Барои баланд бардоштани таҳаммулпазирии хатогиҳо, якчанд чунин дастгоҳҳо ҳамзамон дар як маркази додаҳо кор мекунанд. Баъдан, трафик ба балансчиён меравад, ки суроғаҳои IP-ро ба ҳама AZ тавассути BGP барои муштариён эълон мекунанд. 

Архитектураи мувозинати сарбории шабака дар Yandex.Cloud

Трафик тавассути ECMP интиқол дода мешавад - ин як стратегияи масир аст, ки мувофиқи он метавонад якчанд хатсайрҳои баробар хуб ба ҳадаф мавҷуд бошанд (дар ҳолати мо, ҳадаф суроғаи IP-и таъинотӣ хоҳад буд) ва пакетҳоро дар ҳар кадоми онҳо фиристодан мумкин аст. Мо инчунин корро дар якчанд минтақаҳои мавҷуда мувофиқи нақшаи зерин дастгирӣ мекунем: мо дар ҳар як минтақа суроғаро эълон мекунем, трафик ба наздиктарин меравад ва аз ҳудуди он берун намеравад. Баъдтар дар ин мақола мо ба таври муфассал дар бораи он ки бо трафик чӣ рӯй медиҳад, дида мебароем.

Танзими ҳавопаймо

 
Ҷузъи калидии ҳавопаймои конфигуратсия API мебошад, ки тавассути он амалиёти асосӣ бо тавозунгузор анҷом дода мешавад: эҷод, нест кардан, тағир додани таркиби инстансияҳо, ба даст овардани натиҷаҳои санҷиши саломатӣ ва ғайра. Аз як тараф, ин API REST аст ва аз тарафи дигар, мо дар Абр аксар вақт чаҳорчӯбаи gRPC-ро истифода мебарем, аз ин рӯ мо REST-ро ба gRPC "тарҷума" мекунем ва сипас танҳо gRPC -ро истифода мебарем. Ҳар як дархост боиси эҷоди як қатор вазифаҳои асинхронии идемпотент мегардад, ки дар ҳавзи умумии коргарони Yandex.Cloud иҷро карда мешаванд. Супоришҳо тавре навишта мешаванд, ки онҳоро дар вақти дилхоҳ боздоштан ва сипас аз нав оғоз кардан мумкин аст. Ин миқёспазирӣ, такроршавандагӣ ва сабти амалиётҳоро таъмин мекунад.

Архитектураи мувозинати сарбории шабака дар Yandex.Cloud

Дар натиҷа, супориш аз API ба нозири хидматрасонии баланскунанда, ки дар Go навишта шудааст, дархост мекунад. Он метавонад мувозинатҳоро илова ва хориҷ кунад, таркиби пуштибонҳо ва танзимотро тағир диҳад. 

Архитектураи мувозинати сарбории шабака дар Yandex.Cloud

Хидмат ҳолати худро дар Пойгоҳи додаҳои Яндекс, махзани тақсимшудаи идорашаванда нигоҳ медорад, ки шумо ба зудӣ метавонед онро истифода баред. Дар Yandex.Cloud, чунон ки мо аллакай гуфт, консепсияи ғизои сагҳо татбиқ мешавад: агар мо худамон аз хидматҳои худ истифода барем, пас мизоҷони мо низ аз истифодаи онҳо хушҳоланд. Махзани маълумоти Яндекс як мисоли татбиқи чунин консепсия мебошад. Мо ҳама маълумоти худро дар YDB нигоҳ медорем ва ба мо лозим нест, ки дар бораи нигоҳдорӣ ва миқёси пойгоҳи додаҳо фикр кунем: ин мушкилот барои мо ҳал карда мешаванд, мо махзани маълумотро ҳамчун хидмат истифода мебарем.

Биёед ба контролери тавозунгар баргардем. Вазифаи он нигоҳ доштани маълумот дар бораи балансатор ва фиристодани супориш барои санҷиши омодагии мошини маҷозӣ ба контролери саломатӣ мебошад.

Назорати санҷиши саломатӣ

Он дархостҳоро барои тағир додани қоидаҳои санҷиш қабул мекунад, онҳоро дар YDB захира мекунад, вазифаҳоро дар байни гиреҳҳои санҷиш тақсим мекунад ва натиҷаҳоро ҷамъ мекунад, ки баъдан дар пойгоҳи додаҳо захира карда, ба контролери сарборӣ фиристода мешавад. Он, дар навбати худ, дархост барои тағир додани таркиби кластер дар ҳавопаймои додаҳо ба гиреҳи loadbalancer мефиристад, ки ман дар поён муҳокима хоҳам кард.

Архитектураи мувозинати сарбории шабака дар Yandex.Cloud

Биёед дар бораи санҷишҳои саломатӣ бештар сӯҳбат кунем. Онҳоро ба якчанд синфҳо тақсим кардан мумкин аст. Аудитҳо меъёрҳои гуногуни муваффақият доранд. Санҷишҳои TCP бояд бомуваффақият пайвастшавӣ дар муддати муайян муқаррар карда шаванд. Санҷишҳои HTTP ҳам пайвасти бомуваффақият ва ҳам посухро бо рамзи ҳолати 200 талаб мекунанд.

Инчунин, чекҳо аз рӯи синфи амал фарқ мекунанд - онҳо фаъол ва ғайрифаъол мебошанд. Санҷишҳои ғайрифаъол танҳо назорат мекунанд, ки бо трафик чӣ рӯй дода истодааст, бидуни андешидани ягон амали махсус. Ин дар L4 чандон хуб кор намекунад, зеро он аз мантиқи протоколҳои сатҳи болотар вобаста аст: дар L4 маълумот дар бораи чанд муддат тӯл кашидани амалиёт ё анҷоми пайвастшавӣ хуб ё бад будани он вуҷуд надорад. Санҷишҳои фаъол аз мувозинат талаб мекунанд, ки ба ҳар як мисоли сервер дархост фиристад.

Аксари мувозинатҳои сарборӣ худашон санҷиши зиндаро анҷом медиҳанд. Дар Cloud, мо тасмим гирифтем, ки ин қисмҳои системаро барои баланд бардоштани миқёспазирӣ ҷудо кунем. Ин равиш ба мо имкон медиҳад, ки шумораи мувозинатҳоро зиёд кунем ва ҳангоми нигоҳ доштани шумораи дархостҳои санҷиши тиббӣ ба хидмат. Санҷишҳо аз ҷониби гиреҳҳои алоҳидаи санҷиши саломатӣ анҷом дода мешаванд, ки дар онҳо ҳадафҳои санҷиш тақсим ва такрор карда мешаванд. Шумо наметавонед санҷишҳоро аз як ҳост иҷро кунед, зеро он метавонад ноком шавад. Он гоҳ мо ҳолати инстансияҳоеро, ки ӯ тафтиш кардааст, намегирем. Мо дар ҳама гуна ҳолатҳо аз ҳадди аққал се гиреҳи санҷиши саломатӣ санҷиш мегузаронем. Мо ҳадафҳои тафтиши байни гиреҳҳоро бо истифода аз алгоритмҳои пайвастаи ҳашинг тақсим мекунем.

Архитектураи мувозинати сарбории шабака дар Yandex.Cloud

Ҷудо кардани мувозинат ва санҷиши саломатӣ метавонад ба мушкилот оварда расонад. Агар гиреҳи санҷиши саломатӣ ба инстансия муроҷиат кунад, ки аз балансатор (ки айни замон ба трафик хизмат намекунад), пас вазъияти аҷибе ба миён меояд: захира ба назар зинда аст, аммо трафик ба он намерасад. Мо ин мушкилотро чунин ҳал мекунем: ба мо кафолат дода мешавад, ки трафики саломатиро тавассути балансчиён оғоз кунем. Ба ибораи дигар, нақшаи интиқоли бастаҳо бо трафик аз муштариён ва аз санҷишҳои саломатӣ каме фарқ мекунад: дар ҳарду ҳолат бастаҳо ба балансаторҳо мерасанд, ки онҳоро ба захираҳои мақсаднок мерасонад.

Фарқият дар он аст, ки муштариён ба VIP дархост пешниҳод мекунанд, дар ҳоле ки санҷишҳои саломатӣ ба ҳар як RIP инфиродӣ дархост мекунанд. Дар ин ҷо як мушкилоти ҷолиб ба миён меояд: мо ба корбарони худ имкон медиҳем, ки захираҳоро дар шабакаҳои хокистарии IP эҷод кунанд. Биёед тасаввур кунем, ки ду соҳиби абрҳои гуногун мавҷуданд, ки хидматҳои худро дар паси мувозинатҳо пинҳон кардаанд. Ҳар яке аз онҳо дорои захираҳои зершабакаи 10.0.0.1/24 бо суроғаҳои якхела. Шумо бояд онҳоро бо ягон роҳ фарқ карда тавонед ва дар ин ҷо шумо бояд ба сохтори шабакаи виртуалии Yandex.Cloud ворид шавед. Беҳтар аст, ки тафсилоти бештарро дар видео аз ҳодисаи about:cloud, барои мо ҳоло муҳим аст, ки шабака чандқабат аст ва нақбҳое дорад, ки онҳоро бо идентификатсияи зершабака фарқ кардан мумкин аст.

Гиреҳҳои саломатӣ бо истифода аз суроғаҳои ба истилоҳ квази-IPv6 бо мувозинатҳо тамос мегиранд. Квази-адрес як суроғаи IPv6 бо суроғаи IPv4 ва ID зершабакаи корбар дар дохили он ҷойгир карда шудааст. Трафик ба мувозинат мерасад, ки суроғаи манбаи IPv4-ро аз он мебарорад, IPv6-ро бо IPv4 иваз мекунад ва бастаро ба шабакаи корбар мефиристад.

Трафики баръакс ба ҳамон роҳ меравад: мувозинат мебинад, ки макони таъиншуда шабакаи хокистарӣ аз сандуқшиносон аст ва IPv4-ро ба IPv6 табдил медиҳад.

VPP - дили ҳавопаймои маълумот

Мувозинат бо истифода аз технологияи Vector Packet Processing (VPP), чаҳорчӯбаи Cisco барои коркарди пакетии трафики шабакавӣ амалӣ карда мешавад. Дар ҳолати мо, чаҳорчӯба дар болои китобхонаи идоракунии дастгоҳи шабакавии корбар кор мекунад - Kit Data Plane Development (DPDK). Ин иҷрои баланди коркарди бастаҳоро таъмин мекунад: дар ядро ​​​​танаффусҳо хеле камтар рух медиҳанд ва дар байни фазои ядро ​​​​ва фазои корбар гузариши контекстӣ вуҷуд надорад. 

VPP боз ҳам пештар меравад ва тавассути муттаҳид кардани бастаҳо ба гурӯҳҳо иҷрои боз ҳам бештарро аз система берун мекунад. Муваффақиятҳо аз истифодаи хашмгини кэшҳо дар протсессори муосир ба даст меоянд. Ҳарду кэшҳои додаҳо (пакетҳо дар “векторҳо” коркард мешаванд, додаҳо ба ҳамдигар наздиканд) ва кэшҳои дастурӣ истифода мешаванд: дар VPP коркарди бастаҳо аз рӯи график сурат мегирад, ки гиреҳҳои онҳо функсияҳои якхеларо иҷро мекунанд.

Масалан, коркарди пакетҳои IP дар VPP бо тартиби зерин сурат мегирад: аввал, сарлавҳаҳои пакетҳо дар гиреҳи таҳлилӣ таҳлил карда мешаванд ва баъд онҳо ба гиреҳ фиристода мешаванд, ки бастаҳоро мувофиқи ҷадвалҳои масир минбаъд интиқол медиҳад.

Каме хардкор. Муаллифони VPP ба созишҳо дар истифодаи кэшҳои протсессор таҳаммул намекунанд, аз ин рӯ рамзи маъмулии коркарди вектори пакетҳо векторизатсияи дастӣ дорад: як ҳалқаи коркард мавҷуд аст, ки дар он вазъият ба монанди "мо чаҳор пакет дар навбат ҳастем" коркард мешавад, пас барои ду баробар, баъд барои як. Дастурҳои пешакӣ аксар вақт барои бор кардани маълумот ба кэшҳо истифода мешаванд, то дастрасӣ ба онҳо дар такрорҳои минбаъда суръат бахшанд.

n_left_from = frame->n_vectors;
while (n_left_from > 0)
{
    vlib_get_next_frame (vm, node, next_index, to_next, n_left_to_next);
    // ...
    while (n_left_from >= 4 && n_left_to_next >= 2)
    {
        // processing multiple packets at once
        u32 next0 = SAMPLE_NEXT_INTERFACE_OUTPUT;
        u32 next1 = SAMPLE_NEXT_INTERFACE_OUTPUT;
        // ...
        /* Prefetch next iteration. */
        {
            vlib_buffer_t *p2, *p3;

            p2 = vlib_get_buffer (vm, from[2]);
            p3 = vlib_get_buffer (vm, from[3]);

            vlib_prefetch_buffer_header (p2, LOAD);
            vlib_prefetch_buffer_header (p3, LOAD);

            CLIB_PREFETCH (p2->data, CLIB_CACHE_LINE_BYTES, STORE);
            CLIB_PREFETCH (p3->data, CLIB_CACHE_LINE_BYTES, STORE);
        }
        // actually process data
        /* verify speculative enqueues, maybe switch current next frame */
        vlib_validate_buffer_enqueue_x2 (vm, node, next_index,
                to_next, n_left_to_next,
                bi0, bi1, next0, next1);
    }

    while (n_left_from > 0 && n_left_to_next > 0)
    {
        // processing packets by one
    }

    // processed batch
    vlib_put_next_frame (vm, node, next_index, n_left_to_next);
}

Ҳамин тавр, Healthchecks тавассути IPv6 бо VPP сӯҳбат мекунад, ки онҳоро ба IPv4 табдил медиҳад. Инро гиреҳ дар график анҷом медиҳад, ки мо онро алгоритми NAT меномем. Барои трафики баръакс (ва табдилдиҳӣ аз IPv6 ба IPv4) ҳамон гиреҳи алгоритмии NAT мавҷуд аст.

Архитектураи мувозинати сарбории шабака дар Yandex.Cloud

Трафики мустақим аз муштариёни тавозункунанда аз гиреҳҳои графикӣ мегузарад, ки худи мувозинатро иҷро мекунанд. 

Архитектураи мувозинати сарбории шабака дар Yandex.Cloud

Гиреҳи аввал сессияҳои часпанда мебошанд. Он хэш-ро нигоҳ медорад 5-навор барои сессияхои мукарраршуда. 5-навор суроға ва порти муштарӣ, ки аз он маълумот интиқол дода мешавад, суроға ва портҳои захираҳои барои қабули трафик, инчунин протоколи шабакаро дар бар мегирад. 

Хеши 5-навор ба мо кӯмак мекунад, ки дар гиреҳи минбаъдаи пайгирона ҳисобкунии камтар анҷом диҳем ва инчунин тағир додани рӯйхати захираҳоро дар паси балансатор беҳтар идора кунем. Вақте ки бастае, ки барои он сеанс нест, ба мувозинат меояд, он ба гиреҳи пайвастаи хэшинг фиристода мешавад. Ин аст, ки мувозинат бо истифода аз ҳашингии пайваста сурат мегирад: мо аз рӯйхати захираҳои мавҷудаи "зинда" захира интихоб мекунем. Баъдан, бастаҳо ба гиреҳи NAT фиристода мешаванд, ки он воқеан суроғаи таъинотро иваз мекунад ва маблағи назоратро аз нав ҳисоб мекунад. Тавре ки шумо мебинед, мо қоидаҳои VPP-ро риоя мекунем - маъқул кардан, гурӯҳбандӣ кардани ҳисобҳои шабеҳ барои баланд бардоштани самаранокии кэшҳои протсессор.

Ҳашингии пайваста

Чаро мо онро интихоб кардем ва он чӣ гуна аст? Аввалан, биёед вазифаи қаблиро баррасӣ кунем - интихоби манбаъ аз рӯйхат. 

Архитектураи мувозинати сарбории шабака дар Yandex.Cloud

Бо хэши номувофиқ, хэши бастаи воридотӣ ҳисоб карда мешавад ва захира аз рӯйхат бо қисми боқимондаи тақсими ин хэш ба шумораи захираҳо интихоб карда мешавад. То он даме, ки рӯйхат бетағйир боқӣ мемонад, ин схема хуб кор мекунад: мо ҳамеша пакетҳоро бо ҳамон 5-корта ба як мисол мефиристем. Агар, масалан, ягон манбаъ посух додан ба санҷишҳои саломатиро қатъ кунад, пас барои як қисми зиёди хэшҳо интихоб тағир меёбад. Пайвастҳои TCP-и муштарӣ канда мешаванд: бастае, ки қаблан ба мисоли A расида буд, метавонад ба мисоли B, ки бо сессияи ин баста ошно нест, оғоз кунад.

Хешинги пайваста мушкилоти тавсифшударо ҳал мекунад. Роҳи осонтарини шарҳ додани ин консепсия ин аст: тасаввур кунед, ки шумо ҳалқае доред, ки шумо ба он захираҳоро тавассути хэш тақсим мекунед (масалан, тавассути IP: порт). Интихоби захира ин гардиши чарх бо кунҷест, ки аз рӯи хэши баста муайян карда мешавад.

Архитектураи мувозинати сарбории шабака дар Yandex.Cloud

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

Мо дида баромадем, ки трафики мустақим байни мувозинат ва захираҳо чӣ мешавад. Акнун биёед трафики бозгаштро бубинем. Он ҳамон шакли трафики чекро риоя мекунад - тавассути NAT алгоритми, яъне тавассути NAT 44 баръакс барои трафики муштарӣ ва тавассути NAT 46 барои трафики санҷиши саломатӣ. Мо ба нақшаи худ риоя мекунем: мо трафики санҷиши саломатӣ ва трафики воқеии корбаронро муттаҳид мекунем.

Loadbalancer-гиреҳ ва ҷузъҳои ҷамъшуда

Дар бораи таркиби балансчиён ва захираҳо дар VPP хадамоти маҳаллӣ - loadbalancer-node гузориш медиҳад. Он ба ҷараёни рӯйдодҳо аз loadbalancer-controller обуна мешавад ва қодир аст фарқияти байни ҳолати кунунии VPP ва ҳолати мақсадноки аз контроллер гирифташударо муайян кунад. Мо системаи пӯшида мегирем: рӯйдодҳо аз API ба контролери баланскунанда меоянд, ки он ба контролери санҷиши саломатӣ барои тафтиши "зиндагӣ" -и захираҳо вазифаҳо медиҳад. Ин, дар навбати худ, ба гиреҳи санҷиши саломатӣ вазифаҳо мегузорад ва натиҷаҳоро ҷамъ мекунад ва пас аз он онҳоро ба контролери балансатор бармегардонад. Loadbalancer-гиреҳ ба рӯйдодҳои контроллер обуна мешавад ва ҳолати VPP-ро тағир медиҳад. Дар чунин система, ҳар як хидмат танҳо дар бораи хидматҳои ҳамсоя он чизеро медонад. Миқдори пайвастҳо маҳдуд аст ва мо қобилияти кор кардан ва миқёси сегментҳои гуногунро мустақилона дорем.

Архитектураи мувозинати сарбории шабака дар Yandex.Cloud

Кадом масъалаҳо пешгирӣ карда шуданд?

Ҳама хидматҳои мо дар ҳавопаймои идоракунӣ дар Go навишта шудаанд ва дорои хусусиятҳои хуби миқёс ва эътимод мебошанд. Go дорои китобхонаҳои зиёди кушодаасос барои сохтани системаҳои тақсимшуда мебошад. Мо GRPC-ро фаъолона истифода мебарем, дар ҳама ҷузъҳо татбиқи манбаи кушодаи кашфи хидматҳо мавҷуданд - хидматҳои мо иҷрои якдигарро назорат мекунанд, метавонанд таркиби онҳоро динамикӣ тағйир диҳанд ва мо инро бо тавозуни GRPC пайваст кардем. Барои ченакҳо, мо инчунин ҳалли сарчашмаи кушодаро истифода мебарем. Дар ҳавопаймои маълумот, мо иҷрои муносиб ва захираи калони захираҳо ба даст овардем: ҷамъ кардани стенд хеле душвор буд, ки мо метавонем ба кори VPP такя кунем, на корти шабакаи оҳанӣ.

Мушкилот ва роҳҳои ҳалли

Чӣ хуб кор накард? Go идоракунии худкори хотира дорад, аммо ихроҷи хотира то ҳол рух медиҳад. Роҳи осонтарини мубориза бо онҳо ин кор кардани горутинҳо ва фаромӯш кардани онҳо мебошад. Гирифтан: истеъмоли хотираи барномаҳои Go-и худро тамошо кунед. Аксар вақт нишондиҳандаи хуб шумораи горутинҳо мебошад. Дар ин ҳикоя як плюс вуҷуд дорад: дар Go гирифтани маълумот дар вақти корӣ осон аст - истеъмоли хотира, шумораи горутинҳои иҷрошаванда ва бисёр параметрҳои дигар.

Инчунин, Go метавонад интихоби беҳтарин барои санҷишҳои функсионалӣ набошад. Онҳо хеле муфассаланд ва равиши стандартии "кор кардани ҳама чизро дар CI дар як партия" барои онҳо чандон мувофиқ нест. Далели он аст, ки санҷишҳои функсионалӣ бештар захираҳоро талаб мекунанд ва ба вақти воқеӣ сабаб мешаванд. Аз ин сабаб, санҷишҳо метавонанд ноком шаванд, зеро CPU бо санҷишҳои воҳид банд аст. Хулоса: Агар имконпазир бошад, санҷишҳои "вазнин" -ро аз санҷишҳои воҳидҳо ҷудо кунед. 

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

Планхои мо

Мо як мувозинати дохилӣ, мувозинати IPv6-ро ба кор меандозем, барои скриптҳои Kubernetes дастгирӣ илова мекунем, тақсим кардани хидматҳои моро идома медиҳем (дар айни замон танҳо Healthcheck-node ва Healthcheck-ctrl тақсим карда шудаанд), санҷишҳои нави саломатӣ илова мекунанд ва инчунин маҷмӯи оқилонаи чекҳоро амалӣ мекунем. Мо имкони боз ҳам мустақилтар кардани хидматҳои худро баррасӣ карда истодаем, то онҳо на мустақиман бо ҳамдигар, балки бо истифода аз навбати паём муошират кунанд. Ба наздикӣ дар абр хидмати мувофиқи SQS пайдо шуд Навбати паёмҳои Yandex.

Ба наздикӣ нашри оммавии Yandex Load Balancer баргузор шуд. Кашф кунед ҳуҷҷатҳо ба хидматрасонӣ, мувозинатҳоро тавре идора кунед, ки барои шумо мувофиқ бошад ва таҳаммулпазирии хатогиҳои лоиҳаҳои худро зиёд кунед!

Манбаъ: will.com

Илова Эзоҳ