Мо дар бораи микросервисҳо чӣ медонем

Салом! Номи ман Вадим Мадисон аст, ман ба таҳияи Платформаи Системаи Avito роҳбарӣ мекунам. На як бор гуфта шудааст, ки мо дар ширкат чӣ гуна аз меъмории монолитӣ ба меъмории микросервис мегузарем. Вақти он аст, ки мубодила кунем, ки мо инфрасохтори худро чӣ гуна тағир додем, то аз хидматҳои микросервис бештар фоида ба даст орем ва худро дар онҳо гум нашавем. Чӣ тавр PaaS ба мо дар ин ҷо кӯмак мекунад, чӣ гуна мо ҷойгиркуниро содда кардем ва эҷоди хидмати микросервисро то як клик кам кардем - хонед. На ҳама чизе, ки ман дар бораи дар зер менависам, дар Avito пурра иҷро карда мешавад, баъзеи онҳо чӣ гуна мо платформаи худро таҳия мекунем.

(Ва дар охири ин мақола, ман дар бораи имкони иштирок дар семинари серӯза аз коршиноси меъмории микросервис Крис Ричардсон сӯҳбат хоҳам кард).

Мо дар бораи микросервисҳо чӣ медонем

Чӣ тавр мо ба хидматрасонии микроорганизмҳо омадем

Avito яке аз бузургтарин сайтҳои таснифшуда дар ҷаҳон аст, ки дар он дар як рӯз зиёда аз 15 миллион таблиғ нашр мешавад. Пушти мо дар як сония зиёда аз 20 ҳазор дархостро қабул мекунад. Дар айни замон мо якчанд сад хидматрасонии хурд дорем.

Мо якчанд сол боз меъмории микросервисро месозем. Чӣ тавр маҳз - ҳамкасбони мо ба таври муфассал гуфт дар бахши мо дар RIT++ 2017. Дар CodeFest 2017 (ниг. видео), Сергей Орлов ва Михаил Прокопчук ба таври муфассал шарҳ доданд, ки чаро ба мо гузариш ба хидматрасонии микроэлементҳо лозим буд ва дар ин ҷо Кубернетес чӣ нақш бозид. Хуб, ҳоло мо ҳама корро мекунем, то хароҷоти миқёсро, ки ба чунин меъморӣ хос аст, кам кунем.

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

Мо дар бораи микросервисҳо чӣ медонем

Ҳоло дар утилитаи PaaS CLI, хидмати нав бо як фармон эҷод карда мешавад ва пойгоҳи нав бо ду фармони дигар илова карда мешавад ва дар Stage ҷойгир карда мешавад.

Мо дар бораи микросервисҳо чӣ медонем

Чӣ тавр бояд давраи "фрагментацияи микросервис" -ро паси сар кард

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

Илова бар ин, барои самаранок будани меъмории хидматрасонии хурд, бисёр равандҳо бояд таъсис дода шаванд, аз ҷумла:

• дарахтбурӣ;
• пайгирии дархост (Jaeger);
• маҷмӯи хатогиҳо (Sentry);
• вазъиятҳо, паёмҳо, рӯйдодҳо аз Kubernetes (Processing Stream Events);
• маҳдудияти нажод / барқгиранда (шумо метавонед Hystrix истифода баред);
• назорати пайвасти хидмат (мо Netramesh-ро истифода мебарем);
• мониторинг (Графана);
• маҷлис (TeamCity);
• иртибот ва огоҳӣ (Slack, почтаи электронӣ);
• пайгирии вазифаҳо; (Ҷира)
• омода намудани ҳуҷҷатҳо.

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

Чӣ тавр мо хидматрасониҳои хурдро идора мекунем

Инҳо барои татбиқи ягонаи "сиёсати ҳизб" дар байни бисёр микросервисҳои Avito кӯмак мекунанд:

  • ба қабатҳо тақсим кардани инфрасохтор;
  • Консепсияи платформа ҳамчун хидмат (PaaS);
  • ҳама чизеро, ки бо хидматҳои микросервис рӯй медиҳад, назорат мекунад.

Қабатҳои абстраксияи инфрасохтор се қабатро дар бар мегиранд. Биёед аз боло ба поён.

