ИИ-автоматизация обладает потенциалом для исправления ошибок в логике кода, причем в автоматическом режиме, что приведет к экономии миллионов и даже миллиардов долларов. Опрошенные порталом InformationWeek эксперты рассказывают о том, где автоматизация и ИИ уже проявили себя в кодировании, и где они не смогут заменить людей.

Все больше организаций расширяют использование автоматизации, и DevOps не является исключением. На самом деле, команды разработчиков ПО уже много лет автоматизируют различные типы тестов. В настоящее время она проникает и в другие части жизненного цикла ПО, о чем свидетельствуют автоматизированные на высоком уровне от начала и до конца конвейеры CI/CD. В наши дни речь идет не только о более частом и масштабном тестировании, но и о том, чтобы одновременно ускорить доставку ценности, улучшить качество продукта и повысить эффективность команды DevOps.

«На начальном этапе ИИ будет дополнять разработчиков, но со временем заменит некоторых из них. Машинное обучение/глубокое обучение/ИИ позволяют автоматизировать повторяющиеся задачи, отыскивать и исправлять ошибки, а также значительно сокращать время, необходимое для реализации жизнеспособного проекта, — говорит Роб Эндерле, главный аналитик исследовательской компании Enderle Group. — Эти изменения значительно повысят производительность, намного сократив потребности в разработчиках для конкретных проектов».

Между тем, автоматизировать задачи стало проще, чем раньше. Хотя написание сценариев автоматизации по-прежнему востребовано, сейчас доступно больше инструментов, которые этого не требуют. Применительно к тестированию ПО даже устоялся термин: «автоматизация тестирования без написания кода» (codeless test automation).

В 2017 г. Microsoft представила IntelliSense — функцию МО в Visual Studio, которая обеспечивает возможность «автоматического заполнения». Она подобно поиску Google автоматически определяет, что набирает программист. Недавно компания представила новую опцию low-code с открытым кодом Power Fx, которая основана на Excel. Ее цель — дать возможность гражданским разработчикам создавать приложения с использованием естественного языка, что даже проще, чем с помощью визуального программирования.

В свою очередь Github и OpenAI запустили предварительную версию Copilot, инструмента ИИ, который автоматически заполняет код. «Copilot может существенно сократить объем поиска в Google относительно функции „как разгруппировать JSON“. Сайты вроде Stack Overflow будут нужны не так часто, поскольку IDE вроде Visual Studio Code будут автоматически предлагать грамотный код, — говорит Джозеф Спурриер, CTO компании Cloudtamer.io. — МО может стать эквивалентом турбокомпрессора для команд разработчиков. У него имеется потенциал и для исправления ошибок в логике написанного кода, причем в автоматическом режиме».

Таким образом, ИИ не является экзистенциальной угрозой для разработчиков, по крайней мере, пока. Но нужно иметь в виду, что завтрашние возможности ИИ не будут такими же, как сегодняшние. Функции, выполняемые разработчиками и ИИ, с течением времени будет меняться. «Требования к навыкам работы на конвейере DevOps настолько высоки, что я не вижу повода для беспокойства у людей. Автоматизация DevOps — это лучший пример комбинации „человек плюс машина“, — считает Раджендра Прасад, руководитель направления глобальной автоматизации Accenture. — Кто-то должен разбираться во всех частях головоломки».

Ценность автоматизации

Что автоматизируется на предприятии в целом и в DevOps в частности? Это повторяющиеся, рутинные действия или действия, требующие такой скорости и масштаба, с которыми человек не может справиться самостоятельно, по крайней мере, экономически эффективно. Когда речь идет о разработке ПО, перед автоматизацией стоит двойная цель — увеличить скорость выпуска и качество кода. Однако ИИ не может автоматически создать приложение из ничего, особенно без контекста. «Вы можете создавать данные, алгоритмы или функциональность, но в какой-то момент вам нужно понимать, каковы потребности пользователя или правильные функциональные потребности, — утверждает Прасад. — И эти функциональные ожидания постоянно меняются».

Здесь, как и в любом другом сценарии применения в человеческом контексте, ИИ — это всего лишь вспомогательное средство. Разделив то, в чем хорош ИИ (распознавание образов), и то, в чем хорош человек (творческое решение проблем), предприятия получат лучшее из обоих миров.

Стратегическое использование автоматизации

По словам Игоря Бергмана, вице-президента Lenovo по ПО и облачным технологиям для ПК и интеллектуальных устройств, его компания намерена извлекать больше ценности из ИИ. «При создании ПО 80% времени уходит на разработку общих и базовых сервисов и функций, инфраструктуры и облака, но этот стек практически не приносит ценности для конечного пользователя. На расширенные функции и инновации уходит около 20% времени. Мы пытаемся с помощью ИИ/МО-автоматизации изменить эту пропорцию на 20/80, чтобы разработчики могли максимально сосредоточиться на инновациях и расширенных функциях», — поясняет он.

ИИ уже делает за разработчиков Lenovo настройку и поддержку среды, исходя из контекста их поведения, проекта, над которым они работают, компонентов и требований к инфраструктуре. Код постоянно обновляется, моделирует среду, а затем сравнивает смоделированную среду с рабочей и проактивно решает проблемы по мере их возникновения.

«Мы так много денег тратим впустую на инфраструктуру, которую мы не используем в виртуализированной или в облачной среде, — сетует Бергман. — Если использовать моделирование развертывания/свертывания, сколько времени это сэкономит? То же касается безопасности. ИИ-автоматизация открывает прогностические и проактивные возможности в отношении аномалий, атак и триггеров, автоматически закрывая бэкдоры, порты и т. п.».

В итоге

ИИ и МО позволяют командам DevOps экономить время и деньги, в которых они отчаянно нуждаются. Уровень развития технологий будет повышаться, а это значит, что ИИ будет брать на себя все больше задач, традиционно выполняемых разработчиками. В обозримом будущем ИИ освободит разработчикам время, которое они смогут использовать для более творческой работы, чем кодирование и поиск багов.