В последнее время много внимания уделялось использованию генеративного ИИ (GenAI) для создания или модификации программного кода. Теперь пришло время взглянуть на то, как ИИ может помочь ИТ-специалистам и менеджерам в других областях, пишет на портале ZDNet независимый аналитик Джо Маккендрик.
Поможет ли ИИ перевести усилия в области DevOps на гибкий (agile) уровень? В отрасли существует мнение, что ИИ может значительно ускорить не только создание программного кода, но и все последующее, включая спецификации, документацию, тестирование, развертывание и многое другое.
ИИ уже несколько лет используется в оперативной и прогностической форме, работая за кулисами для автоматизации рабочих процессов и составления расписаний. Теперь потенциал GenAI начинают использовать и ИТ-руководители и специалисты.
Согласно отчету Gartner «How Platform Engineering Teams Can Augment DevOps With AI», подготовленному группой аналитиков под руководством Манджуната Бхата, в течение следующих трех лет доля команд, занимающихся платформенным инжинирингом, которые используют ИИ для ускорения жизненного цикла разработки ПО, увеличится с 5 до 40%.
Во всей ИТ-индустрии наблюдается заметный оптимизм по поводу потенциального толчка, который ИИ дает методологии DevOps и связанным с ней agile-практикам. «Объединение областей DevOps и ИИ может быть взаимодополняющим, улучшающим все этапы жизненного цикла разработки ПО и позволяющим выводить его на рынок быстрее, надежнее и эффективнее», — говорит Билли Дикерсон, главный инженер-программист SAS.
Вокруг GenAI и DevOps ведется активная работа. Почти все (97%) из 408 технологических менеджеров, принявших участие в опросе «2024 Global State of IT Automation», проведенном компанией Stonebranch, специализирующейся на автоматизации, заявили, что они «заинтересованы во внедрении GenAI в свои программы автоматизации». Эти специалисты «рассматривают GenAI как важнейший инструмент для объединения более разнообразных инструментов и расширения возможностей более широкого круга пользователей», отмечают авторы исследования.
ИИ способствует развитию DevOps, но DevOps также способствует развитию ИИ-приложений, показал опрос Stonebranch. По меньшей мере 72% респондентов используют конвейеры машинного обучения для реализации своих инициатив в области GenAI.
Хотя использованию GenAI для создания или модификации программного кода уделяется много внимания, это лишь часть процесса разработки. Пришло время обратить внимание на то, как ИИ может помочь ИТ-специалистам и руководителям в других областях.
«На написание кода разработчики в среднем тратят от 10 до 25% своего времени, — пишут авторы отчета Gartner. — Остальное время уходит на чтение спецификаций, написание документации, проведение обзоров кода, участие в совещаниях, помощь коллегам, отладку уже существующего кода, сотрудничество с другими командами, создание сред, устранение неполадок в производстве, изучение технических и бизнес-концепций — и это далеко не полный список».
Интеграция ИИ «во все фазы цикла обратной связи DevOps — планирование, проверка и разработка кода, сборка, тестирование, развертывание, мониторинг, измерение — повышает уровень сотрудничества в командах и положительно сказывается на результатах», — отмечает Дикерсон. По его словам, благодаря планированию ИИ может сделать процесс управления проектами более эффективным, автоматически генерируя требования из запросов пользователей, обнаруживая несовпадение сроков и даже выявляя неполные требования«.
ИИ также может справиться с трудоемкими процессами проверки и разработки кода. «ИИ может не только выдавать разработчикам предложения по автогенерации шаблонного кода, но и участвовать в процессе рецензирования кода. Такой подход усиливает взаимодействие между командами и может привести к росту числа инноваций, ускорению выхода на рынок и лучшему согласованию с бизнес-целями», — считает Дикерсон.
Тем не менее, технологическим руководителям и специалистам следует проявлять осторожность и не заходить слишком далеко в использовании DevOps и других agile-практик на базе ИИ. «Чрезмерная зависимость создает риски, — говорит Ян Фергюсон, старший директор компании SiFive, ранее занимавший должность вице-президента по маркетингу Lynx Software Technologies. — Без понимания того, как автономная ИИ-платформа пришла к тому или иному решению, мы теряем подотчетность. Без прозрачности рассуждений ИИ мы рискуем слепо принять результат, не имея возможности подвергнуть его сомнению или проверить. Нас ждет будущее, в котором очень ограниченный круг компаний сможет создавать сложные системы, или же мы увидим снижение качества систем».
Он призывает развивать «динамику сотрудничества между людьми и ИИ в DevOps. ИИ может справиться с кодированием, в то время как люди должны определять тщательный набор требований к системе и ее поведению».
Дикерсон также советует проявлять осторожность при внедрении DevOps на базе ИИ: «Поскольку ИИ может автоматизировать многие задачи в контуре обратной связи DevOps, необходимо обеспечить человеческий надзор, чтобы убедиться, что ИИ принимает правильные автоматизированные решения. Лучшей практикой является одобрение человеком каждого важного бизнес-решения».
Авторы отчета Gartner заявляют, что применение ИИ на каком-то одном из этапов жизненного цикла разработки ПО «может привести не к экономии, а к перераспределению усилий, создав ложное ощущение. Например, экономия времени при кодировании может быть компенсирована увеличением времени на проверку и отладку кода».
Тем не менее, есть причины для радости по поводу влияния ИИ на DevOps. Факты свидетельствуют о том, что ИИ можно применять для помощи или ускорения более поздних этапов процесса DevOps. Например, когда речь идет о стадии сборки и тестирования ПО, «ИИ может оценивать входы и выходы процесса сборки и искать закономерности сбоев, чтобы помочь оптимизировать время восстановления», — говорит Дикерсон.
Кроме того, по его словам, благодаря своей способности анализировать огромные объемы данных и делать прогнозы, ИИ также может помочь в анализе результатов тестирования. Это позволит выявлять закономерности наиболее результативных и ненадежных тестов, что поможет оптимизировать процесс тестирования.
На этапе развертывания «ИИ может автоматизировать подготовку, настройку и управление общими инфраструктурными ресурсами. В свою очередь, это может привести к запуску развертываний, использующих эти автоматически сгенерированные артефакты, что позволит инженерам тратить больше времени на сложные развертывания», — говорит Дикерсон.
Что касается мониторинга и измерений, то «поскольку корпоративные развертывания могут генерировать большое количество данных, командам DevOps бывает сложно переварить необходимую информацию для решения возникающих проблем, — отмечает Дикерсон. — Чтобы помочь в этой работе, ИИ может анализировать метрики и журналы в режиме реального времени, что позволит гораздо раньше обнаруживать проблемы и быстрее их решать. Анализируя непрерывные данные и закономерности, ИИ может прогнозировать потенциальные узкие места, выявлять области улучшения и помогать в оптимизации всех этапов жизненного цикла DevOps».
Фергюсон полагает, что при условии человеческого контроля «ИИ может усилить такие подходы, как DevOps и Agile». По его словам, эффективное сочетание ИИ и человека на протяжении всего жизненного цикла ПО может повысить производительность и инновационность. «Однако мы должны активно формировать это будущее с помощью прозрачности, укрепления доверия, реорганизации рабочих процессов и обучения навыкам», — отмечает он.