A. Top - фикрию хизматрасонӣ. Дар аввал мо Истио-ро санчидем, аммо маълум шуд, ки он захирахои зиёдеро истифода мебарад, ки ин барои хачми мо хеле гарон аст. Аз ин рӯ, муҳандиси калони гурӯҳи меъморӣ Александр Лукьянченко ҳалли худро таҳия кард - Нетрамеш (дар Сарчашмаи Кушода дастрас аст), ки мо ҳоло дар истеҳсолот истифода мебарем ва нисбат ба Истио якчанд маротиба камтар захираҳоро истеъмол мекунад (аммо на ҳама корҳоеро, ки Istio бо фахр карда метавонад) иҷро мекунад.
B. Миёна - Kubernetes. Мо дар он микросервисҳоро ҷойгир ва истифода мебарем.
C. Поён - металли урён. Мо абрҳо ё чизҳои монанди OpenStack-ро истифода намебарем, аммо комилан ба металли луч такя мекунем.

Ҳама қабатҳо аз ҷониби PaaS якҷоя карда мешаванд. Ва ин платформа, дар навбати худ, аз се қисм иборат аст.

I. Генераторҳо, тавассути утилитаи CLI идора карда мешавад. Маҳз вай ба таҳиякунанда кӯмак мекунад, ки хидматрасонии хурдро ба таври дуруст ва бо ҳадди ақалл эҷод кунад.

II. Коллектори муттаҳидшуда бо назорати тамоми асбобҳо тавассути панели умумӣ.

III. Нигоҳдорӣ. Бо банақшагирандагон пайваст мешавад, ки ба таври худкор триггерҳоро барои амалҳои муҳим муқаррар мекунанд. Ба шарофати чунин система, ягон вазифа танҳо аз сабаби он ки касе дар Ҷира гузоштани супоришро фаромӯш кардааст, аз даст дода намешавад. Барои ин мо асбоби дохилиро бо номи Атлас истифода мебарем.

Мо дар бораи микросервисҳо чӣ медонем

Татбиқи микросервисҳо дар Avito инчунин аз рӯи нақшаи ягона амалӣ карда мешавад, ки назоратро аз болои онҳо дар ҳар як марҳилаи таҳия ва баровардан осон мекунад.

Қубури стандартии рушди микросервис чӣ гуна кор мекунад?

Умуман, занҷири эҷоди хидматрасонии хурд чунин менамояд:

CLI-push → Интегратсияи муттасил → Пухтан → Ҷойгир кардан → Санҷишҳои сунъӣ → Санҷишҳои канарӣ → Санҷиши фишурда → Истеҳсол → Нигоҳдорӣ.

Биёед онро маҳз бо ҳамин тартиб аз сар гузаронем.

CLI-пуш

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

Дар ниҳоят, мо як утилитаи оддии CLI сохтем, ки қадамҳои асосиро ҳангоми сохтани хидматрасонии хурд автоматӣ мекунад. Дар асл, он аввалин фишори git-ро иваз мекунад. Ин аст, ки вай маҳз чӣ кор мекунад.

— Хизматро мувофиқи қолаб эҷод мекунад — зина ба зина, дар реҷаи «узер». Мо барои забонҳои асосии барномасозӣ дар пушти Avito қолибҳо дорем: PHP, Golang ва Python.

- Як фармон дар як вақт муҳити рушди маҳаллиро дар як мошини мушаххас ҷойгир мекунад - Minikube оғоз мешавад, Диаграммаҳои Helm ба таври худкор дар кубернетҳои маҳаллӣ тавлид ва ба кор андохта мешаванд.

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

— Он худаш монтажи зиндаро ичро мекунад. Биёед бигӯем, ки таҳиякунанда тавассути IDE-и худ чизеро дар микросервис ислоҳ кард. Утилита тағиротро дар системаи файлӣ мебинад ва дар асоси онҳо барномаро аз нав месозад (барои Golang) ва аз нав оғоз мекунад. Барои PHP, мо танҳо директорияро дар дохили куб интиқол медиҳем ва дар он ҷо дубора боркунии зинда "ба таври худкор" ба даст меояд.

— Санҷишҳои автоматӣ тавлид мекунад. Дар шакли бланкаҳо, аммо барои истифода хеле мувофиқ аст.

• Ҷойгиркунии хидматрасонии хурд.

Ҷойгир кардани хидматрасонии хурд барои мо як кори душвор буд. Инҳо талаб карда шуданд:

I. Докерфайл.

II. Конфигуратсия.
III. Диаграммаи Ҳелм, ки худаш душвор аст ва дар бар мегирад:

— худи диаграммахо;
- шаблонҳо;
- арзишҳои мушаххас бо назардошти муҳитҳои гуногун.

