Дадохме терабайти 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 log данни в голям езиков модел – и това, което открихме, промени изцяло начина ни на мислене за DevOps.

Защо CI регистрационните файлове са най-недостатъчно използваните данни в софтуерното инженерство

Помислете за чистия обем. Средно голям инженерен екип, изпълняващ 200 компилации на ден в множество хранилища, генерира приблизително 2-4 GB необработени регистрационни данни дневно. За една година това е над един терабайт структуриран и полуструктуриран текст, който улавя всяка компилация, всяко изпълнение на тестов пакет, всяка стъпка на внедряване и всеки режим на повреда, с който системата ви е срещала. Това е пълен археологически запис на производителността на вашата инженерна организация — и почти никой не го чете.

Проблемът не е, че данните нямат стойност. Това е, че съотношението сигнал/шум е брутално. Типично изпълнение на CI произвежда хиляди редове изход и може би 3-5 от тези редове съдържат полезна информация. Инженерите се научават да сканират за червен текст, grep за „FAILED“ и да продължат напред. Но моделите, които имат най-голямо значение – нестабилният тест, който се проваля всеки вторник, зависимостта, която добавя 40 секунди към всяка компилация, изтичането на памет, което се появява само когато три конкретни услуги работят едновременно – тези модели са невидими на ниво индивидуален журнал. Те се появяват само в мащаб.

Традиционните инструменти за анализ на регистрационни файлове като ELK stacks и Datadog могат да агрегират показатели и съвпадения на повърхностни ключови думи, но се борят със семантичната сложност на CI изхода. Съобщение за неуспешна компилация, което гласи „връзката е отказана на порт 5432“, и такова, което гласи „ФАТАЛНО: неуспешно удостоверяване на паролата за потребителско „разгръщане““ са грешки, свързани с базата данни, но имат напълно различни основни причини и решения. Разбирането на тази разлика изисква онзи вид контекстуално разсъждение, което доскоро само хората можеха да предоставят.

Експериментът: Подаване на 3,2 терабайта история на компилации към LLM

Настройката беше проста като концепция и кошмарна като изпълнение. Събрахме 14-месечни CI регистрационни файлове от платформа, обслужваща над 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 runner, за да се предвидят скокове в понеделник.
  5. Флагът на компилатора, който никой не е задал. 67% от компилациите на C++ се изпълняват без активирана инкрементална компилация, добавяйки средно 3,8 минути на компилация. Флагът е документиран в ръководството за въвеждане, но никога не е добавен към споделения шаблон за конфигурация на CI.
<блоков цитат>

„Най-скъпите бъгове не са тези, които сриват приложението ви. Те са тези, които тихо крадат 30 секунди от всяка компилация, всеки ден, в продължение на години – докато някой най-накрая зададе правилния въпрос за правилния набор от данни.“

Изграждане на практически слой за CI разузнаване

Експериментът ни убеди, че поддържаният от 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 дни на неуспешни регистрационни файлове за изграждане. Използвайте всеки LLM API, за да класифицирате всеки неуспех в категории. Дори една проста таксономия (infra срещу код срещу config срещу flake) предоставя незабавна стойност за приоритизиране.
  • Проследявайте тенденциите в продължителността на изграждането. Анализирайте времевите клейма от вашите регистрационни файлове, за да създадете времева поредица от продължителност на изграждането на етап на конвейер. Подайте аномалии на LLM със заобикалящия контекст на регистрационния файл и поискайте хипотези за първопричината.
  • Автоматизирайте „очевидните“ въпроси. Настройте кука след грешка, която изпраща последните 500 реда от неуспешна компилация до LLM с подканата: „Обобщете тази грешка на CI в едно изречение и предложете най-вероятната корекция.“ Само това спестява 5-10 минути на повреда за всеки инженер в екипа.
  • Създайте архив с възможност за търсене. Използвайте вграждания, за да направите хронологията на регистрационния си файл достъпна за заявки по естествен език. Инструменти като LangChain и LlamaIndex правят това изненадващо достъпно дори за екипи без опит в машинното обучение.

