Добрый вечер.
Извиняюсь за длинный текст, но очень нужна Ваша помощь по Data Science. Я DevOps engineer, который никогда не работал с Big Data, Data Science и Machine learning, но впереди у меня написание master's thesis в университете и хотел бы взять что-то интересное из того, с чем никогда не сталкивался. И чтобы как-то совместить мои знания и узнать что-то новое, решил сделать проект, включающий в себя DevOps + Infrastructure + Machine Learning.
В комании, где я работаю, у нас используется CI/CD в полноценном её виде: deployment в live environment происходит до 100 раз в день ежедневно. Во время деплоймента запускается множество Jenkins Job, которые билдят docker image, прогоняют тесты, push'ат всё в гитхаб, деплоят в production и так далее. Проблема в том, что деплойменты периодически падают на каком-нибудь этапе, а анализ поломки занимает много времени.
Я хочу написать сервис, который будет собирать информацию с упавших jenkins job, парсить из них логи и анализировать какие error message's чаще всего встречаются. Затем этот сервис будет автоматически строить regex правила на основании этих error message'ей (например, есть regex: "^(?=.*npm ERR!).*$)" и в логах будет совпадение по этому regex'у. Тогда мы можем сказать, что билд упал, потому что были проблемы с NPM'ом). Автоматически сгенерированные regex rule'ы, будет изучать инженер и категоризовать их (например, раз в неделю). В итоге у нас появится система, которая автоматически генерирует причины падений и возможно в будущем можно будет автоматизировать категоризацию этих regex rule' ов.
Вопрос: насколько это вообще глупая затея? И имеет ли этот проект хоть какую-то связь с machine learing? Если нет, то что можно было бы добавить, чтобы поработать с machine learning. Пока что все выглядит логично и выполнимо с моей точки зрения:
1. Собрать кучу jenkins job, которые имеют failed status (думаю, что надо не меньше 1000 таких логов)
2. Спарсить из них все логи
3. Проанализировать какие error message встречаются чаще всего
4. Автоматически сгенерировать regex правила
5. Категоризировать правила
6. Сделать voting систему, чтобы можно было поставить +1 или -1, когда система сама проставила причину поломки, чтобы создать рейтинг ошибок и насколько они соответствуют действительности
Буду очень благодарен любой помощи!