Платформаи видеоиро дар 90 рӯз таҳия кунед

Бахори имсола мо худро дар шароити хеле фарахбахш дидем. Аз сабаби пандемия маълум шуд, ки конфронсҳои тобистонаи мо бояд ба онлайн интиқол дода шаванд. Ва барои он ки онҳо онлайн самаранок кор кунанд, қарорҳои нармафзори омода барои мо мувофиқ набуданд; мо бояд худамонро нависем. Ва мо барои ин кор се моҳ доштем.

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

  • Николай Молчанов — директори техникии JUG Ru Group;
  • Владимир Красилщик як барномасози прагматикии Java аст, ки дар пушти қафо кор мекунад (шумо метавонед гузоришҳои ӯро дар конфронсҳои Java-и мо бубинед);
  • Артём Никонов барои тамоми ҷараёни видеои мо масъул аст.

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

Платформаи видеоиро дар 90 рӯз таҳия кунед

Сурати умумӣ

— Хайати команда чй гуна буд?

Николай Молчанов: Мо як таҳлилгар, дизайнер, озмоишгар, се пешбар ва пушти сар дорем. Ва, албатта, мутахассиси шакли Т!

— Умуман процесс чй гуна буд?

Николай: То нимаи моҳи март, мо умуман барои онлайн чизе омода набудем. Ва 15 март тамоми карусели онлайн ба гардиш шурӯъ кард. Мо якчанд анбор ташкил кардем, ба нақша гирифтем, меъмории асосиро муҳокима кардем ва ҳама чизро дар давоми се моҳ анҷом додем.

Ин, албатта, аз марҳилаҳои классикии банақшагирӣ, меъморӣ, интихоби хусусият, овоздиҳӣ барои он хусусиятҳо, сиёсат барои ин хусусиятҳо, тарҳрезӣ, таҳия, санҷиши онҳо гузашт. Натичаи хамин аст, ки мо 6 июнь хама чизро ба истехсолот су-пурдем. TechTrain. Барои ҳама чиз 90 рӯз буд.

— Ухдадориамонро ичро карда тавонистем?

Николай: Азбаски мо ҳоло дар конфронси DevOops онлайн иштирок мекунем, ин маънои онро дорад, ки он кор кардааст. Ман шахсан ба чизи асосӣ итоат кардам: ман ба мизоҷон асбоберо меорам, ки онҳо метавонанд бо он конфронси онлайн ташкил кунанд.

Мушкилот ин буд: ба мо асбобе диҳед, ки мо метавонем конфронсҳои худро ба дорандагони чипта пахш кунем.

Ҳама банақшагирӣ ба якчанд марҳила тақсим карда шуданд ва ҳамаи хусусиятҳо (тақрибан 30 глобалӣ) ба 4 категория тақсим карда шуданд:

  • ки мо бешубҳа мекунем (мо бе онҳо зиндагӣ карда наметавонем),
  • ки мо дар навбати дуюм мекунем,
  • ки мо ҳеҷ гоҳ иҷро намекунем,
  • ки мо харгиз ва хеч гох ичро нахохем кард.

Мо ҳама хусусиятҳоро аз ду категорияи аввал сохтем.

— Ман медонам, ки дар маҷмӯъ 600 шумораи JIRA таъсис дода шудааст. Дар се моҳ шумо 13 хидматрасонии хурд сохтаед ва ман гумон мекунам, ки онҳо на танҳо дар Java навишта шудаанд. Шумо технологияҳои гуногунро истифода бурдед, шумо дар се минтақаи дастрас ду кластери Kubernetes ва 5 ҷараёнҳои RTMP дар Амазонка доред.

Биёед ҳоло ҳар як ҷузъи системаро алоҳида дида бароем.

Ҷараён

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

Артём Никонов: Нақшаи умумии мо чунин менамояд: тасвир аз камера -> утоқи идоракунии мо -> сервери RTMP маҳаллӣ -> Amazon -> плеери видео. Тафсилоти бештар дар бораи он навишт дар Хабре дар мохи июнь.

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

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

Сигналҳои ин дастгоҳҳо ба компютерҳои дорои кортҳои сабткунӣ, кортҳои вуруд/барорӣ ва кортҳои садоӣ ворид мешаванд. Дар он ҷо сигналҳо омехта ва ба тарҳҳо ҷамъ карда мешаванд:

Платформаи видеоиро дар 90 рӯз таҳия кунед
Намунаи тарҳ барои 4 баландгӯяк

