Проактивные агенты искусственного интеллекта могут помочь командам разработчиков при переходе от устаревших систем, позволив людям сосредоточиться на разработке стратегии и создании инновационных продуктов, пишет на портале The New Stack Боб Стивенс, вице-президент GitLab.
Несмотря на стремительный технологический прогресс, многие крупные корпоративные организации по-прежнему полагаются на устаревшие ИТ-системы, служившие им десятилетиями. Такие системы могут страдать из-за увеличения числа уязвимостей и ошибок в системе безопасности и мешать командам разработчиков выпускать ПО в установленные сроки.
Однако модернизация ИТ может быть процессом, требующим много времени и ресурсов. Хотя многие организации понимают долгосрочную отдачу от модернизации, обосновать краткосрочные инвестиции бывает непросто, поскольку могут пройти годы, прежде чем они увидят отдачу.
Языки программирования, в которых отсутствует ряд функций или ограничений, предотвращающих ошибки, связанные с доступом к памяти (memory-unsafe languages), глубоко интегрированы в крупные системы, и организации уже сталкивались с возникающими в результате этого уязвимостями. В реальности, 70% уязвимостей могут быть связаны с устаревшими системами и языками, не защищающими доступ к память. Устаревший код может быть трудно расшифровать и обновить до современного языка или структуры приложений, защищающих доступ к памяти. Разработчикам также требуется опыт и глубокое понимание нескольких языков, чтобы перевести код на современные языки программирования.
Внедрение проактивных агентов ИИ может помочь командам разработчиков в их усилиях по модернизации, позволив им сосредоточиться на разработке стратегии и создании инновационных продуктов для клиентов. Организации могут внедрять ИИ в свои усилия по модернизации тремя ключевыми способами: для разъяснения старых языков программирования, для помощи в разработке кода с нуля и для ускорения устранения уязвимостей.
Объяснение и обновление устаревшего кода
Традиционные методы рефакторинга включают в себя встроенный рефакторинг, который реструктурирует устаревшие элементы кода, и абстрагирование, которое удаляет дублирующийся код. Но эти традиционные подходы требуют много времени, квалифицированных разработчиков, знакомых с устаревшими языками, и тщательного тестирования для обеспечения их эффективности.
Команда молодых разработчиков вряд ли обладает необходимым уровнем понимания устаревших языков, используемых в существующих кодовых базах, и контекста их использования. Это делает расшифровку исходного кода сложной и трудоемкой задачей. Агенты ИИ могут перевести существующий код на естественный язык, а затем сгенерировать новый код на безопасном для памяти языке, чтобы разработчики могли его просмотреть и протестировать.
Затем новый код может быть запущен в облачной инфраструктуре с использованием микросервисов или других доступных вычислительных ресурсов. В результате новый код сможет выполнять те же функции более эффективно и безопасно, с дополнительной масштабируемостью и более быстрыми ответами приложений во время выполнения.
Обеспечение поддержки кодирования
Помимо обновления устаревшего кода, ИИ может применяться для разработки новых приложений на основе сценариев использования или функций. Разработчики могут использовать естественный язык для ввода необходимых данных, а ИИ — разрабатывать фреймворки и блоки кода для поддержки этих функций, даже писать значительную часть приложений с использованием современных архитектур.
ИИ также может обеспечить взаимодействие между сотрудниками-людьми. Инструменты ИИ способны обобщать комментарии при обсуждении кода, выявлять потенциальные проблемы интеграции и отслеживать соответствие требованиям, оптимизируя взаимодействие между распределенными командами разработчиков.
Поиск уязвимостей и их устранение
Безопасность еще в большей степени стала общей обязанностью специалистов по безопасности и разработчиков. Практически постоянная опасность со стороны злоумышленников значительно возросла с появлением угроз на базе ИИ, которые нацелены на известные уязвимости в устаревших приложениях и инфраструктуре. Службы безопасности должны использовать ИИ, чтобы их реакция соответствовала скорости этих атак.
ИИ может использоваться для анализа существующего кода на предмет закономерностей в поведении пользователей, анализа первопричин, автоматизации тестирования безопасности и внедрения исправлений уязвимостей. ИИ улучшает взаимодействие между группами безопасности и разработчиками, позволяя последним самостоятельно выявлять уязвимости и управлять ими, что, в свою очередь, снижает нагрузку на группы безопасности.
Такое сотрудничество между ИИ, разработчиками и подразделениями безопасности обещает обеспечить быстрое реагирование на потенциальные угрозы и сократить время реагирования на новые угрозы с нескольких дней до нескольких часов.
Шаг в будущее
Несмотря на то, что переход от обслуживания устаревшей кодовой базы к модернизации может показаться сложным, это важный шаг на пути обеспечения безопасности организации и перспективных операций. Вместо того, чтобы выделять ценные ресурсы на управление и анализ ПО, написанного с помощью устаревших языков и фреймворков, команды разработчиков могут сосредоточиться на повышении эффективности за счет разработки инновационных продуктов. Модернизированный код может помочь оптимизировать процессы, повысить эффективность и стимулировать инновации при одновременном снижении затрат.
Модернизируя наши устаревшие кодовые базы, мы можем устранить целый класс уязвимостей и повысить безопасность во всей технологической экосистеме в целом. При этом ИИ будет служить как ускорителем, так и защитником.