Ключът е да започнете с малко, да проверите дали прозренията са точни и да разширявате постепенно. Екосистемата с инструменти за този вид анализ се развива бързо и това, което изискваше персонализирана инфраструктура преди година, е все по-достъпно като готови компоненти.

Бъдещето е оперативното разузнаване

Това, за което всъщност говорим, не е просто анализ на регистрационни файлове – това е фундаментална промяна към оперативна интелигентност. Същият подход, който работи за CI регистрационните файлове, се прилага за билети за поддръжка на клиенти, данни за канали за продажби, финансови транзакции и оперативни работни потоци. Общата нишка е, че организациите генерират огромни количества полуструктурирани текстови данни, които съдържат действащи модели, а LLM са уникално подходящи за намиране на тези модели.

Ето защо платформите, които централизират бизнес операциите, имат структурно предимство. Когато вашите CRM данни, управление на проекти, фактуриране, HR записи и анализи живеят в една система — както се случва за екипи, използващи интегрираната модулна архитектура на Mewayz — потенциалът за междудомейн интелигентност се умножава. Модел във вашите CI регистрационни файлове може да корелира с оттеглянето на клиентите. Скок в билетите за поддръжка може да предскаже неуспешно внедряване. Тези връзки стават видими само когато данните живеят в свързани системи, а не в изолирани силози.

Екипите, които ще процъфтяват през следващото десетилетие, не са непременно тези с най-много инженери или най-големи бюджети. Те са тези, които се научават да слушат собствените си данни - включително терабайтите от тях, които са изхвърлили. Вашите CI регистрационни файлове говорят. Въпросът е дали сте готови да чуете какво имат да кажат.

Често задавани въпроси

Могат ли LLM наистина да намерят полезни модели в регистрационните файлове на CI?

Абсолютно. Големите езикови модели са отлични при идентифицирането на повтарящи се модели в масивен неструктуриран текст. Когато бъдат насочени към терабайти от CI регистрационни файлове, те могат да изведат на повърхността корелации на грешки, нестабилни тестови сигнатури и конфликти на зависимости, които човешките инженери никога не биха уловили ръчно. Ключът е правилното структуриране на тръбопровода за приемане, така че моделът да получава правилно разделени на части, контекстуално богати сегменти от регистрационни файлове, а не необработен шум.

Какви типове грешки на CI могат да бъдат предвидени с помощта на анализ на журнал?

Управляван от LLM анализ на регистрационни файлове може да предскаже свързани с инфраструктурата изчаквания, повтарящи се неуспехи при разрешаване на зависимости, сривове при компилиране, свързани с паметта, и нестабилни тестове, задействани от специфични пътеки на код. Той също така идентифицира бавно пълзящи регресии, при които времето за изграждане постепенно се увеличава със седмици. Екипите, използващи този подход, обикновено улавят каскадни модели на отказ два до три спринта, преди да започнат да блокират инциденти в производствените внедрявания.

Колко CI log данни са ви необходими, преди анализът да стане полезен?

Смислените модели обикновено се появяват след анализ на 30 до 90 дни непрекъсната история на конвейера в множество клонове. По-малките набори от данни дават прозрения на повърхностно ниво, но истинската стойност идва от кръстосано препращане на хиляди изграждания. За екипи, управляващи сложни работни потоци заедно със своите CI канали, платформи като Mewayz предлагат 207 интегрирани модула, започващи от $19/месец за централизиране на оперативни данни в app.mewayz.com.

Подаването на CI регистрационни файлове на LLM представлява ли риск за сигурността?

Възможно е, ако се борави небрежно. CI регистрационните файлове често съдържат променливи на средата, API ключове, вътрешни URL адреси и подробности за инфраструктурата. Преди да обработвате регистрационни файлове през който и да е LLM, трябва да внедрите стабилни канали за редактиране, които премахват тайни, идентификационни данни и лична информация. Самостоятелно хоствани или локални внедрявания на модели значително намаляват експозицията в сравнение с изпращането на необработени регистрационни файлове до крайни точки за изводи, базирани на облак на трети страни.