Мы перадалі тэрабайты часопісаў CI LLM | Mewayz Blog Skip to main content
Hacker News

Мы перадалі тэрабайты часопісаў CI LLM

Каментарыі

1 min read Via www.mendral.com

Mewayz Team

Editorial Team

Hacker News

Схаваны залаты руднік у вашым канвееры CI

Іх стварае кожная каманда інжынераў. Мільёны радкоў кожны дзень — пазнакі часу, трасіроўкі стэка, дазволы залежнасцей, вынікі тэстаў, артэфакты зборкі і загадкавыя паведамленні пра памылкі, якія пракручваюцца хутчэй, чым хто-небудзь можа прачытаць. Журналы CI - гэта выхлапныя газы сучаснай распрацоўкі праграмнага забеспячэння, і для большасці арганізацый яны разглядаюцца гэтак жа, як і выхлапныя газы: адпраўляюцца ў сховішча і забываюцца. Але што, калі гэтыя журналы ўтрымлівалі шаблоны, якія маглі б прадказваць збоі да таго, як яны адбудуцца, вызначаць вузкія месцы, якія каштуюць вашай камандзе сотні гадзін у квартал, і выяўляць сістэмныя праблемы, якія ніколі не заўважае ні адзін інжынер? Мы вырашылі высветліць гэта, увёўшы тэрабайты даных часопіса CI у вялікую моўную мадэль — і тое, што мы выявілі, цалкам змяніла наша ўяўленне пра DevOps.

Чаму журналы CI з'яўляюцца найбольш недастаткова выкарыстоўванымі дадзенымі ў праграмнай інжынерыі

Звярніце ўвагу на велізарны аб'ём. Каманда інжынераў сярэдняга памеру, якая выконвае 200 зборак у дзень у некалькіх сховішчах, штодня стварае прыкладна 2-4 ГБ неапрацаваных дадзеных журнала. За год гэта больш за тэрабайт структураванага і паўструктураванага тэксту, які фіксуе кожную кампіляцыю, кожнае выкананне набору тэстаў, кожны этап разгортвання і кожны рэжым збою, з якім калі-небудзь сутыкалася ваша сістэма. Гэта поўны археалагічны запіс аб прадукцыйнасці вашай інжынернай арганізацыі — і амаль ніхто яго не чытае.

Праблема не ў тым, што даным не хапае каштоўнасці. Справа ў тым, што суадносіны сігнал/шум жорсткае. Тыповы запуск CI стварае тысячы радкоў вываду, і, магчыма, 3-5 з гэтых радкоў утрымліваюць дзейсную інфармацыю. Інжынеры вучацца шукаць чырвоны тэкст, grep для "FAILED" і рухацца далей. Але шаблоны, якія маюць вялікае значэнне - нестабільны тэст, які праходзіць няўдала кожны аўторак, залежнасць, якая дадае 40 секунд да кожнай зборкі, уцечка памяці, якая выяўляецца толькі тады, калі адначасова працуюць тры пэўныя службы, - гэтыя шаблоны непрыкметныя на ўзроўні асобнага часопіса. Яны з'яўляюцца толькі ў маштабе.

Традыцыйныя інструменты аналізу часопісаў, такія як ELK stacks і Datadog, могуць агрэгаваць метрыкі і павярхоўныя супадзенні ключавых слоў, але яны змагаюцца з семантычнай складанасцю вываду CI. Паведамленне аб збоі зборкі "адмоўлена ў падключэнні на порце 5432" і паведамленне аб збоі "ФАТАЛЬНА: аўтэнтыфікацыя пароля не ўдалася для разгортвання карыстальніка" з'яўляюцца збоямі, звязанымі з базай дадзеных, але яны маюць зусім розныя асноўныя прычыны і рашэнні. Разуменне гэтага адрознення патрабуе кантэкстуальных разваг, якія да нядаўняга часу маглі даць толькі людзі.

Эксперымент: перадача 3,2 тэрабайта гісторыі зборак LLM