Платформаи видеоиро дар 90 рӯз таҳия кунед
Намунаи тарҳ барои 4 баландгӯяк

Минбаъд, пахши бефосила бо ёрии се компютер таъмин карда мешавад: як мошини асосӣ ва як ҷуфти корӣ дар навбати худ. Компютери якум хисоботи якумро чамъ мекунад, дуюм — танаффус, якум — хисоботи навбатй, дуйум — танаффуси навбатй ва гайра. Ва мошини асосй якумро бо дуюмаш омехта мекунад.

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

Баъдан, ҷараёнҳо аз компютерҳо ба сервери маҳаллӣ мераванд, ки ду вазифа дорад: масири ҷараёнҳои RTMP ва нусхабардории сабт. Ҳамин тавр, мо якчанд нуқтаҳои сабт дорем. Пас аз он ҷараёнҳои видео ба қисми системаи мо, ки дар хидматҳои Amazon SaaS сохта шудаанд, фиристода мешаванд. Мо истифода мебарем MediaLive:,S3, CloudFront.

Николай: Пеш аз он ки видео ба тамошобинон расад, дар он ҷо чӣ мешавад? Шумо бояд онро бо ягон роҳ буред, дуруст?

Артём: Мо видеоро аз ҷониби худ фишурда, онро ба MediaLive мефиристем. Мо дар он ҷо транскодерҳоро ба кор меандозем. Онҳо видеоҳоро дар вақти воқеӣ ба якчанд қарорҳо табдил медиҳанд, то одамон онҳоро дар телефонҳои худ, тавассути интернети камбизоат дар кишвар ва ғайра тамошо кунанд. Сипас ин ҷараёнҳо бурида мешаванд пораҳо, протокол хамин тавр кор мекунад HLS. Мо рӯйхати навозишро ба фронт мефиристем, ки дорои нишондиҳандаҳои ин порчаҳо мебошад.

— Оё мо қарори 1080p-ро истифода мебарем?

Артём: Паҳнои видеои мо якхела бо 1080p - 1920 пиксел ва баландӣ каме камтар аст, тасвир дарозтар аст - ин сабабҳо дорад.

Бозингар

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

Николай: Мо як бозигар дорем, ки онро ҳама тамошобинони конфронс тамошо карда метавонанд.

Платформаи видеоиро дар 90 рӯз таҳия кунед

Аслан, ин як бастаи атрофи китобхона аст hls.js, ки дар он бисёр бозигарони дигар навишта шудаанд. Аммо ба мо як функсияи хеле мушаххас лозим буд: баргардонидан ва қайд кардани ҷойе, ки шахс дар куҷост, кадом гузоришеро, ки ӯ ҳоло тамошо мекунад. Мо инчунин ба тарҳҳои худамон, ҳама гуна логотипҳо ва ҳама чизҳои дигаре, ки бо мо сохта шудаанд, лозим буд. Аз ин рӯ, мо тасмим гирифтем, ки китобхонаи шахсии худро нависем (маҷмӯаи болои HLS) ва онро дар сайт ҷойгир кунем.

Ин функсионалии реша аст, бинобар ин он қариб дар аввал амалӣ карда шуд. Ва он гоҳ ҳама чиз дар атрофи он афзоиш ёфт.

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

Платформаи видеоиро дар 90 рӯз таҳия кунед
Намунаи ҷадвали вақт

— Тугмае рост дар плеер сохта шудааст, то ҷадвали ҳама гузоришҳоро нишон диҳад...

Николай: Бале, мо дарҳол масъалаи паймоиши корбаронро ҳал кардем. Дар миёнаҳои моҳи апрел мо тасмим гирифтем, ки ҳар як конфронси худро дар як вебсайти алоҳида пахш накунем, балки ҳама чизро дар як ҷо муттаҳид кунем. Барои он ки корбарони чиптаи Full Pass метавонанд дар байни конфронсҳои гуногун озодона гузаранд: ҳам пахши мустақим ва ҳам сабти конфронсҳои гузашта.

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

— Дар ин бобат ягон душвории техникй ба амал омад?

Николай: Онҳо сатри паймоиш доштанд, ки дар он нуқтаҳои ибтидоии гузоришҳои гуногун қайд карда шуда буданд.

- Дар ниҳоят, оё шумо ин аломатҳоро дар сатри ҳаракат пеш аз он ки YouTube ягон коре ба ин монандро анҷом диҳад, татбиқ кардед?

