paint-brush
Стратегияҳои устувори ҷаҳонии воқеӣ барои лоиҳаҳои Fintechаз ҷониби@ymatigoosa
67,475 хониш
67,475 хониш

Стратегияҳои устувори ҷаҳонии воқеӣ барои лоиҳаҳои Fintech

аз ҷониби Dmitrii Pakhomov8m2024/06/26
Read on Terminal Reader
Read this story w/o Javascript

Хеле дароз; Хондан

Муқовимат дар нармафзор ба қобилияти барнома барои идома додани кори бемаънӣ ва боэътимод, ҳатто дар баробари мушкилот ё нокомии ғайричашмдошт дахл дорад.

People Mentioned

Mention Thumbnail

Companies Mentioned

Mention Thumbnail
Mention Thumbnail
featured image - Стратегияҳои устувори ҷаҳонии воқеӣ барои лоиҳаҳои Fintech
Dmitrii Pakhomov HackerNoon profile picture
0-item

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

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


Стратегияҳои маъмултарини устуворӣ ин қисмат, кэш, бозгашт, кӯшиши такрорӣ ва шикастани барқро дар бар мегиранд. Дар ин мақола, ман онҳоро ба таври муфассал бо мисолҳои мушкилоте, ки онҳо метавонанд барои ҳалли онҳо кӯмак расонанд, муҳокима мекунам.

Сарват


Биёед ба танзимоти боло назар андозем. Мо як барномаи хеле оддӣ дорем, ки дар паси мо якчанд пуштибонҳо мавҷуданд, то аз он маълумот гирем. Якчанд муштариёни HTTP ба ин пуштибонҳо пайвастанд. Маълум мешавад, ки ҳамаи онҳо як ҳавзи пайвастро тақсим мекунанд! Ва инчунин захираҳои дигар ба монанди CPU ва RAM.


Чӣ мешавад, агар яке аз пуштибонҳо бо як навъ мушкилот дучор шавад, ки боиси таъхири баланди дархост мегардад? Аз сабаби вақти вокуниши баланд, тамоми ҳавзи пайвастшавӣ пурра бо дархостҳо банд мешавад, ки интизори посух аз backend1 мебошанд. Дар натиҷа, дархостҳое, ки барои backend2 ва backend3 солим пешбинӣ шудаанд, наметавонанд идома диҳанд, зеро ҳавз тамом шудааст. Ин маънои онро дорад, ки нокомӣ дар яке аз пуштибонии мо метавонад боиси нокомӣ дар тамоми барнома гардад. Идеалӣ, мо мехоҳем, ки танҳо функсияи марбут ба пуштибонии нокомшуда таназзулро аз сар гузаронад, дар ҳоле ки қисми боқимондаи барнома ба таври муқаррарӣ кор мекунад.


Намунаи қалъа чист?


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

Чӣ тавр мо метавонем намунаи сарпӯшро барои ислоҳи ин мушкилот истифода барем?



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


  1. Ҷудо кардани ҳавзҳои пайвастшавӣ Мо метавонем ҳавзҳои пайвасти алоҳида барои ҳар як пуштибонӣ созем (backend1, backend2, backend3). Ин кафолат медиҳад, ки агар backend1 вақти вокуниши баланд ё нокомиро аз сар гузаронад, ҳавзи пайвасти он мустақилона тамом мешавад ва ҳавзҳои пайвастшавӣ барои backend2 ва backend3 бетаъсир мемонад. Ин изолятсия ба пуштибони солим имкон медиҳад, ки коркарди дархостҳоро ба таври муқаррарӣ идома диҳанд.
  2. Маҳдуд кардани захираҳо барои фаъолиятҳои пасзамина Бо истифода аз бунгоҳҳо, мо метавонем захираҳои мушаххасро барои фаъолиятҳои пасзамина, ба монанди коркарди гурӯҳӣ ё вазифаҳои ба нақша гирифташуда ҷудо кунем. Ин ин фаъолиятҳоро аз истеъмоли захираҳое, ки барои амалиёти вақти воқеӣ заруранд, пешгирӣ мекунад. Масалан, мо метавонем шумораи риштаҳо ё истифодаи CPU-ро, ки ба вазифаҳои заминавӣ бахшида шудаанд, маҳдуд карда, кафолат диҳем, ки захираҳои кофӣ барои коркарди дархостҳои воридотӣ мавҷуд бошанд.
  3. Муқаррар намудани маҳдудиятҳо оид ба дархостҳои воридотӣ инчунин метавонад барои маҳдуд кардани шумораи дархостҳои воридотӣ ба қисмҳои гуногуни барнома истифода шавад. Масалан, мо метавонем ҳадди ниҳоии шумораи дархостҳоеро, ки метавонанд барои ҳар як хидмати болоӣ ҳамзамон коркард шаванд, муқаррар кунем. Ин ҳар як пуштибонии ягонаро аз сарнагун кардани система пешгирӣ мекунад ва кафолат медиҳад, ки дигар пуштибонҳо метавонанд ҳатто агар яке зери бори вазнин бошад ҳам, кор кунанд.

Сах


