Avito яке аз бузургтарин сайтҳои таснифшуда дар ҷаҳон аст, ки дар он дар як рӯз зиёда аз 15 миллион таблиғ нашр мешавад. Пушти мо дар як сония зиёда аз 20 ҳазор дархостро қабул мекунад. Дар айни замон мо якчанд сад хидматрасонии хурд дорем.
Мо якчанд сол боз меъмории микросервисро месозем. Чӣ тавр маҳз - ҳамкасбони мо ба таври муфассал гуфт дар бахши мо дар RIT++ 2017. Дар CodeFest 2017 (ниг. видео), Сергей Орлов ва Михаил Прокопчук ба таври муфассал шарҳ доданд, ки чаро ба мо гузариш ба хидматрасонии микроэлементҳо лозим буд ва дар ин ҷо Кубернетес чӣ нақш бозид. Хуб, ҳоло мо ҳама корро мекунем, то хароҷоти миқёсро, ки ба чунин меъморӣ хос аст, кам кунем.
Барои он ки система якпорчагии худро аз даст надиҳад ва дар миқёси он самаранок боқӣ монад, мо ташкили микросервисҳоро дар Avito аз нав дида баромадем.
ҳама чизеро, ки бо хидматҳои микросервис рӯй медиҳад, назорат мекунад.
Қабатҳои абстраксияи инфрасохтор се қабатро дар бар мегиранд. Биёед аз боло ба поён.
A. Top - фикрию хизматрасонӣ. Дар аввал мо Истио-ро санчидем, аммо маълум шуд, ки он захирахои зиёдеро истифода мебарад, ки ин барои хачми мо хеле гарон аст. Аз ин рӯ, муҳандиси калони гурӯҳи меъморӣ Александр Лукьянченко ҳалли худро таҳия кард - Нетрамеш (дар Сарчашмаи Кушода дастрас аст), ки мо ҳоло дар истеҳсолот истифода мебарем ва нисбат ба Истио якчанд маротиба камтар захираҳоро истеъмол мекунад (аммо на ҳама корҳоеро, ки Istio бо фахр карда метавонад) иҷро мекунад. B. Миёна - Kubernetes. Мо дар он микросервисҳоро ҷойгир ва истифода мебарем. C. Поён - металли урён. Мо абрҳо ё чизҳои монанди OpenStack-ро истифода намебарем, аммо комилан ба металли луч такя мекунем.
Ҳама қабатҳо аз ҷониби PaaS якҷоя карда мешаванд. Ва ин платформа, дар навбати худ, аз се қисм иборат аст.
I. Генераторҳо, тавассути утилитаи CLI идора карда мешавад. Маҳз вай ба таҳиякунанда кӯмак мекунад, ки хидматрасонии хурдро ба таври дуруст ва бо ҳадди ақалл эҷод кунад.
II. Коллектори муттаҳидшуда бо назорати тамоми асбобҳо тавассути панели умумӣ.
III. Нигоҳдорӣ. Бо банақшагирандагон пайваст мешавад, ки ба таври худкор триггерҳоро барои амалҳои муҳим муқаррар мекунанд. Ба шарофати чунин система, ягон вазифа танҳо аз сабаби он ки касе дар Ҷира гузоштани супоришро фаромӯш кардааст, аз даст дода намешавад. Барои ин мо асбоби дохилиро бо номи Атлас истифода мебарем.
Татбиқи микросервисҳо дар Avito инчунин аз рӯи нақшаи ягона амалӣ карда мешавад, ки назоратро аз болои онҳо дар ҳар як марҳилаи таҳия ва баровардан осон мекунад.
• Таҳияи ҳуҷҷатҳо.
Ҳанӯз як минтақаи мушкилот. Чунин ба назар мерасад, ки аз ҳама аёнтар аст, аммо дар айни замон он як сабти "аксаран фаромӯшшуда" аст ва аз ин рӯ, як ҳалқаи осебпазир дар занҷир.
Зарур аст, ки барои ҳар як микросервис ҳуҷҷат мавҷуд бошад. Он блокҳои зеринро дар бар мегирад.
I. Тавсифи мухтасари хадамот. Аслан чанд ҷумла дар бораи он чӣ кор мекунад ва чаро он лозим аст.
II. Пайванди диаграммаи меъморӣ. Муҳим аст, ки бо нигоҳи зуд ба он фаҳмидан осон аст, масалан, оё шумо Redis-ро барои кэш истифода мебаред ё ҳамчун мағозаи асосии маълумот дар реҷаи доимӣ. Дар Avito ҳоло ин пайванд ба Confluence аст.
III. Runbook. Роҳнамои кӯтоҳ оид ба оғози хидмат ва нозукиҳои коркарди он.
IV. Саволҳои зиёд такрормешуда, ки дар он хуб мебуд, ки пешгӯӣ кардани мушкилоте, ки ҳамкасбони шумо ҳангоми кор бо хидмат дучор мешаванд.
V. Тавсифи нуқтаҳои ниҳоӣ барои API. Агар шумо ногаҳон макони таъинотро муайян накарда бошед, ҳамкороне, ки микросервисҳои онҳо бо хидмати шумо алоқаманданд, тақрибан бешубҳа барои он пардохт хоҳанд кард. Ҳоло мо Swagger ва ҳалли худро барои ин мухтасар истифода мебарем.
Ҳангоми миқёси хидмат, назорат кардани вобастагии он низ муҳим аст, то мо хидмати аввалро дар занҷир васеъ накунем ва онҳое, ки ба он дастрасӣ доранд, дар зери сарборӣ ноком мешаванд. Барои муқаррар кардани сарбории қобили қабул барои тамоми ҳавзи хидматҳо, мо ба маълумоти таърихии хидматрасонии вобаста ба "наздиктарин" (дар асоси маҷмӯи нишондиҳандаҳои CPU ва RAM, дар якҷоягӣ бо нишондиҳандаҳои мушаххаси барнома) назар мекунем ва онҳоро бо маълумоти таърихӣ муқоиса мекунем. хидмати оғозёбӣ ва ғайра дар тамоми "занҷири вобастагӣ" аз боло то поён.
Хизмат
Пас аз ба кор андохтани хидмати микросервис, мо метавонем ба он триггерҳоро замима кунем.
Дар ин ҷо ҳолатҳои маъмулӣ ҳастанд, ки дар онҳо триггерҳо рух медиҳанд.
— Муҳоҷирати эҳтимолии хатарнок ошкор карда шуданд.
- Навсозиҳои амниятӣ бароварда шуданд.
— Худи хизмат дер боз нав карда нашудааст.
— Сарбории хизматрасонй ба таври намоён кам шудааст ё баъзе ченакхои махсулоти он аз доираи мукаррарй берун мондаанд.
— Хизматрасонӣ дигар ба талаботи платформаи нав ҷавобгӯ нест.
Баъзе аз триггерҳо барои устувории кор масъуланд, баъзеҳо - ҳамчун вазифаи нигоҳдории система - масалан, баъзе хидматҳо муддати тӯлонӣ ҷойгир нашудаанд ва симои асосии он аз санҷишҳои амниятӣ гузаштааст.
Нуқтаи ягонаи маълумот дар бораи хидмат бо маълумот дар бораи фарогирии санҷиши он, шумораи тасвирҳои он, шумораи нусхаҳои истеҳсолӣ, версияҳо ва ғайра.
Асбоби филтр кардани маълумот аз рӯи хадамот ва тамғакоғазҳо (нишонаҳои мансуб ба воҳидҳои тиҷоратӣ, функсияҳои маҳсулот ва ғ.)
Воситаи ҳамгироӣ бо абзорҳои инфрасохторӣ барои пайгирӣ, сабт ва мониторинг.
Нуқтаи ягонаи ҳуҷҷатҳои хидматрасонӣ.
Як нуқтаи назари ҳама рӯйдодҳо дар саросари хидматҳо.
Ҳамагӣ
Пеш аз ҷорӣ кардани PaaS, як таҳиягари нав метавонад якчанд ҳафтаро дарк кунад, ки тамоми асбобҳои заруриро барои роҳандозии хидматрасонии хурд дар истеҳсолот дарк кунад: Kubernetes, Helm, хусусиятҳои дохилии мо TeamCity, насб кардани пайвастшавӣ ба пойгоҳи додаҳо ва кэшҳо ба хатогиҳо ва ғайра. Ҳоло он Барои хондани оғози зуд ва эҷоди худи хидмат чанд соат вақт лозим аст.
Ман дар ин мавзӯъ барои HighLoad++ 2018 гузориш додам, шумо метавонед онро тамошо кунед видео и муаррифӣ.
Роҳи бонус барои онҳое, ки то охир мехонанд
Мо дар Avito тренинги дохилии серӯзаро барои таҳиягарон аз он ташкил мекунем Крис Ричардсон, коршиноси меъмории микросервис. Мо мехоҳем ба яке аз хонандагони ин пост имкони иштирок дар он диҳем. Ин аст, Барномаи таълимӣ нашр шудааст.
Машгулият аз 5 то 7 август дар Москва мегузарад. Ин рузхои корй, ки пурра ба кор андохта мешаванд. Хӯроки нисфирӯзӣ ва омӯзиш дар дафтари мо баргузор мешавад ва иштирокчии интихобшуда маблағи роҳкиро ва манзилро худаш пардохт мекунад.
Шумо метавонед барои иштирок муроҷиат кунед дар ин шакли google. Аз шумо - ҷавоб ба саволе, ки чаро шумо бояд дар тренинг иштирок кунед ва маълумот дар бораи чӣ гуна бо шумо тамос гирифтан. Ба забони англисӣ ҷавоб диҳед, зеро Крис ширкаткунандаеро интихоб мекунад, ки худаш дар тренинг иштирок мекунад.
Мо номи иштирокчии тренингро дар навсозии ин пост ва дар шабакаҳои иҷтимоии Avito барои таҳиягарон эълон хоҳем кард (AvitoTech дар Facebook, ВКонтакте, Twitter) на дертар аз 19 июль.