Устаноўка была простай па канцэпцыі і кашмарнай па выкананні. Мы сабралі журналы CI за 14 месяцаў з платформы, якая абслугоўвае больш за 138 000 карыстальнікаў, ахопліваючы зборкі ў розных сэрвісах, асяроддзях і мэтах разгортвання. Неапрацаваны набор даных дасягнуў 3,2 тэрабайта: прыкладна 847 мільёнаў асобных радкоў журнала, якія ахопліваюць 1,6 мільёна канвеераў CI. Мы разбілі, убудавалі і праіндэксавалі гэтыя даныя, а потым стварылі канвеер генерацыі з дапоўненым пошукам (RAG), які мог бы адказаць на пытанні натуральнай мовы аб нашай гісторыі зборак.

Першым выклікам была папярэдняя апрацоўка. Журналы CI не з'яўляюцца чыстым тэкстам. Яны ўтрымліваюць каляровыя коды ANSI, індыкатары прагрэсу, якія перазапісваюць сябе, двайковыя кантрольныя сумы артэфактаў і пазнакі часу як мінімум у чатырох розных фарматах у залежнасці ад таго, які інструмент іх згенераваў. Мы патрацілі тры тыдні толькі на нармалізацыю — выдаленне шуму, стандартызацыю часовых метак і пазначэнне кожнага сегмента часопіса метададзенымі аб тым, да якога этапу канвеера, сховішча, галіны і асяроддзя ён належыць.

Другой праблемай быў кошт. Выкананне высновы па тэрабайтах тэксту нятаннае, нават з агрэсіўнай аптымізацыяй разбівання і пошуку. Толькі за першы месяц мы спалілі значныя вылічальныя крэдыты, галоўным чынам з-за таго, што наш першапачатковы падыход быў занадта наіўным — мы адпраўлялі занадта шмат кантэксту на запыт і недастаткова выбарачна вызначалі, якія сегменты журнала актуальныя. Да канца другога месяца мы знізілі выдаткі на запыт на 87% дзякуючы лепшым стратэгіям убудавання і двухступеньчатай сістэме пошуку, якая выкарыстоўвала меншую мадэль для папярэдняй фільтрацыі перад адпраўкай у вялікую.

Пяць мадэляў, знойдзеных LLM, якія людзі ніколі б не зрабілі

На працягу першага тыдня выканання запытаў сістэма выявіла інфармацыю, на выяўленне якой аналітыку ўручную спатрэбіліся б месяцы. Гэта не былі крайнія выпадкі або кур'ёзы — гэта былі сістэмныя праблемы, якія страчвалі рэальныя інжынерныя гадзіны.

  1. Каскад фантомных залежнасцей. Адзінае абнаўленне пакета npm за 9 месяцаў да гэтага ўвяло 22-секундную затрымку для кожнай зборкі JavaScript. Затрымка была замаскіравана, таму што яна супала з абнаўленнем інфраструктуры CI, якое зрабіла зборкі ў цэлым больш хуткімі. Net-net, зборкі з'явіліся хутчэй, але яны маглі быць на 22 секунды хутчэй. Пры 400+ зборках JS у дзень гэта складала 2,4 гадзіны штодзённай траты вылічэнняў.
  2. Парушэнні часавых паясоў. Паказчык няўдач у наборы тэстаў склаў 4,7 % — дастаткова высокі, каб выклікаць раздражненне, дастаткова нізкі, каб ніхто не стаў прыярытэтам для выпраўлення. LLM выявіў, што збоі амаль ідэальна карэлююць са зборкамі, запушчанымі паміж 23:00 і 01:00 UTC, калі функцыя параўнання дат перасякала мяжу дня. Двухрадковае выпраўленне цалкам ліквідавала шматкі.
  3. Шаблон бясшумнага адкату. Разгортванне ў прамежкавым рэжыме было паспяховым у 99,2% выпадкаў, але LLM заўважыў, што за 31% «паспяховых» разгортванняў на прамежкавым узроўні на працягу 45 хвілін рушыла ўслед новае разгортванне таго ж сэрвісу, што сведчыць аб тым, што першае разгортванне было функцыянальна парушана, нягледзячы на праходжанне ўсіх праверак. Гэта прывяло да выяўлення таго, што тэст інтэграцыі прайшоў з-за кэшаваных адказаў ад фіктыўнага сэрвісу.
  4. Вузкае месца ў панядзелак раніцай. Час зборкі ў чарзе павялічваўся на 340% кожны панядзелак паміж 9:00 і 10:30 раніцы па мясцовым часе, таму што распрацоўшчыкі, якія працавалі на выходных, унеслі свае змены перад падрыхтоўкай. Выпраўленне не было тэхнічным — яно было аператыўным: расклад маштабавання пула бегуноў CI быў ашаламляльным, каб прадбачыць скокі ў панядзелак.
  5. Сцяг кампілятара, які ніхто не ўсталёўваў. 67% зборак C++ выконваліся без уключанай інкрыментнай кампіляцыі, што дадавала ў сярэднім 3,8 хвіліны на зборку. Сцяг быў задакументаваны ў кіраўніцтве па адаптацыі, але ніколі не дадаваўся ў агульны шаблон канфігурацыі CI.