Артём: Он вақт онҳо дар бета буданд. Чунин ба назар мерасад, ки ин як хусусияти хеле мураккаб аст, зеро онҳо дар тӯли як соли охир онро қисман бо корбарон санҷидаанд. Ва ҳоло он ба фурӯш расидааст.

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

Қисмати пеш

— Биёед бифаҳмем, ки ин мундариҷае, ки мо нишон медиҳем (корти нутқ, баромадкунандагон, вебсайт, ҷадвал) чӣ гуна ба фронт мерасанд?

Владимир Красилщик: Мо якчанд системаҳои дохилии IT дорем. Системае мавҷуд аст, ки дар он ҳама гузоришҳо ва ҳамаи баромадкунандагон ворид карда мешаванд. Раванде вуҷуд дорад, ки тавассути он маърӯзачӣ дар конфронс иштирок мекунад. Нотик ариза пешниҳод мекунад, система онро сабт мекунад, пас як лӯлаи муайяне мавҷуд аст, ки мувофиқи он гузориш эҷод карда мешавад.

Платформаи видеоиро дар 90 рӯз таҳия кунед
Маърузачй трубопроводро хамин тавр мебинад

Ин система тараккиёти дохилии мост.

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

Чунин ба назар мерасад, ки сайт танҳо як саҳифа бо плеер аст ва дар ин ҷо ҳеҷ чизи мураккаб нест. Магар ин нест. Дар паси ин саҳифа ба Contentful меравад, ҷадвалро аз он ҷо мегирад, баъзе объектҳоро тавлид мекунад ва онро ба фронт мефиристад. Бо истифода аз пайвасти вебсокет, ки ҳар як муштарии платформаи мо онро месозад, мо ба ӯ навсозиро ба ҷадвал аз пушти сар то фронт мефиристем.

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

Николай: Дар ин ҷо равшан кардан муҳим аст, ки сайти мо барномаи классикии SPA нест. Ин ҳам як вебсайти тарҳрезишуда ва ҳам SPA мебошад. Google воқеан ин сайтро ҳамчун HTML нишондодашуда мебинад. Ин барои SEO ва расонидани мундариҷа ба корбар хуб аст. Он пеш аз дидани саҳифа интизор нест, ки 1,5 мегабайт JavaScript бор карда шавад, вай дарҳол саҳифаи аллакай намоишшударо мебинад ва шумо ҳар дафъае, ки гузоришро иваз мекунед, эҳсос мекунед. Ҳама чиз дар ним сония рӯй медиҳад, зеро мундариҷа аллакай омода ва дар ҷои лозима ҷойгир карда шудааст.

— Биёед бо номбар кардани технологияҳо дар зери ҳамаи гуфтаҳои боло хат кашем. Тиома гуфт, ки мо 5 ҷараёнҳои Amazon дорем ва мо дар он ҷо видео ва садоро мерасонем. Мо дар он ҷо скриптҳои bash дорем, мо онҳоро барои оғоз ва танзим истифода мебарем...

Артём: Ин тавассути AWS API рӯй медиҳад, дар он ҷо хидматҳои зиёди техникӣ мавҷуданд. Мо масъулиятҳои худро тақсим кардем, то ман ба он бирасонам CloudFront, ва таҳиягарони пешрафта ва пушти сар онро аз он ҷо мегиранд. Мо барои содда кардани тарҳбандии мундариҷа як қатор пайвандҳои худ дорем, ки мо онҳоро дар 4K ва ғайра месозем. Азбаски мӯҳлатҳо хеле танг буданд, мо онро қариб пурра дар AWS иҷро кардем.

— Он гоҳ ҳамаи ин ба плеер бо истифода аз системаи пуштибонӣ ворид мешавад. Мо дар плеери худ TypeScript, React, Next.JS дорем. Ва дар паси мо якчанд хидматҳо дар C#, Java, Spring Boot ва Node.js дорем. Ин ҳама бо истифода аз Kubernetes бо истифода аз инфрасохтори Yandex.Cloud ҷойгир карда мешавад.

Ман инчунин мехоҳам қайд намоям, ки вақте ба ман лозим буд, ки бо платформа шинос шавам, ин осон шуд: ҳама анборҳо дар GitLab ҷойгиранд, ҳама чиз хуб номгузорӣ шудааст, санҷишҳо навишта шудаанд, ҳуҷҷатҳо мавҷуданд. Яъне хатто дар ре-жими фавкулодда хам ба чунин чизхо гамхорй мекарданд.

Маҳдудиятҳои тиҷорат ва таҳлил