Мо дарди аз нав кор кардани манифестҳои Kubernetes-ро аз даст додем, то онҳо ҳоло ба таври худкор тавлид карда шаванд. Аммо муҳимтар аз ҳама, онҳо ҷойгиркунии онро то ҳадди имкон содда карданд. Минбаъд мо як файли Docker-ро дорем ва таҳиякунанда тамоми конфигуратсияро дар як файли кӯтоҳи app.toml менависад.

Мо дар бораи микросервисҳо чӣ медонем

Бале, ва дар худи app.toml барои як дақиқа коре нест. Мо муайян мекунем, ки дар куҷо ва чанд нусхаи хидматро ҷамъ кардан лозим аст (дар сервери таҳиякунанда, дар марҳила, дар истеҳсолот) ва вобастагии онро нишон медиҳем. Ба андозаи хат = "хурд" дар блоки [муҳаррик] аҳамият диҳед. Ин маҳдудиятест, ки ба хидмат тавассути Kubernetes ҷудо карда мешавад.

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

• Тасдиқи асосӣ. Чунин санҷишҳо низ автоматӣ карда мешаванд.
Барои пайгирӣ кардан лозим аст:
— файли Docker вуҷуд дорад;
— оё app.toml вуҷуд дорад;
— Оё ҳуҷҷатҳо мавҷуданд?
— вобастагй дуруст аст?
— оё коидахои огохкунй мукаррар карда шудаанд.
Ба нуқтаи охирин: худи соҳиби хидмат муайян мекунад, ки кадом нишондиҳандаҳои маҳсулотро назорат кардан лозим аст.

• Таҳияи ҳуҷҷатҳо.
Ҳанӯз як минтақаи мушкилот. Чунин ба назар мерасад, ки аз ҳама аёнтар аст, аммо дар айни замон он як сабти "аксаран фаромӯшшуда" аст ва аз ин рӯ, як ҳалқаи осебпазир дар занҷир.
Зарур аст, ки барои ҳар як микросервис ҳуҷҷат мавҷуд бошад. Он блокҳои зеринро дар бар мегирад.

I. Тавсифи мухтасари хадамот. Аслан чанд ҷумла дар бораи он чӣ кор мекунад ва чаро он лозим аст.

II. Пайванди диаграммаи меъморӣ. Муҳим аст, ки бо нигоҳи зуд ба он фаҳмидан осон аст, масалан, оё шумо Redis-ро барои кэш истифода мебаред ё ҳамчун мағозаи асосии маълумот дар реҷаи доимӣ. Дар Avito ҳоло ин пайванд ба Confluence аст.

III. Runbook. Роҳнамои кӯтоҳ оид ба оғози хидмат ва нозукиҳои коркарди он.

IV. Саволҳои зиёд такрормешуда, ки дар он хуб мебуд, ки пешгӯӣ кардани мушкилоте, ки ҳамкасбони шумо ҳангоми кор бо хидмат дучор мешаванд.

V. Тавсифи нуқтаҳои ниҳоӣ барои API. Агар шумо ногаҳон макони таъинотро муайян накарда бошед, ҳамкороне, ки микросервисҳои онҳо бо хидмати шумо алоқаманданд, тақрибан бешубҳа барои он пардохт хоҳанд кард. Ҳоло мо Swagger ва ҳалли худро барои ин мухтасар истифода мебарем.

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

VII. Соҳиб ё соҳибони хидмат. Дар аксари мавридҳо, он - ё онҳо - метавонанд бо истифода аз PaaS ба таври худкор муайян карда шаванд, аммо барои бехатар будан, мо аз таҳиягар талаб мекунем, ки онҳоро дастӣ муайян кунад.

Ниҳоят, ин як таҷрибаи хубест барои баррасии ҳуҷҷатҳо, ба монанди баррасии код.

Интегратсияи доимӣ

  • Тайёр кардани анборҳо.
  • Эҷоди қубур дар TeamCity.
  • Танзими ҳуқуқҳо.
  • Ҷустуҷӯи соҳибони хидмат. Дар ин ҷо як схемаи гибридӣ мавҷуд аст - аломатгузории дастӣ ва автоматикунонии ҳадди ақал аз PaaS. Нақшаи пурраи худкор ҳангоми интиқол додани хидматҳо барои дастгирӣ ба гурӯҳи дигари таҳиякунанда ё масалан, агар таҳиягари хидмат хориҷ шавад, ноком мешавад.
  • Бақайдгирии хидмат дар Атлас (ба боло нигаред). Бо тамоми соҳибон ва вобастагии он.
  • Санҷиши муҳоҷират. Мо тафтиш мекунем, ки кадоме аз онҳо эҳтимолан хатарнок аст. Масалан, дар яке аз онҳо ҷадвали тағир додан ё чизи дигаре пайдо мешавад, ки метавонад мутобиқати схемаи маълумотро байни версияҳои гуногуни хидмат вайрон кунад. Пас аз он, интиқол иҷро намешавад, балки дар обуна ҷойгир карда мешавад - PaaS бояд ба соҳиби хидмат ҳангоми бехатар будани истифодаи он ишора кунад.

