Современные технологические достижения привели к несомненному росту производственных возможностей компаний практически во всех отраслях промышленности.
Времена, когда все процессы лежали исключительно на плечах человека, уже давно прошли!
На смену приходят высокотехнологичные системы, способные упростить производственные процессы, начиная от этапа разработки и заканчивая выпуском на рынок, предоставляя конечному пользователю возможность получить незабываемые впечатления от готового продукта.
DevOps является одним из наиболее популярных технологических решений в современном мире, особенно, для расширения возможностей сотрудничества между командами и ускорения процесса запуска продукта с меньшей вероятностью сбоев и высокой скоростью восстановления данных.
Для IT-индустрии, DevOps стал отличным решением сложных задач, таких как непрерывная интеграция и поставка приложений, а также эффективное внедрение инноваций, которые, кстати говоря, тоже могут ускорить процессы в цепочке разработки программного обеспечения. И это еще не все!
На сегодняшний день существуют две наиболее передовые технологии, которые способны вывести показатели любой компании на совершенно новый уровень. Пока одни компании уже начали пользоваться их преимуществами, превосходя своих конкурентов на рынке, другие менее крупные игроки все еще охотятся на них.
Речь здесь идет об искусственном интеллекте (AI) и машинном обучении (ML)!
Неудивительно, что любая компания, работающая на базе систем AI и ML, пользуется большим уважением в digital-сообществе.
Применение статических инструментов для развертывания, настройки и мониторинга производительности приложений (APM) уже исчерпало свой потенциал и, фактически, поглощается постоянно растущими запросами рынка.
Актуальная задача сегодня — поиск креативных инструментов управления, позволяющих искусственному интеллекту упростить задачи инженеров по разработке и тестированию. Именно здесь нам и пригодятся AI и ML!
В этой статье разберем как именно интеграция с AI и ML может привести в действие/дать новый импульс DevOps, Вкратце, AI и ML помогают разработчикам, автоматизируя рутинные и повторяющиеся задачи, повышая эффективность и сводя к минимуму время, затрачиваемое командами на процесс. Перейдем к деталям.
Применение искусственного интеллекта (AI) к DevOps
Революция данных (Data revolution) является основной причиной серьезных проблем в DevOps среде.
Сканирование огромных объемов данных в поисках возникших неполадок на ежедневной основе очень трудо- и времязатратно.
Что у человека займет часы безостановочной работы — искусственный интеллект может выполнить мгновенно (будь то вычисления, анализ или принятие сиюминутных решений).
С эволюцией DevOps, две абсолютно разные команды получили возможность сотрудничать на единой платформе, что повлекло за собой необходимость наличия эффективных инструментов налаживания процессов и разрешения неполадок.
AI трансформирует DevOps среду по следующим параметрам:
- Доступность данных: AI может расширить доступ к данным для команд разработчиков, которые часто сталкиваются с проблемой недостатка нужной информации в свободном доступе. Искусственный интеллект предоставляет возможность получения доступа к огромным объемам данных, выходя за рамки былых ограничений, что помогает команде владеть полным объемом упорядоченных данных для последовательного и повторного анализа.
- Автономность системы: способность адаптироваться к переменам — является одним из ключевых факторов, препятствующим развитию компаний и загоняющим в рамки. Причиной тому является недостаточная аналитика. В свою очередь, AI поменял подобный сценарий, переводя аналитические задачи с человека на автономное управление. Теперь инструменты автономного управления позволяют справиться с гораздо большим объемом задач, чем если бы мы справлялись с ними вручную.
- Управление ресурсами: расширяя масштабы использования автоматизированных сред, которые берут на себя выполнение рутинных и повторяющихся задач, AI трансформировал процессы управления ресурсами, открывая дорогу инновациям и применению новых стратегий.
- Разработка приложений: способность AI автоматизировать большое количество бизнес-процессов и расширять возможность анализа данных оказывает немалое влияние на среду DevOps. Многие компании уже начали внедрять AI и машинное обучение для достижения максимальной эффективности в процессе разработки приложений.
AI поможет вашей команде автоматически и с точностью найти решение задачи из базы данных вместо того, чтобы тратить часы на анализ огромных объемов информации. Это не только сэкономит время, но и сократит объем работы практически вдвое.
Применение машинного обучения (ML) к DevOps
В контексте AI, машинное обучение проявляется в виде анализа программ, наборов данных или алгоритмов устройства.
Приучение систем к возможностям автоматизированного обучения говорит об эффективности ML-процесса, что иными словами — переход к модели постоянного обучения и развития.
Это облегчает работу команды со сложными задачами такими, как линейные паттерны, массивные базы данных, модификация запросов и генерирование новых идей на регулярной основе со скоростью, запрашиваемой платформой.
Являясь частью технологической цепочки, ML с легкостью поможет исправить любые баги или внести необходимые изменения в общий код.
Ниже приведены примеры областей, ML-интеграция с которыми, играет ключевую роль для DevOps:
- Разработка приложения: пока такие инструменты DevOps, такие как Git или Ansible обеспечивают наглядность процесса поставки, применение к ним ML позволяет устранить неполадки, связанные с объемом кода, длительным временем сборки, задержками или медленными темпами выпуска, неправильным распределением ресурса и т.д.
- Контроль качества: помимо детального анализа результатов тестирования, ML также осуществляет подробный обзор показателей оценки качества и, на его основе, создает библиотеку тестовых шаблонов. Такое всестороннее тестирование проводится после каждого нового выпуска, что помогает повышать качество создаваемых приложений.
- Обеспечение безопасности доставки приложений — это одно из основных преимуществ, которое обеспечивается интеграцией DevOps и ML. С помощью инструментов ML можно с легкостью распознать модели поведения пользователей, что позволяет избежать аномалий в процессе доставки приложения. Доступ к подобным аномальным сценариям позволит разрешить любые неполадки сразу на нескольких уровнях: провижининг системы, автоматизация, репозитории, процесс внедрения и тестирования запуска и прочее. На данный момент кража интеллектуальной собственности и несанкционированное использование кода в процессе в процессе работы над приложением являются наиболее широко распространенными неблагоприятных паттернов.
- Работа с производственными циклами: команды разработчиков DevOps часто используют ML с целью понять и проанализировать результативность использования тех или иных ресурсов, в том числе — для выявления анти-паттернов таких, как, например, утечка памяти. Безусловное преимущество ML заключается в том, что оно отлично знакомо с процессами работы над приложениями и делает все максимально возможное, чтобы упростить их и разрешить неполадки.
- Разрешение неполадок/Работа с чрезвычайными ситуациями: здесь ключевая роль ML заключается в ее способности анализировать машинный интеллект. ML отлично справляется с производственными процессами, в особенности, с реагированием на внезапные оповещения, постоянно обучая системы выявлению повторяющихся шаблонов или некорректных предупреждений системы, тем самым отсеивая ненужное.
- Приоритизация результатов аналитики: ML имеет свой собственный метод работы с аналитикой, отдавая приоритет как уже известным вопросам, так и вовсе неизвестным. Инструменты ML помогут проработать как общие вопросы, так и связанные с логами/журналами выпуска, чтобы скоординировать/упорядочить новые развертывания.
- Раннее обнаружение: инструменты ML предоставляют командам разработчиков возможность обнаружить проблему на ранней стадии и обеспечить мгновенное время отклика, обеспечивая непрерывность и плавность бизнес-процессов. ML помогает распознать основные паттерны поведения пользователей и в дальнейшем прогнозировать их, что может проявляться, например, в анализе конфигураций с целью соответствия ожидаемому уровню производительности, скорости реакции и удержания лидирующих позиций на рынке в новых условиях. Важно постоянно быть в курсе новых факторов, влияющих на поддержание интереса будущего/нынешнего клиента.
- Бизнес-аналитика: ML помогает не только разработчикам, но, также играет ключевую роль в обеспечении удержании проекта на плаву. В то время, как DevOps делает больший акцент на разработке кода целью достижения поставленных бизнес-задач, инструменты ML работают с функционалом, базирующимся на паттернах, анализируют метрики пользователя и предупреждают команды разработчиков о возникновении каких-либо неполадок.
Помимо этого, машинное обучение может помочь с:
- Помимо этого, машинное обучение может помочь с:
- Аналитика IT-операций (ITOA)
- Прогностическая/предиктивная аналитика(PA)
- Искусственный интеллект
- Алгоритмические IT-операции (AIOps)
После обзора всех преимуществ, предлагаемых AI и ML, рассмотрим этапы внедрения AI и ML в DevOps cреду.
Перед вами 7 шагов на пути к внедрению AI и ML в DevOps среду:
- Внедрение передовых API-интерфейсов: это перевод команд разработчиков на практический опыт применения таких canned API, как AZUR, AWS и GCP, открывающих широких спектр возможностей AI и ML для программного обеспечения без необходимости самостоятельно разрабатывать новые модели работы под свои цели. Именно благодаря этому в дальнейшем, они смогут сфокусироваться на внедрении таких расширений, как преобразование голоса в текст или других продвинутых паттернов.
- Поиск аналогичных моделей: следующим шагом будет поиск аналогичных API уже с AI и ML. Благодаря этому, процесс разработки упрощается, т.к применение уже успешных моделей AI и ML будет способствовать ускорению процесса и внесению необходимых правок.
- Параллельный пайплайн: учитывая тот факт, что AI и ML находятся на стадии тестирования, важно дополнительно рассмотреть возможность запуска параллельных пайплайнов, чтобы не потерять наработки в случае сбоя или внезапных неполадок. Наилучшим вариантом решения этой проблемы будет поэтапное внедрение возможностей ML/AI в соответствии с процессом реализации проектов.
- Предварительно обученная модель (pre-trained model): проверенная и предварительно обученная модель может значительно снизить сложность внедрения возможностей ML и AI. Pre-trained model может быть полезна для распознавания поведения пользователя или поиске необходимых данных в конкретном запросе. Это предоставляет уникальные показатели, полностью соответствующие возможным сценариям поведения пользователя. Таким образом, наличие предварительно обученной модели является ключом к успешному внедрению AI/ML на начальном этапе.
- Общедоступные данные: поиск исходных данных для обучения является одной из основных задач при внедрении AI/ML. Никто на самом деле не будет видеть/не сможет воспользоваться этой информацией в своих целях. Брать ее можно быть из баз/наборов данных, находящихся в общем доступе. Это может вызывать сомнения и не соответствовать вашим требованиям/представлениям о работе с такими инструментами, но это определенно повысит жизнеспособность проекта.
- Искомая идентичность: вы определенно увидите истинный потенциал ML/AI только после запуска программного обеспечения и его завершения с высокой скоростью, качеством и производительностью в сравнении с традиционным подходом. Но очень важно знать к чему вы идете и искать модели успешного применения AI и ML, к которым вы стремитесь.
- Расширение горизонтов: в идеале разработчики должны постоянно двигаться вперед, узнавать новое и оставаться в курсе событий. Это в особой степени относится к применению AI/ML. Для этого организациям следует стимулировать команды к применению новых инструментов как можно скорее, облегчая им доступ к MI/AL и API общего назначения без дополнительных формальностей, которые обычно являются неизбежной частью внедрения новых инструментов.
Подведение итогов
В целом, AI и ML- это инструменты, появившиеся для преодоления пропасти между людьми и огромными объемами данных.
Разве не здорово иметь такой инструмент, который может предоставить вам взвешенное решение, основанное на анализе тысячи подобных в Интернете, вместо того, чтобы вы проводили сотни испытаний/экспериментов над своей мобильной средой или приложением ради одного единственного лога/log entry?
Правильное распределение человеческих ресурсов и внедрение инструментов, обеспечивающих стабильное функционирование во времена постоянного расширения объемов информации — это уникальные возможности AI и ML, которые выгодно дополнят вашу DevOps среду.
Перед нами система, способная имитировать модель поведение пользователя сразу в нескольких возможных сценариях, будь то поиск, мониторинг, устранение неполадок или взаимодействие с данными; сравнить эту модель с другими и выбрать наиболее целесообразный вариант.
Вперед! Настало время пользоваться преимуществами AI и ML и в вашей DevOps-среде!
lxsmkv
Может, все-таки, как минимум, не "любые"?
Интересен, в контексте статьи, также опыт Mozilla, где ML используется для классификации и предварительной сортировки заявок в багтрекере
https://hacks.mozilla.org/2019/04/teaching-machines-to-triage-firefox-bugs/