Это гостевой блог, автор: Энди Манн, главный специалист по технологиям, Splunk при участии: Джеффа Спенсера, старшего инженера, Splunk

Существует мощная синергия между DevOps и машинным обучением (ML) и связанными с ними возможностями, такими как прогнозная аналитика, аналитика ИТ-операций (ITOA), алгоритмические ИТ-операции (AIOps) и искусственный интеллект (AI).

Концептуально ML представляет собой кодификацию и ускорение культуры непрерывного обучения Джина Кима. С помощью машинного обучения команды DevOps могут добывать огромные сложные наборы данных, обнаруживать закономерности и антипаттерны, открывать новые идеи, повторять и уточнять запросы и непрерывно повторять - и все это со компьютерной скоростью.

Точно так же ML во многих отношениях является следующим поколением автоматизации, основанным на предписании Джона Уиллиса и Дэймона Эдвардса для CAMS. Благодаря автоматизации DevOps обеспечивает гораздо более быстрый SDLC, но такой, который слишком непрозрачен, распределен, динамичен и недолговечен для обычного человеческого понимания. Но, как и автоматизация, ML уникальным образом обрабатывает скорость, объем и разнообразие данных, генерируемых новыми процессами доставки и следующего поколения компонуемых, атомизируемых и масштабируемых приложений.

На практике некоторые ключевые примеры применения машинного обучения в DevOps включают:

Отслеживание доставки приложений

Данные об активности из инструментов DevOps (таких как Jira, Git, Jenkins, SonarQube, Puppet, Ansible и т. Д.) Обеспечивают видимость процесса доставки. Применение машинного обучения может выявить аномалии в этих данных - большие объемы кода, длительное время сборки, медленные темпы выпуска, поздние проверки кода - для выявления многих отходов разработки программного обеспечения, включая позолоту, частичную работу, неэффективность. ресурсы, чрезмерное переключение задач или замедление процесса.

Обеспечение качества приложений

Анализируя выходные данные инструментов тестирования, машинное обучение может интеллектуально просматривать результаты контроля качества, обнаруживать новые ошибки и эффективно создавать библиотеку тестовых шаблонов на основе обнаружения. Это машинное понимание «заведомо исправного выпуска» помогает обеспечить всестороннее тестирование каждого выпуска, даже на наличие новых дефектов, повышая качество поставляемых приложений.

Обеспечение доставки приложений

Паттерны поведения пользователей могут быть уникальны, как отпечатки пальцев. Применение машинного обучения к поведению пользователей Dev и Ops может помочь выявить аномалии, которые могут представлять собой вредоносную активность. Например, аномальные шаблоны доступа к конфиденциальным репозиториям, процедурам автоматизации, действиям по развертыванию, выполнению тестов, инициализации системы и т. Д. Могут быстро выявить пользователей, использующих `` заведомо плохие '' шаблоны - намеренно или случайно - например, кодирование лазейки, развертывание несанкционированного кода. , или кража интеллектуальной собственности.

Управление производством

Анализ приложения в производственной среде - это то место, где машинное обучение действительно само по себе, из-за большего объема данных, количества пользователей, транзакций и т. Д., Которые происходят в продукте, по сравнению с разработкой или тестированием. Команды DevOps могут использовать машинное обучение для анализа «нормальных» шаблонов - объемов пользователей, использования ресурсов, пропускной способности транзакций и т. Д. - и впоследствии для обнаружения «аномальных» шаблонов (например, условий DDOS, утечек памяти, состояния гонки и т. Д.).

Управление штормами предупреждений

Простое, практичное и эффективное использование машинного обучения - это управление огромным потоком предупреждений, возникающих в производственных системах. Это может быть так же просто, как оповещения, связанные с группировкой ML (например, по общему идентификатору транзакции, общему набору серверов или общей подсети). Или он может быть более сложным, например, системы «обучения» с течением времени для распознавания «заведомо хороших» и «заведомо плохих» предупреждений. Это позволяет фильтровать, чтобы уменьшить количество штормов предупреждений и усталости от предупреждений.

Устранение неполадок и анализ сортировки

Это еще одна область, в которой современные технологии машинного обучения блистают. ML может автоматически обнаруживать и даже начать интеллектуальную сортировку «известных проблем» и даже некоторых неизвестных. Например, инструменты машинного обучения могут обнаруживать аномалии в «нормальной» обработке, а затем дополнительно анализировать журналы выпуска, чтобы сопоставить эту проблему с новой конфигурацией или развертыванием. Другие инструменты автоматизации могут использовать ML для оповещения об операциях, открытия тикета (или окна чата) и назначения его нужному ресурсу. Со временем ML может даже предложить лучшее решение!

Предотвращение производственных сбоев

Машинное обучение может выйти далеко за рамки простого планирования емкости в предотвращении сбоев. ML может отображать известные хорошие шаблоны использования, чтобы спрогнозировать, например, лучшую конфигурацию для желаемого уровня производительности; сколько клиентов будут использовать новую функцию; требования к инфраструктуре для нового продвижения; или как сбой повлияет на взаимодействие с клиентами. ML видит в других случаях непрозрачные «ранние индикаторы» в системах и приложениях, позволяя Ops начать исправление или избежать проблем, намного быстрее, чем обычно.

Анализ влияния на бизнес

Понимание влияния выпуска кода на бизнес-цели имеет решающее значение для успеха в DevOps. Синтезируя и анализируя реальные показатели пользователей, системы машинного обучения могут обнаруживать хорошие и плохие шаблоны, чтобы предоставить "систему раннего предупреждения" как кодировщикам, так и бизнес-командам, когда приложения испытывают проблемы (например, посредством раннего сообщения об увеличении количества брошенных тележек или сокращении пути покупателя); или быть чрезвычайно успешными (например, благодаря раннему обнаружению высоких регистраций пользователей или рейтинга кликов).

Конечно, для ML еще нет простой кнопки. Ничто не заменит интеллект, опыт, творчество и упорный труд. Но мы уже видим, как многое из этого применяется сегодня, и по мере того, как мы продолжаем расширять границы, небо - предел.