Рӯзи 19 май, субҳи барвақт (Вақти рӯзонаи шарқӣ, EDT), хидмати quay.io садама зад. Садама ҳам ба истеъмолкунандагони quay.io ва ҳам лоиҳаҳои Open Source, ки quay.io-ро ҳамчун платформаи сохтан ва паҳн кардани нармафзор истифода мебаранд, таъсир расонд. Red Hat эътимоди ҳардуро қадр мекунад.
То шом, мо хидматро дар ҳолати танҳо барои хондан мӯътадил кардем ва то ҳадди имкон бисёр функсияҳои ғайримуқаррариро ғайрифаъол кардем (масалан, ҷамъоварии партовҳои фазои номҳо) барои кам кардани сарбории пойгоҳи додаҳо. Яхкуниҳо қатъ шудаанд вале сабабаш то хол ёфт нашуд. Кластери нави OSD омода буд ва мо хидматро интиқол додем, трафикро пайваст кардем ва мониторингро идома додем.
Quay.io дар кластери нави OSD устувор кор мекард, аз ин рӯ мо ба гузоришҳои пойгоҳи додаҳо баргаштем, аммо робитае пайдо карда натавонистем, ки блокҳоро шарҳ диҳад. Муҳандисони OpenShift бо мо кор карданд, то бифаҳмем, ки оё тағирот дар Red Hat OpenShift 4.3.19 метавонад бо Quay мушкилот эҷод кунад. Бо вуҷуди ин, чизе ёфт нашуд, ва Дар шароити лабораторӣ такрор кардани мушкилот имкон надошт.
Нокомии дуюм
28 май, чанде пеш аз нисфирӯзии EDT, quay.io боз бо ҳамон аломат суқут кард: пойгоҳи додаҳо баста шуд. Ва боз тамоми кувваамонро ба тафтишот сарф кардем. Пеш аз хама, хизматрасониро баркарор кардан лозим буд. Аммо ин дафъа бозоғозкунии RDS ва аз нав оғоз кардани pods quay.io ҳеҷ коре накард: боз як тармаи алока базаро зер кард. Аммо барои чӣ?
Quay бо Python навишта шудааст ва ҳар як подк ҳамчун як контейнери монолитӣ кор мекунад. Вақти кори контейнер ҳамзамон бисёр вазифаҳои мувозиро иҷро мекунад. Мо аз китобхона истифода мебарем gevent дар зери gunicorn барои коркарди дархостҳои веб. Вақте ки дархост ба Quay ворид мешавад (тавассути API-и мо ё тавассути API Docker), ба он коргари gevent таъин карда мешавад. Одатан, ин коргар бояд ба базаи маълумот муроҷиат кунад. Пас аз нокомии аввал, мо дарёфтем, ки коргарони gevent бо истифода аз танзимоти пешфарз ба базаи маълумот пайваст мешаванд.
Бо дарназардошти шумораи зиёди қуттиҳои Quay ва ҳазорон дархостҳои воридотӣ дар як сония, шумораи зиёди пайвастҳои пойгоҳи додаҳо метавонанд мисоли MySQL-ро аз ҷиҳати назариявӣ пур кунанд. Ба туфайли мониторинг маълум шуд, ки Quay дар як сония ба ҳисоби миёна 5 ҳазор дархостро коркард мекунад. Шумораи пайвастшавӣ ба базаи маълумот тақрибан якхела буд. 5 ҳазор пайвастҳо дар доираи имкониятҳои намунаи RDS мо буданд (ки дар бораи даҳҳо ҳазорҳо гуфта намешавад). Аз чй сабаб бошад, ки дар шумораи пайвастшавихо хишахои гайричашмдошт ба амал омаданд, вале мо ягон таносуби бо дархостхои воридшавандаро пай набурдем.
Ин дафъа мо тасмим гирифтем, ки манбаи мушкилотро пайдо ва бартараф кунем ва худро бо бозсозӣ маҳдуд накунем. Ба пойгоҳи коди Quay барои махдуд кардани шумораи пайвастшавй ба базаи хар як коргар тагьирот дароварда шуд гевент. Ин рақам як параметр дар конфигуратсия шуд: имкон пайдо шуд, ки онро бидуни сохтани тасвири нави контейнер иваз кунед. Барои фаҳмидани он, ки чӣ қадар пайвастҳоро ба таври воқеӣ коркард кардан мумкин аст, мо дар муҳити саҳнавӣ якчанд санҷишҳо гузаронида, арзишҳои гуногунро муқаррар кардем, то бубинем, ки ин ба сенарияҳои санҷиши сарборӣ чӣ гуна таъсир мерасонад. Дар натича маълум шуд, ки Quay ба партофтани 502 хато оғоз мекунад, вақте ки шумораи пайвастҳо аз 10 ҳазор зиёд аст.
Мо фавран ин версияи навро дар истеҳсолот ҷойгир кардем ва ба мониторинги ҷадвали пайвастшавӣ ба пойгоҳи додаҳо шурӯъ кардем. Дар гузашта пойгоҳ пас аз тақрибан 20 дақиқа баста буд. Пас аз 30 дақиқаи бе мушкилот мо умед доштем ва баъд аз як соат мо боварӣ пайдо кардем. Мо трафикро ба сайт барқарор кардем ва таҳлили пас аз маргро оғоз кардем.
Бо гузашти мушкилоте, ки ба басташавӣ оварда мерасонад, сабабхои хакикии онро нафахмидем. Тасдиқ шуд, ки он ба ягон тағйирот дар OpenShift 4.3.19 иртибот надорад, зеро ҳамин чиз дар версияи 4.3.18, ки қаблан бо Quay бе мушкилот кор мекард, рух дод.
Quay.io то 9 июнь нагз кор кард. Субҳи имрӯз (EDT) мо боз афзоиши назарраси шумораи пайвастҳои пойгоҳи додаҳоро дидем. Ин дафъа дам бекорй набуд, зеро параметри нав шумораи онҳоро маҳдуд кард ва ба онҳо имкон надод, ки қобилияти MySQL-ро зиёд кунанд. Бо вуҷуди ин, тақрибан ним соат, бисёр корбарон кори сусти quay.io-ро қайд карданд. Мо бо истифода аз абзорҳои иловагии мониторинг ҳама маълумоти имконпазирро зуд ҷамъ кардем. Ногаҳон намунае пайдо шуд.
Танҳо пеш аз афзоиши пайвастҳо, ба API Registry App шумораи зиёди дархостҳо ворид карда шуданд. Феҳристи барномаҳо як хусусияти каме маълуми quay.io мебошад. Он ба шумо имкон медиҳад, ки чизҳои монанди диаграммаҳои Helm ва контейнерҳоро бо метамаълумоти бой нигоҳ доред. Аксари корбарони quay.io бо ин хусусият кор намекунанд, аммо Red Hat OpenShift онро фаъолона истифода мебарад. OperatorHub ҳамчун як қисми OpenShift ҳамаи операторҳоро дар Феҳристи Барномаҳо нигоҳ медорад. Ин операторҳо барои экосистемаи сарбории OpenShift ва модели амалиётии ба шарик нигаронидашуда (амалиёти рӯзи 2) асосро ташкил медиҳанд.
Ҳар як кластери OpenShift 4 операторҳоро аз OperatorHub-и дарунсохт истифода мебарад, то феҳристи операторҳоеро, ки барои насб дастрасанд, нашр кунад ва ба онҳое, ки аллакай насб шудаанд, навсозӣ кунад. Бо маъруфияти афзояндаи OpenShift 4, шумораи кластерҳо дар он дар саросари ҷаҳон низ афзоиш ёфт. Ҳар яке аз ин кластерҳо мундариҷаи операторро барои иҷро кардани OperatorHub-и дарунсохт бо истифода аз Феҳристи Барномаҳо дар quay.io ҳамчун пуштибон зеркашӣ мекунанд. Ҳангоми ҷустуҷӯи манбаи мушкилот, мо аз он дур шудем, ки бо тадриҷан маъруфияти OpenShift, сарборӣ ба яке аз функсияҳои кам истифодашавандаи quay.io низ афзоиш ёфт..