— Мо дар асоси талаботи тиҷорат 10 000 корбарро ҳадаф қарор додем. Вақти он расидааст, ки дар бораи маҳдудиятҳои тиҷорате, ки мо доштем, сӯҳбат кунем. Мо бояд сарбории баланди корро таъмин кунем, риояи қонунро дар бораи ҳифзи маълумоти шахсӣ таъмин кунем. Ва боз чӣ?

Николай: Дар аввал мо аз талаботи видео оғоз кардем. Муҳимтар аз ҳама он аст, ки захираи видео дар саросари ҷаҳон паҳн карда мешавад, то ба муштарӣ зуд интиқол дода шавад. Дигарон қарори 1080p ва инчунин бозгаштро дар бар мегиранд, ки бисёриҳо дар ҳолати зинда иҷро намекунанд. Баъдтар мо қобилияти фаъол кардани суръати 2хро илова кардем, ки бо ёрии он шумо метавонед бо зинда "дастрасӣ кунед" ва тамошои конфронсро дар вақти воқеӣ идома диҳед. Ва дар роҳ, функсияи аломатгузории вақт пайдо шуд. Илова бар ин, мо бояд ба хатогиҳо таҳаммулпазир бошем ва ба бори 10 пайваст тоб оварем. Аз нуқтаи назари пуштибонӣ, ин тақрибан 000 пайваст аст, ки бо 10 дархост барои ҳар як навсозии саҳифа зарб карда мешавад. Ва ин аллакай 000 RPS / сония аст. Хеле каме.

— Барои «намоишгоҳи виртуалӣ» бо стендҳои онлайни шарикон ягон талаботи дигар вуҷуд дошт?

Николай: Оре, ин корро хеле зуд ва ба таври умум ичро кардан лозим буд. Мо барои ҳар як конфронс то 10 ширкати шарик доштем ва ҳамаи онҳо бояд дар давоми як ё ду ҳафта ба итмом мерасанд. Бо вуҷуди ин, мундариҷаи онҳо аз ҷиҳати формат каме фарқ мекунад. Аммо як муҳаррики қолаби муайяне сохта шуд, ки ин саҳифаҳоро зуд ҷамъ мекунад ва амалан бидуни иштироки минбаъдаи рушд.

— Талабот барои тахлили афкори реалй ва омор низ вучуд дошт. Ман медонам, ки мо барои ин аз Prometheus истифода мебарем, аммо ба мо муфассалтар бигӯед: мо барои таҳлил чӣ гуна талаботҳо дорем ва ин чӣ гуна амалӣ карда мешавад?

Николай: Дар аввал, мо талаботҳои маркетингиро барои ҷамъоварӣ барои санҷиши A/B ва ҷамъоварии маълумот дорем, то бифаҳмем, ки чӣ гуна дар оянда мундариҷаи беҳтаринро ба муштарӣ дуруст расонем. Инчунин барои баъзе таҳлилҳо оид ба фаъолияти шарикон ва таҳлилҳое, ки шумо мебинед (ба ҳисобкунак боздид кунед) талабот вуҷуд дорад. Ҳама маълумот дар вақти воқеӣ ҷамъоварӣ карда мешавад.

Мо метавонем ин маълумотро дар шакли ҷамъшуда ҳатто ба баромадкунандагон пешниҳод кунем: дар лаҳзаи муайян чанд нафар шуморо мушоҳида мекарданд. Ҳамзамон, барои риояи Қонуни федералии 152, ҳисоби шахсии шумо ва маълумоти шахсии шумо ба ҳеҷ ваҷҳ пайгирӣ карда намешавад.

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

Қаллобӣ

— Оё дар мо механизмхои зидди фиребгарй мавчуданд?

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

Владимир: Ба эътиқоди он, яке аз корбарони мамнӯъ фаҳмид, ки чаро ин рӯй дод. У омад, узр пурсид ва ваъда дод, ки билет мехарад.

— Барои он ки ҳамаи ин рӯй диҳад, шумо бояд ҳама корбаронро аз вуруд то баромадан пурра пайгирӣ кунед, ҳамеша бидонед, ки онҳо чӣ кор мекунанд. Ин система чӣ гуна кор мекунад?

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

Платформаи видеоиро дар 90 рӯз таҳия кунед

Дар ҳамон маълумот захира карда мешавад mongo ва ба кӯли додаҳои мо меравад, ки мо аз он имкон дорем, ки диаграммаи ҷолибтаре созем. Саволе ба миён меояд: чанд нафар корбарони беназир ин гузоришро дидаанд? Мо ба постгресс, пингҳои ҳамаи одамоне ҳастанд, ки бо ID-и ин гузориш омадаанд. Мо нодирҳоро ҷамъ кардем, ҷамъ кардем ва ҳоло мо метавонем фаҳмем.