<цытата>

"Самыя дарагія памылкі - гэта не тыя, якія прыводзяць да збою вашага прыкладання. Гэта тыя, якія ціха крадуць 30 секунд з кожнай зборкі, кожны дзень, на працягу многіх гадоў - пакуль нехта нарэшце не задасць правільнае пытанне аб правільным наборы даных."

Стварэнне практычнага ўзроўню CI Intelligence

Эксперымент пераканаў нас, што аналіз часопісаў на аснове LLM не з'яўляецца навінкай — гэта сапраўдная функцыянальная магчымасць. Але каб зрабіць яго практычным, патрэбна прадуманая архітэктура. Вы не можаце проста перадаваць неапрацаваныя журналы ў інтэрфейс чата і чакаць карысных адказаў. Сістэме патрэбна структура, і яе трэба інтэграваць у працоўныя працэсы, якія ўжо выкарыстоўваюць інжынеры.

Мы спыніліся на трохузроўневым падыходзе. Першы ўзровень - гэта аўтаматызаваная сартаванне: кожная няўдалая зборка аўтаматычна класіфікуецца па катэгорыі асноўнай прычыны (інфраструктура, залежнасць, логіка тэставання, канфігурацыя або шматкі) з ацэнкай даверу. Адно толькі гэта скараціла сярэдні час выпраўлення няўдач зборкі на 34%, таму што інжынерам больш не трэба было марнаваць 10 хвілін на чытанне журналаў, каб высветліць, з чаго пачаць пошук. Другі ўзровень - гэта выяўленне тэндэнцый: штотыднёвы дайджэст, які выяўляе ўзнікаючыя заканамернасці - рост частаты адмоваў, павелічэнне часу зборкі, новыя сігнатуры памылак - перш чым яны стануць крытычнымі. Трэці ўзровень - гэта інтэрактыўнае расследаванне: інтэрфейс, у якім інжынеры могуць задаваць пытанні на натуральнай мове аб гісторыі зборак, напрыклад, "Чаму пасля сакавіцкага выпуску сэрвіс X часцей даваў збоі?" або "Якая найбольш распаўсюджаная прычына памылак тайм-аўту ў плацяжы?"

Для каманд, якія вядуць складаныя аперацыі — асабліва для тых, хто кіруе шматлікімі бізнес-функцыямі, такімі як CRM, выстаўленне рахункаў, разлік заработнай платы і аналітыка праз такія платформы, як Mewayz, якая кіруе 207 інтэграванымі модулямі — такая назіральнасць становіцца яшчэ больш важнай. Калі адно разгортванне адначасова закранае працоўныя працэсы, накіраваныя на кліентаў, логіку выстаўлення рахункаў і сістэмы кадраў, разуменне ўзаемазалежнасцей у вашым канвееры CI не з'яўляецца абавязковым. Гэта вельмі важна для падтрымання надзейнасці, ад якой залежаць 138 000+ карыстальнікаў.

💡 DID YOU KNOW?

Mewayz replaces 8+ business tools in one platform

CRM · Invoicing · HR · Projects · Booking · eCommerce · POS · Analytics. Free forever plan available.

Start Free →

Што (пакуль) не працуе

Сумленнасць мае большае значэнне, чым шуміха. У гэтага падыходу ёсць выразныя абмежаванні, якія кожны, хто разглядае яго, павінен разумець. У LLM галюцынацыі, і калі яны галюцынуюць пра часопісы CI, вынікі могуць быць пераканаўча памылковымі. Мы бачылі, як сістэма ўпэўнена прыпісвае збой зборкі канфлікту залежнасцей, якога ніколі не існавала, у камплекце з сфабрыкаванымі нумарамі версій. Канвеер RAG значна памяншае гэта, але не ліквідуе. Кожная інфармацыя, якую стварае сістэма, па-ранейшаму патрабуе праверкі чалавекам, перш чым дзейнічаць.