Оҷур

Марҳилаи навбатӣ ин хидматҳои бастабандӣ пеш аз ҷойгиркунӣ мебошад.

  • Сохтани барнома. Мувофиқи классикон - дар тасвири Docker.
  • Эҷоди диаграммаҳои Helm барои худи хидмат ва захираҳои алоқаманд. Аз ҷумла барои пойгоҳи додаҳо ва кэш. Онҳо ба таври худкор мувофиқи конфигуратсияи app.toml, ки дар марҳилаи CLI-push тавлид шудааст, сохта мешаванд.
  • Эҷоди чиптаҳо барои маъмурон барои кушодани портҳо (дар ҳолати зарурӣ).
  • Гузаронидани санҷишҳои воҳид ва ҳисоб кардани фарогирии код. Агар фарогирии рамз аз ҳадди муқарраршуда пасттар бошад, пас эҳтимоли зиёд хидмат минбаъд - ба ҷойгиркунӣ наравад. Агар он дар арафаи қобили қабул бошад, он гоҳ ба хидмат коэффисиенти "пессимизатсия" таъин карда мешавад: пас, агар дар нишондиҳанда бо мурури замон беҳбуд наёбад, таҳиякунанда огоҳинома мегирад, ки дар мавриди санҷишҳо пешрафт вуҷуд надорад ( ва дар ин бора коре кардан лозим аст).
  • Баҳисобгирии маҳдудиятҳои хотира ва CPU. Мо асосан дар Голанг хидматҳои хурд менависем ва онҳоро дар Кубернетес иҷро мекунем. Аз ин рӯ, як нозукии марбут ба вижагиҳои забони Голанг аст: ба таври нобаёнӣ, ҳангоми оғоз кардан, ҳамаи ядроҳои мошин истифода мешаванд, агар шумо тағирёбандаи GOMAXPROCS-ро ба таври возеҳ таъин накунед ва вақте ки якчанд чунин хидматҳо дар як мошин оғоз карда мешаванд, онҳо оғоз мешаванд. ба мусобика барои захирахо, ба якдигар халал расондан. Графикҳои дар поён овардашуда нишон медиҳанд, ки вақти иҷро чӣ гуна тағир меёбад, агар шумо барномаро бидуни баҳс ва дар мусобиқа барои захираҳо иҷро кунед. (Манбаъҳои графикҳо дар ин ҷо).

Мо дар бораи микросервисҳо чӣ медонем

Вақти иҷро, камтар беҳтар аст. Максимум: 643ms, ҳадди ақал: 42ms. Аксро клик кардан мумкин аст.

Мо дар бораи микросервисҳо чӣ медонем

Вақт барои ҷарроҳӣ, камтар беҳтар аст. Максимум: 14091 ns, ҳадди ақал: 151 ns. Аксро клик кардан мумкин аст.

Дар марҳилаи омодасозии васлкунӣ, шумо метавонед ин тағирёбандаро ба таври возеҳ муқаррар кунед ё шумо метавонед китобхонаро истифода баред automaxprocs аз бачаҳо аз Uber.

Ҷойгир кардан

• Санҷиши конвенсияҳо. Пеш аз оғози расонидани маҷмӯаҳои хидматрасонӣ ба муҳити пешбинишудаи худ, шумо бояд чизҳои зеринро тафтиш кунед:
- Нуқтаҳои ниҳоии API.
- Мутобиқати посухҳои ниҳоии API бо схема.
— Формати сабт.
— Муқаррар кардани сарлавҳаҳо барои дархостҳо ба хидмат (дар айни замон ин аз ҷониби netramesh анҷом дода мешавад)
— Муқаррар кардани аломати соҳиб ҳангоми фиристодани паёмҳо ба автобуси ҳодиса. Ин барои пайгирии пайвасти хидматҳо дар автобус лозим аст. Шумо метавонед ба автобус ҳам маълумоти идемпотент, ки пайвастагии хадамотро зиёд намекунад (ки хуб аст) ва маълумоти тиҷорӣ, ки пайвастагии хидматҳоро мустаҳкам мекунад (ки хеле бад аст!) фиристед. Ва дар ҳоле, ки ин пайвастшавӣ ба мушкилот табдил меёбад, фаҳмидани он ки автобусро кӣ менависад ва мехонад, барои дуруст ҷудо кардани хидматҳо кӯмак мекунад.

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