Николай: Аммо дар айни замон, мо инчунин аз Прометей маълумоти воқеӣ мегирем. Он бар зидди ҳама хидматҳои Kubernetes, бар зидди худи Kubernetes гузошта шудааст. Он комилан ҳама чизро ҷамъ мекунад ва бо Grafana мо метавонем ҳама гуна графикҳоро дар вақти воқеӣ созем.

Владимир: Аз як тараф, мо онро барои коркарди минбаъдаи OLAP зеркашӣ мекунем. Ва барои OLTP, барнома ҳама чизро ба Prometheus, Grafana зеркашӣ мекунад ва графикҳо ҳатто ба ҳам меоянд!

- Ин ҳолатест, ки графикҳо ба ҳам наздик мешаванд.

Тағироти динамикӣ

— Ба мо бигӯед, ки тағиротҳои динамикӣ чӣ гуна ба амал меоянд: агар гузориш 6 дақиқа пеш аз оғоз бекор карда шуда бошад, силсилаи амалҳо чист? Кадом қубур кор мекунад?

Владимир: Газопровод хеле шартй аст. Якчанд имконот вуҷуд дорад. Якум ин аст, ки барномаи тавлиди ҷадвал кор кард ва ҷадвалро тағйир дод. Ҷадвали тағирёфта ба Contentful бор карда мешавад. Пас аз он, пуштибон дарк мекунад, ки барои ин конфронс дар Contentful тағирот вуҷуд дорад, онро мегирад ва аз нав барқарор мекунад. Ҳама чиз ҷамъоварӣ ва тавассути websocket фиристода мешавад.

Имконияти дуюм, вақте ки ҳама чиз бо суръати бениҳоят рух медиҳад: муҳаррир маълумотро дар Contentful дастӣ иваз мекунад (пайванд ба Telegram, муаррифии спикер ва ғайра) ва ҳамон мантиқ мисли бори аввал кор мекунад.

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

Владимир: Инчунин, барои оғози гузоришҳо дар ҷадвали вақт маҳдудиятҳои вақт мавҷуданд. Дар ибтидо чизе нест. Ва агар шумо мушро ба болои рахи сурх гузоред, пас дар баъзе мавридҳо, ба шарофати директори пахш, буриданҳо пайдо мешаванд. Режиссёр оғози дурусти пахшро муқаррар мекунад, пуштибон ин тағиротро қабул мекунад, вақти оғоз ва анҷоми презентатсияҳои тамоми трекро мувофиқи ҷадвали конфронс ҳисоб мекунад, онро ба мизоҷони мо мефиристад ва плеер буришҳоро муайян мекунад. Акнун корбар метавонад ба осонӣ ба аввал ва охири гузориш паймоиш кунад. Ин як талаботи қатъии тиҷорат буд, хеле қулай ва муфид. Шумо барои дарёфти вақти воқеии оғози гузориш вақтро сарф намекунед. Ва вақте ки мо пешнамоиш мекунем, он комилан олиҷаноб хоҳад буд.

Ҷойгиркунӣ

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

Николай: Аз нуқтаи назари техникӣ, мо дар аввал талабот доштем, ки маҳсулот аз ҳама фурӯшанда то ҳадди имкон абстракт бошад. Ба AWS биёед, то скриптҳои Terraformро махсус аз AWS ё махсусан аз Яндекс ё ​​Azure ва ғайра созед. аслан мувофиқ набуд. Мо маҷбур шудем, ки дар ягон вақт ба ҷое ҳаракат кунем.

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

Мо ду кластер дорем. Санҷиш ва истеҳсолот. Онҳо аз ҷиҳати сахтафзор ва танзимот комилан якхелаанд. Мо инфрасохторро ҳамчун код татбиқ мекунем. Ҳама хидматҳо ба таври худкор ба се муҳит аз шохаҳои хусусият, филиалҳои асосӣ, шохаҳои санҷишӣ ва GitLab бо истифода аз лӯлаи автоматӣ интиқол дода мешаванд. Он ба GitLab ба таври максималӣ муттаҳид карда шудааст ва ба ҳадди аксар бо Elastic, Prometheus ҳамгиро шудааст.