Маштаб застаецца праблемай. Нягледзячы на ​​тое, што пошукавая сістэма можа эфектыўна апрацоўваць запыты, першапачатковае індэксаванне і ўбудаванне новых часопісаў з'яўляюцца вылічальнымі затратамі. Штодня мы апрацоўваем каля 800 000 новых радкоў журнала, і для падтрымання актуальнасці індэкса патрэбна спецыяльная інфраструктура. Для невялікіх каманд разлік выдаткаў і выгод можа не спрыяць гэтаму падыходу - прынамсі, пакуль. Паколькі кошт мадэлі працягвае падаць (яны ўпалі прыкладна на 90% за апошнія 18 месяцаў для эквівалентных магчымасцей), эканоміка будзе змяняцца.

Ёсць таксама пытанне бяспекі. Журналы CI могуць утрымліваць сакрэты — ключы API, радкі злучэння, унутраныя URL-адрасы — нягледзячы на ​​ўсе намаганні па іх ачыстцы. Адпраўка гэтых даных знешнім API LLM стварае рызыку. Мы змякчаем гэта з дапамогай лакальнага канвеера ачысткі і запуску высновы на мадэлях, размешчаных на ўласным хостынгу для канфідэнцыйных рэпазітарыяў, але гэта ўскладняе і дадае выдаткаў. Каманды павінны старанна ацаніць сваю мадэль пагроз, перш чым укараняць што-небудзь падобнае.

Пачатак працы без тэрабайтаў

Вам не патрэбны вялікі набор даных або спецыяльная група інжынераў ML, каб пачаць здабываць каштоўнасць з вашых журналаў CI. Вось прагматычная адпраўная кропка, якую можа рэалізаваць любая каманда з некалькімі сотнямі зборак у тыдзень:

  • Пачніце з класіфікацыі няўдач. Экспартуйце журналы няўдалых зборак за апошнія 90 дзён. Выкарыстоўвайце любы API LLM, каб класіфікаваць кожную няўдачу па катэгорыях. Нават простая таксанамія (infra супраць кода супраць канфігурацыі супраць шматкоў) дае неадкладную каштоўнасць для расстаноўкі прыярытэтаў.
  • Адсочвайце тэндэнцыі працягласці зборкі. Прааналізуйце пазнакі часу з вашых журналаў, каб стварыць часовы шэраг працягласці зборкі для кожнага этапу канвеера. Падайце анамаліі ў LLM з навакольным кантэкстам часопіса і запытайце гіпотэзы аб першапрычыне.
  • Аўтаматызуйце "відавочныя" пытанні. Наладзьце перахоп пасля збою, які адпраўляе апошнія 500 радкоў няўдалай зборкі LLM з падказкай: "Абагульніце гэты збой CI адным сказам і прапануйце найбольш верагоднае выпраўленне". Толькі гэта дазваляе зэканоміць 5-10 хвілін на няўдачу для кожнага інжынера ў камандзе.
  • Стварыце архіў з магчымасцю пошуку. Выкарыстоўвайце ўбудовы, каб зрабіць вашу гісторыю часопіса даступнай для запыту на натуральнай мове. Такія інструменты, як LangChain і LlamaIndex, робяць гэта надзіва даступным нават для каманд без вопыту ML.

Галоўнае - пачаць з малога, пераканацца, што разуменне дакладнае, і паступова пашыраць. Экасістэма інструментаў для такога аналізу хутка развіваецца, і тое, што патрабавала спецыяльнай інфраструктуры год таму, становіцца ўсё больш даступным у выглядзе гатовых кампанентаў.

Будучыня за аператыўнай разведкай

Тое, пра што мы насамрэч гаворым, - гэта не проста аналіз часопісаў - гэта фундаментальны зрух у бок аператыўнай разведкі. Той жа падыход, які працуе для часопісаў CI, прымяняецца да білетаў у службу падтрымкі кліентаў, даных канвеера продажаў, фінансавых транзакцый і працоўных працэсаў. Агульным з'яўляецца тое, што арганізацыі ствараюць велізарныя аб'ёмы паўструктураваных тэкставых даных, якія ўтрымліваюць дзейсныя шаблоны, а LLM унікальна падыходзяць для пошуку гэтых шаблонаў.