Фарз мекунем, ки системаҳои пуштибонии мо эҳтимолияти дучори хатогиҳои алоҳида доранд. Аммо, вақте ки амалиёт пурсиши ҳамаи ин пуштибонҳоро дарбар мегирад, ҳар кадоми онҳо метавонанд мустақилона хато баргардонанд. Азбаски ин хатогиҳо мустақилона рух медиҳанд, эҳтимолияти умумии хатогӣ дар замимаи мо аз эҳтимолияти хатогии ҳама гуна пуштибони ягона баландтар аст. Эҳтимолияти хатогиҳои ҷамъшударо бо истифода аз формулаи P_total=1−(1−p)^n ҳисоб кардан мумкин аст, ки дар он n шумораи системаҳои пуштибонӣ мебошад.


Масалан, агар мо даҳ пушти пушти сар дошта бошем, ки ҳар кадоми онҳо эҳтимолияти хатогии p=0,001 (мувофиқ ба SLA 99,9%), эҳтимолияти хатогии натиҷавӣ ин аст:


P_total=1−(1−0,001)^10=0,009955


Ин маънои онро дорад, ки SLA-и якҷояи мо тақрибан ба 99% коҳиш меёбад ва нишон медиҳад, ки чӣ гуна эътимоднокии умумӣ ҳангоми пурсиши якчанд пуштибонии мувозӣ коҳиш меёбад. Барои кам кардани ин масъала, мо метавонем кэши дохили хотираро амалӣ созем.

Чӣ тавр мо метавонем онро бо кэш дар хотира ҳал кунем


Кэши дохили хотира ҳамчун буфери баландсуръати додаҳо хидмат мекунад, ки маълумоти зуд-зуд дастрасшавандаро нигоҳ медорад ва зарурати гирифтани онро аз манбаъҳои эҳтимолан суст ҳар дафъа аз байн мебарад. Азбаски кэшҳои дар хотира нигоҳ дошташуда дар муқоиса бо интиқоли маълумот тавассути шабака 0% эҳтимолияти хатогӣ доранд, онҳо эътимоднокии барномаи моро ба таври назаррас афзоиш медиҳанд. Ғайр аз он, кэш трафики шабакаро коҳиш дода, эҳтимоли хатогиҳоро боз ҳам коҳиш медиҳад. Дар натиҷа, бо истифода аз кэши хотира, мо метавонем дар муқоиса бо системаҳои пуштибонии худ сатҳи хатогиҳои камтарро дар барномаи худ ба даст орем. Илова бар ин, кэшҳои дохили хотира ҷустуҷӯи зудтари маълумотро нисбат ба қабули шабака пешниҳод мекунанд ва ба ин васила таъхири барномаро коҳиш медиҳанд - як бартарии назаррас.

Кэш дар хотира: Кэшҳои фардӣ

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


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

Кэш дар хотира: такрори маълумотҳои маҳаллӣ



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


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

Конфигуратсияи дубора боршаванда

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


Оғози зуд муҳим аст, махсусан барои платформаҳое, ба монанди Kubernetes, ки ба муҳоҷирати зуди барномаҳо ба гиреҳҳои гуногуни физикӣ такя мекунанд. Хушбахтона, Kubernetes метавонад барномаҳои суст оғозшавандаро бо истифода аз хусусиятҳо ба монанди зондҳои оғозёбӣ идора кунад.


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


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


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

Ба пушт афтодан

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


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



Барои ҳалли ин масъала ва беҳтар кардани рафтори системаи мо, мо метавонем намунаи Fallback-ро татбиқ кунем. Консепсияи паси ин намуна дорои манбаи дуюмдараҷаи додаҳоро дар бар мегирад, ки дар муқоиса бо манбаи ибтидоӣ метавонад маълумоти пасттар ё тару тоза дошта бошад. Агар манбаи асосии маълумот дастрас набошад ё хатогиро баргардонад, система метавонад ба дарёфти маълумот аз ин манбаи дуввум баргардад ва кафолат диҳад, ки ба ҷои нишон додани паёми хато ба корбар ягон шакли иттилоот пешниҳод карда шавад.

Аз нав кӯшиш кунед


Агар шумо ба расми боло нигаред, шумо шабоҳатро байни мушкилоте, ки мо ҳоло дучор шудаем ва мушкилие, ки мо бо мисоли кэш дучор шудаем, мебинед.


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

Қатъи барқ


Бо вуҷуди ин, қабули стратегияи такрорӣ бидуни баррасии оқибатҳои эҳтимолӣ метавонад боиси мушкилоти минбаъда гардад.


Биёед тасаввур кунем, ки яке аз пуштибонии мо ноком мешавад. Дар чунин сенария, оғоз намудани кӯшишҳои такрорӣ ба пуштибонии ноком метавонад боиси афзоиши назарраси ҳаҷми трафик гардад. Ин афзоиши ногаҳонии трафик метавонад пушти сарро аз даст диҳад ва нокомиро шадидтар кунад ва эҳтимолан дар тамоми система таъсири каскадиро ба вуҷуд орад.


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

Пахш кардан

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

L O A D I N G
. . . comments & more!

About Author

Dmitrii Pakhomov HackerNoon profile picture
Dmitrii Pakhomov@ymatigoosa
10 yeas of experience of building mission critical Fintech system handling extremely high load

ТЕГИ овезон кунед

ИН МАКОЛА ДАР...