Мо имкон дорем, ки ба зудӣ (барои backend дар давоми 10 дақиқа, барои frontend дар давоми 5 дақиқа) тағиротро дар ҳама гуна муҳит бо ҳама санҷишҳо, ҳамгироӣ, санҷишҳои функсионалӣ, санҷишҳои ҳамгироӣ дар муҳити атроф ворид созем ва инчунин бо санҷишҳои сарборӣ дар муҳити санҷиш тақрибан ҳамон чизест, ки мо мехоҳем дар истеҳсолот ба даст орем.

Дар бораи санҷишҳо

— Шумо қариб ҳама чизро месанҷед, бовар кардан душвор аст, ки чӣ тавр ҳама чизро навиштаед. Метавонед ба мо дар бораи санҷишҳои пуштибонӣ бигӯед: ҳама чиз чӣ қадар фаро гирифта шудааст, кадом санҷишҳо?

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

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

Дар айни замон ман тақрибан 70 санҷиши компонентӣ ва тақрибан 40 санҷиши ҳамгироӣ дорам. Фарогирӣ хеле наздик ба 95% аст. Ин барои ҷузъҳои ҷузъӣ, камтар барои ҳамгироӣ, он қадар лозим нест. Бо назардошти он, ки лоиҳа ҳама намудҳои тавлиди кодҳоро дар бар мегирад, ин нишондиҳандаи хеле хуб аст. Дигар илоче набуд, ки кореро, ки дар се мох анчом додем. Зеро агар мо ба таври дастӣ санҷида бошем ва ба озмоишгари худ хусусиятҳо диҳем ва ӯ хатогиҳоро пайдо карда, онҳоро барои ислоҳ ба мо бармегардонад, пас ин сафари даврӣ барои ислоҳи код хеле тӯлонӣ хоҳад буд ва мо ҳеҷ гуна мӯҳлатро риоя намекунем.

Николай: Одатан, барои анҷом додани регрессия дар тамоми платформа ҳангоми тағир додани ягон функсия, ба шумо лозим аст, ки дар тӯли ду рӯз дар ҳама ҷо нишинед ва пок кунед.

Владимир: Аз ин рӯ, ин як муваффақияти бузург аст, ки вақте ки ман як хусусиятро баҳо медиҳам, мегӯям, ки барои ду қалами оддӣ ва 4 веб-розетка 1 рӯз лозим аст, Коля иҷозат медиҳад. Ӯ аллакай ба он одат кардааст, ки ин 4 рӯз 2 намуди санҷишро дар бар мегирад ва баъдан, эҳтимоли зиёд кор мекунад.

Николай: Ман инчунин 140 санҷиш навиштаам: компонент + функсионалӣ, ки ҳамон корро мекунанд. Ҳама як сенарияҳо дар истеҳсолот, дар озмоиш ва истеҳсолот озмуда мешаванд. Мо инчунин ба наздикӣ санҷишҳои функсионалии UI илова кардем. Бо ин роҳ мо функсияҳои асосӣеро, ки метавонанд аз ҳам ҷудо шаванд, фаро мегирем.

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

- Ман аниқ намедонам, ки оё мо чизеро дар тарафи ҷараён санҷида истодаем, аммо дар ёд дорам, ки ҳангоми вохӯрӣ бо транскодерҳо мушкилот вуҷуд доштанд. Оё мо ҷараёнҳоро озмоиш кардем?

Артём: Ба таври такрорӣ санҷида шуд. Ташкили вохӯриҳо. Дар ҷараёни ташкили вохӯриҳо тақрибан 2300 чиптаи JIRA мавҷуд буд. Инҳо танҳо чизҳои умумӣ мебошанд, ки одамон барои вохӯриҳо анҷом додаанд. Мо қисмҳои платформаро ба саҳифаи алоҳида барои вохӯриҳо, ки онро Кирилл Толкачев роҳбарӣ мекард, гирифтем (talkkv).

Рости ran, ягон мушкилии калон набуд. Аслан якчанд маротиба мо хатогиҳои кэшро дар CloudFront дарёфтем, мо онро хеле зуд ҳал кардем - мо танҳо сиёсатҳоро аз нав танзим кардем. Дар одамон, дар системаҳои ҷараён дар сайт хатогиҳо ба таври назаррас бештар буданд.