Вось чаму платформы, якія цэнтралізуюць бізнес-аперацыі, маюць структурную перавагу. Калі вашы даныя CRM, кіраванне праектамі, выстаўленне рахункаў, кадравая дакументацыя і аналітыка знаходзяцца ў адной сістэме — як гэта адбываецца ў камандах, якія выкарыстоўваюць інтэграваную модульную архітэктуру Mewayz — патэнцыял для міждаменнага інтэлекту павялічваецца. Шаблон у вашых журналах CI можа карэляваць з адтокам кліентаў. Усплёск колькасці зваротаў у службу падтрымкі можа прадказаць збой разгортвання. Гэтыя злучэнні становяцца бачнымі, толькі калі даныя знаходзяцца ў падключаных сістэмах, а не ў ізаляваных сістэмах.

Каманды, якія будуць квітнець ў наступнае дзесяцігоддзе, не абавязкова маюць найбольшую колькасць інжынераў або самыя вялікія бюджэты. Гэта тыя, хто вучыцца слухаць свае ўласныя дадзеныя - у тым ліку тэрабайты іх, якія яны выкідваюць. Вашы журналы CI размаўляюць. Пытанне ў тым, ці гатовыя вы пачуць тое, што яны скажуць.

Часта задаюць пытанні

Ці могуць LLM сапраўды знайсці карысныя шаблоны ў журналах CI?

Абавязкова. Вялікія моўныя мадэлі выдатна спраўляюцца з ідэнтыфікацыяй паўтаральных шаблонаў у масіўным неструктураваным тэксце. Пры накіраванні на тэрабайты часопісаў CI яны могуць выявіць карэляцыі збояў, нестабільныя сігнатуры тэстаў і канфлікты залежнасцей, якія інжынеры-людзі ніколі б не выявілі ўручную. Галоўнае - правільна структураваць канвеер прыёму, каб мадэль атрымлівала належным чынам разбітыя на кавалкі кантэкстуальна насычаныя сегменты журнала, а не неапрацаваны шум.

Якія тыпы збояў CI можна прадбачыць з дапамогай аналізу часопісаў?

Аналіз часопіса, які кіруецца LLM, можа прадказаць тайм-аўты, звязаныя з інфраструктурай, перыядычныя збоі ў вырашэнні залежнасцей, збоі зборкі, звязаныя з памяццю, і нестабільныя тэсты, выкліканыя пэўнымі шляхамі кода. Ён таксама вызначае павольныя рэгрэсіі, калі час зборкі паступова павялічваецца на працягу некалькіх тыдняў. Каманды, якія выкарыстоўваюць гэты падыход, звычайна ўлоўліваюць каскадныя схемы адмоваў за два-тры спрынты, перш чым яны стануць блакаваць інцыдэнты ў вытворчых разгортваннях.

Колькі дадзеных часопіса CI вам трэба, каб аналіз стаў каштоўным?

Значныя заканамернасці звычайна ўзнікаюць пасля аналізу бесперапыннай гісторыі канвеера ад 30 да 90 дзён у некалькіх галінах. Меншыя наборы даных даюць інфармацыю на павярхоўным узроўні, але сапраўдная каштоўнасць прыходзіць ад перакрыжаваных спасылак на тысячы зборак. Для каманд, якія кіруюць складанымі працоўнымі працэсамі разам са сваімі канвеерамі CI, такія платформы, як Mewayz, прапануюць 207 інтэграваных модуляў па кошце ад 19 долараў у месяц для цэнтралізацыі аперацыйных даных на app.mewayz.com.

Ці з'яўляецца падача журналаў CI LLM рызыкай для бяспекі?

Гэта можа быць пры неасцярожным абыходжанні. Журналы CI часта ўтрымліваюць зменныя асяроддзя, ключы API, унутраныя URL-адрасы і дэталі інфраструктуры. Перш чым апрацоўваць журналы праз любы LLM, вы павінны ўкараніць надзейныя канвееры рэдагавання, якія выдаляюць сакрэты, уліковыя дадзеныя і інфармацыю, якая дазваляе ідэнтыфікаваць асобу. Разгортванне мадэлі на ўласным хостынгу або на месцы значна зніжае ўздзеянне ў параўнанні з адпраўкай неапрацаваных журналаў у канчатковыя кропкі вываду на аснове воблака іншых вытворцаў.