Санҷишҳои синтетикӣ

• Санҷиши даври пӯшида. Барои ин мо ҳоло манбаи кушодаро истифода мебарем Hoverfly.io. Аввалан, он сарбории воқеии хидматро сабт мекунад, сипас - танҳо дар як ҳалқаи пӯшида - он ба он тақлид мекунад.

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

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

а) Мо бори умумиро дида мебароем.
- Хеле хурд - эҳтимолан чизе кор намекунад, агар бори ногаҳон чанд маротиба паст шавад.
- Хеле калон - оптимизатсия талаб карда мешавад.

б) Мо ба буридани мувофиқи RPS назар мекунем.
Дар ин ҷо мо фарқияти байни версияи ҷорӣ ва қаблӣ ва миқдори умумиро дида мебароем. Масалан, агар хидмат 100 rps истеҳсол кунад, он гоҳ он ё бад навишта шудааст, ё ин хусусияти он аст, аммо дар ҳар сурат, ин як сабаби он аст, ки ба хидмат хеле бодиққат назар кунем.
Агар, баръакс, RPS аз ҳад зиёд бошад, пас эҳтимол дорад, ки ягон хатогӣ вуҷуд дошта бошад ва баъзе нуқтаҳо иҷрои борро қатъ кардаанд, аммо дигаре танҳо ба кор андохта мешавад. return true;

Санҷишҳои канарӣ

Пас аз он ки мо аз санҷишҳои синтетикӣ мегузарем, мо микросервисро дар шумораи ками корбарон месанҷем. Мо бодиққат оғоз мекунем, бо ҳиссаи ночизи аудиторияи пешбинишудаи хидмат - камтар аз 0,1%. Дар ин марҳила, хеле муҳим аст, ки нишондиҳандаҳои дурусти техникӣ ва маҳсулот ба мониторинг дохил карда шаванд, то онҳо мушкилотро дар хидмат ҳарчи зудтар нишон диҳанд. Вақти ҳадди ақал барои санҷиши канарӣ 5 дақиқа, вақти асосӣ 2 соат аст. Барои хидматҳои мураккаб мо вақтро дастӣ муқаррар мекунем.
Биёед таҳлил кунем:
— метрикаи хоси забон, алалхусус, коргарони php-fpm;
- хатогиҳо дар Sentry;
- ҳолати ҷавоб;
— вақти ҷавоб, дақиқ ва миёна;
- таъхир;
— истисноҳо, коркард ва коркарднашуда;
- нишондиҳандаҳои маҳсулот.

Санҷиши фишурда

Санҷиши фишурда инчунин санҷиши "фишурдан" номида мешавад. Номи техника дар Netflix ҷорӣ карда шуд. Моҳияти он дар он аст, ки мо аввал як мисолро бо трафики воқеӣ то нуқтаи нокомӣ пур мекунем ва ба ин васила маҳдудияти онро муқаррар мекунем. Сипас, мо як мисоли дигарро илова мекунем ва ин ҷуфтро бор мекунем - боз ба ҳадди аксар; шифт ва дельтаашонро бо «фишурдани» аввалин мебинем. Ҳамин тавр, мо як мисолро дар як вақт пайваст мекунем ва шакли тағиротро ҳисоб мекунем.
Маълумоти санҷишӣ тавассути "фишурдан" инчунин ба махзани умумии метрикӣ ворид мешавад, ки дар он мо ё натиҷаҳои сарбории сунъиро бо онҳо бой мекунем ё ҳатто "синтетика" -ро бо онҳо иваз мекунем.

Истехсолот

• Миқёскунӣ. Вақте ки мо хидматро ба истеҳсолот мегузорем, мо назорат мекунем, ки он чӣ гуна миқёси онро дорад. Дар таҷрибаи мо, мониторинги танҳо нишондиҳандаҳои CPU бесамар аст. Миқёси худкор бо RPS бенчмаркинг дар шакли холис кор мекунад, аммо танҳо барои хидматҳои муайян, ба монанди ҷараёнҳои онлайн. Ҳамин тавр, мо аввал ба ченакҳои маҳсулоте, ки ба барнома хосанд, назар мекунем.