Дар рафти конфронсҳо ман маҷбур шудам, ки боз якчанд содиркунандагони дигар нависам, то таҷҳизот ва хидматҳои бештарро фаро гирам. Дар баъзе ҷойҳо ман маҷбур шудам, ки велосипедҳои худамро танҳо ба хотири метрика созам. Ҷаҳони сахтафзори AV (аудио-видео) чандон гулобӣ нест - шумо як навъи "API"-и таҷҳизот доред, ки шумо наметавонед ба онҳо таъсир расонед. Ва ин аз он дур аст, ки шумо метавонед маълумоти заруриро ба даст оред. Фурӯшандагони сахтафзор воқеан сустанд ва он чизеро, ки аз онҳо мехоҳед, гирифтан қариб ғайриимкон аст. Дар маҷмӯъ зиёда аз 100 адад сахтафзор мавҷуд аст, онҳо он чизеро, ки ба шумо лозим аст, барнамегардонанд ва шумо содиркунандагони аҷиб ва зиёдатӣ менависед, ки ба шарофати онҳо шумо ҳадди ақалл метавонед системаро ислоҳ кунед.

Таҷҳизот

— Дар хотир дорам, ки мо пеш аз огози конференция чй тавр кисман тачхизоти иловагй харидем.

Артём: Мо компютерҳо, ноутбукҳо ва бастаҳои батарея харидем. Дар айни замон мо метавонем 40 дақиқа бе барқ ​​зиндагӣ кунем. Моҳи июн дар Санкт-Петербург раъду барқи шадид ба амал омад - бинобар ин мо чунин хомӯширо доштем. Ҳамзамон, якчанд провайдерҳо бо истинодҳои оптикӣ аз нуқтаҳои гуногун ба мо меоянд. Ин воқеан 40 дақиқаи бекористии сохтмон аст, ки дар давоми он мо чароғҳо, садо, камераҳо ва ғайра кор мекунанд.

— Мо бо интернет чунин як ҳикоя дорем. Дар кабинете, ки студияи мо вокеъ аст, мо дар байни ошьёнахо торхои сахт кашола кардем.

Артём: Мо дар байни ошёнаҳо 20 Гбит нахи дорем. Минбаъд дар паҳлӯи ошёнаҳо, дар ҷое оптика ҳаст, дар ҷое оптика нест, аммо ба ҳар ҳол каналҳо нисбат ба каналҳои гигабитӣ камтаранд - мо дар байни онҳо видео мегузорем. Умуман, кор дар инфрасохтори шахсии худ хеле қулай аст; шумо метавонед ин корро дар конфронсҳои офлайнӣ дар сайтҳо хеле кам анҷом диҳед.

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

Саволҳо ва мушкилот

— Шумо хуб гуфтед, ки мо бо Amazon ҷараён дорем, плеер бо веб мавҷуд аст, ҳама чиз бо забонҳои гуногуни барномасозӣ навишта шудааст, таҳаммулпазирӣ ба хатогиҳо ва дигар талаботҳои тиҷоратӣ, аз ҷумла ҳисоби шахсӣ, ки барои шахсони ҳуқуқӣ дастгирӣ карда мешавад ва шахсони алоҳида ва мо метавонем бо касе бо истифода аз OAuth 2.0 ҳамгиро шавем, зидди қаллобӣ, бастани корбар вуҷуд дорад. Мо метавонем тағиротро ба таври динамикӣ иҷро кунем, зеро мо онро хуб иҷро кардем ва ҳамааш санҷида шудааст.

Ман шавқ дорам, ки бидонам, ки дар оғоз кардани кор чӣ аҷибе буд. Оё ягон ҳолатҳои аҷибе рух дода буд, ки шумо пуштибон, фронтентро таҳия мекардед, чизи девонае рӯй дод ва шумо намефаҳмед, ки бо он чӣ кор кунед?

Владимир: Ба назари ман, ин танҳо дар се моҳи охир рӯй дод. Ҳар рӯз. Тавре ки мебинед, тамоми мӯйҳои ман кашида шудаанд.

Платформаи видеоиро дар 90 рӯз таҳия кунед
Владимир Красилщик пас аз 3 моҳ, вақте ки ягон бозӣ рӯй дод ва ҳеҷ кас намефаҳмид, ки бо он чӣ кор кунад

Ҳар рӯз чунин чизе буд, вақте ки чунин лаҳзае буд, ки шумо онро гирифта, мӯятонро канда, ё мефаҳмед, ки ҳеҷ каси дигар нест ва танҳо шумо метавонед ин корро кунед. Аввалин чорабинии бузурги мо TechTrain буд. 6 июнь, соати 2 пагохй мо хануз мухити истехсолотро ба кор набароварда будем, Коля онро ба чо меовард. Ва ҳисоби шахсӣ ҳамчун сервери авторизатсия бо истифода аз OAuth2.0 кор намекард. Мо онро ба провайдери OAuth2.0 табдил додем, то платформаро ба он пайваст кунем. Ман эҳтимолан 18 соат беист кор мекардам, ба компютер нигоҳ кардам ва чизе надидам, ман намефаҳмидам, ки чаро он кор намекунад ва Коля аз дур ба коди ман нигоҳ карда, дар конфигуратсияи баҳор хато меҷуст. , ёфт ва LC кор кард ва дар истехсолот хам .

Николай: Ва як соат пеш аз TechTrain нашри он сурат гирифт.

Дар ин ҷо ситораҳои зиёде ҳамзамон буданд. Мо бениҳоят хушбахт будем, зеро мо як дастаи олӣ доштем ва ҳама аз идеяи он дар интернет илҳом гирифта буданд. Ҳамаи ин се моҳ моро водор сохт, ки мо "YouTube-ро сохтем". Ман ба худам иҷозат надодам, ки мӯямро канда, аммо ба ҳама гуфтам, ки ҳамааш хуб мешавад, зеро дар асл ҳама чиз кайҳо ҳисоб шуда буд.

Дар бораи иҷрои

— Метавонед бигӯед, ки дар як трек чанд нафар дар сайт буданд? Оё ягон мушкилоти иҷроиш вуҷуд дошт?

Николай: Тавре ки мо аллакай гуфта будем, ягон мушкилот вуҷуд надошт. Шумораи максималии одамоне, ки дар як гузориш 1300 нафар буданд, ин дар Heisenbug аст.

— Дар тамошои махалхо ягон мушкилие пеш омад? Ва оё мумкин аст тавсифи техникӣ бо диаграммаҳои он чӣ гуна кор мекунад?

Николай: Мо дертар дар ин бора мақолае омода хоҳем кард.

Шумо ҳатто метавонед ҷараёнҳоро ба таври маҳаллӣ ислоҳ кунед. Вақте ки конфронсҳо оғоз шуданд, он боз ҳам осонтар шуд, зеро ҷараёнҳои истеҳсолӣ пайдо шуданд, ки мо ҳама вақт тамошо карда метавонем.

Владимир: Тавре ки ман мефаҳмам, таҳиягарони фронталӣ ба таври маҳаллӣ бо масхара кор мекарданд ва пас аз он, ки вақти паҳн кардани таҳиягарон дар пеш низ кӯтоҳ аст (5 дақиқа), дар тафтиши он чизе, ки бо сертификатҳо мегузарад, мушкилот вуҷуд надорад.

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

Владимир: Шумо метавонед онро гиред ва такрор кунед.

— Дар 3 мох.

Натиҷа

— Хама чиз, ки якчоя тасвир карда шудааст, ба назар хуб ме-ояд, ки ин корро як коллективи хурд дар давоми се мох ичро кардааст.

Николай: Як дастаи калон ин корро намекунад. Аммо як гурӯҳи хурди одамоне, ки бо ҳамдигар хеле зич ва хуб муошират мекунанд ва метавонанд ба созиш бирасанд. Онхо ягон зиддият надоранд, меъморй дар давоми ду руз ихтироъ карда шуда, ба охир расид ва аслан тагьир наёфтааст. Дар робита ба пур кардани дархостҳо ва тағиротҳо, осон кардани талаботҳои тиҷорати воридотӣ хеле сахт аст.

— Дар руйхати вазифахои минбаъдаи шумо чй буд, вакте ки конференцияхои тобистона аллакай барпо гардиданд?

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

Ва инчунин ба тамоми платформа илова кардан, ба истиснои ҷараён ва конфронс, инчунин ҳолати пас аз конфронс. Инҳо рӯйхати навозишҳо (аз ҷумла онҳое, ки аз ҷониби корбарон тартиб дода шудаанд), эҳтимолан мундариҷаи дигар конфронсҳои гузашта, ҳамгирошуда, нишонгузорӣ, барои корбар дастрас ва инчунин барои дидан дар вебсайти мо дастрасанд (live.jugru.org).

— Бачахо, барои чавобхоятон ташаккури зиёд!

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

Агар шумо ба платформа шавқ дошта бошед ва хоҳед, ки онро "дар ҷанг" бубинед, мо онро боз дар худ истифода мебарем конференцияхои тирамохй-зимистонй. Як қатор онҳо вуҷуд доранд, бинобар ин, қариб ки яке барои шумо мувофиқ аст.

Манбаъ: will.com

Илова Эзоҳ