Дар натиҷа, ҳангоми миқёс мо таҳлил мекунем:
- Нишондиҳандаҳои CPU ва RAM,
- шумораи дархостҳо дар навбат,
- вақти ҷавоб,
— пешгӯӣ дар асоси маълумотҳои таърихии ҷамъшуда.

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

Хизмат

Пас аз ба кор андохтани хидмати микросервис, мо метавонем ба он триггерҳоро замима кунем.

Дар ин ҷо ҳолатҳои маъмулӣ ҳастанд, ки дар онҳо триггерҳо рух медиҳанд.
— Муҳоҷирати эҳтимолии хатарнок ошкор карда шуданд.
- Навсозиҳои амниятӣ бароварда шуданд.
— Худи хизмат дер боз нав карда нашудааст.
— Сарбории хизматрасонй ба таври намоён кам шудааст ё баъзе ченакхои махсулоти он аз доираи мукаррарй берун мондаанд.
— Хизматрасонӣ дигар ба талаботи платформаи нав ҷавобгӯ нест.

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

Панели асбобҳо

Хулоса, панели идоракунӣ панели идоракунии тамоми PaaS мост.

  • Нуқтаи ягонаи маълумот дар бораи хидмат бо маълумот дар бораи фарогирии санҷиши он, шумораи тасвирҳои он, шумораи нусхаҳои истеҳсолӣ, версияҳо ва ғайра.
  • Асбоби филтр кардани маълумот аз рӯи хадамот ва тамғакоғазҳо (нишонаҳои мансуб ба воҳидҳои тиҷоратӣ, функсияҳои маҳсулот ва ғ.)
  • Воситаи ҳамгироӣ бо абзорҳои инфрасохторӣ барои пайгирӣ, сабт ва мониторинг.
  • Нуқтаи ягонаи ҳуҷҷатҳои хидматрасонӣ.
  • Як нуқтаи назари ҳама рӯйдодҳо дар саросари хидматҳо.

Мо дар бораи микросервисҳо чӣ медонем
Мо дар бораи микросервисҳо чӣ медонем
Мо дар бораи микросервисҳо чӣ медонем
Мо дар бораи микросервисҳо чӣ медонем

Ҳамагӣ

Пеш аз ҷорӣ кардани PaaS, як таҳиягари нав метавонад якчанд ҳафтаро дарк кунад, ки тамоми асбобҳои заруриро барои роҳандозии хидматрасонии хурд дар истеҳсолот дарк кунад: Kubernetes, Helm, хусусиятҳои дохилии мо TeamCity, насб кардани пайвастшавӣ ба пойгоҳи додаҳо ва кэшҳо ба хатогиҳо ва ғайра. Ҳоло он Барои хондани оғози зуд ва эҷоди худи хидмат чанд соат вақт лозим аст.

Ман дар ин мавзӯъ барои HighLoad++ 2018 гузориш додам, шумо метавонед онро тамошо кунед видео и муаррифӣ.

Роҳи бонус барои онҳое, ки то охир мехонанд

Мо дар Avito тренинги дохилии серӯзаро барои таҳиягарон аз он ташкил мекунем Крис Ричардсон, коршиноси меъмории микросервис. Мо мехоҳем ба яке аз хонандагони ин пост имкони иштирок дар он диҳем. Ин аст, Барномаи таълимӣ нашр шудааст.

Машгулият аз 5 то 7 август дар Москва мегузарад. Ин рузхои корй, ки пурра ба кор андохта мешаванд. Хӯроки нисфирӯзӣ ва омӯзиш дар дафтари мо баргузор мешавад ва иштирокчии интихобшуда маблағи роҳкиро ва манзилро худаш пардохт мекунад.

Шумо метавонед барои иштирок муроҷиат кунед дар ин шакли google. Аз шумо - ҷавоб ба саволе, ки чаро шумо бояд дар тренинг иштирок кунед ва маълумот дар бораи чӣ гуна бо шумо тамос гирифтан. Ба забони англисӣ ҷавоб диҳед, зеро Крис ширкаткунандаеро интихоб мекунад, ки худаш дар тренинг иштирок мекунад.
Мо номи иштирокчии тренингро дар навсозии ин пост ва дар шабакаҳои иҷтимоии Avito барои таҳиягарон эълон хоҳем кард (AvitoTech дар Facebook, ВКонтакте, Twitter) на дертар аз 19 июль.

Манбаъ: will.com

Илова Эзоҳ