Применение генеративного искусственного интеллекта в модернизации приложений

Роль генеративного искусственного интеллекта в модернизации приложений

Модернизация приложений – это процесс обновления устаревших приложений, использование современных технологий и улучшение их производительности. Они могут быть адаптированы к изменяющимся бизнес-потребностям, интегрируя принципы облакоориентированных решений, таких как DevOps, инфраструктура-как-код и так далее. Обработка устаревших приложений может варьироваться от полной переписи до переноса на новый хостинг, исходя из их стоимости, критичности и целей. Известно, что наибольшие преимущества дают переписанные приложения, так как они предоставляют возможность перейти к истинно облачной модели с высокой степенью гибкости и скорости. Многие CIO/CTO неохотно вкладывают деньги из-за затрат и сроков, связанных с получением ценности, при этом удерживая баланс между высокоинвестиционными инициативами по полной переписи и низкоценными подходами переноса на новый хостинг. Поставщики услуг и поставщики инструментов пытаются занять эту нишу, создавая акселераторы, которые можно настроить для использования в предприятии и которые помогают ускорить определенные области модернизации: Evolvware, Информационный облачный акселератор IBM Consulting и инструменты, специфические для провайдера услуг облачных вычислений (AWS, Azure, GCP и т. д.). Стремясь обеспечить ускорение и оптимизацию затрат на модернизацию, генеративное искусственное интеллект становится ключевым возможностями для изменения того, как мы ускоряем программы модернизации. В данной статье будет рассмотрено применение генеративного искусственного интеллекта в процессе модернизации приложений.

Обзор модернизации приложений

Модернизация приложений начинается с оценки текущих устаревших приложений, данных и инфраструктуры, а также применения правильной стратегии модернизации (перенос на новый хостинг, переход на новую платформу, рефакторинг или полная перепись), чтобы достичь желаемого результата. Перепись приносит максимальную пользу, но требует высокой степени инвестиций, тогда как перенос на новый хостинг осуществляется без какой-либо оптимизации и требует меньших инвестиций, но и ожидаемый результат низкий. Обновленные приложения разворачиваются, мониторятся и поддерживаются с непрерывными итерациями, чтобы быть в ногу с технологическими и бизнес-новинками. Типичные преимущества включают увеличение гибкости, экономию затрат и повышение конкурентоспособности, а среди сложностей можно отметить сложность и требования к ресурсам. Многие предприятия понимают, что переход в облако не дает получаемой ими ценности, а также гибкости и скорости за пределами базовой автоматизации на уровне платформы. Настоящая проблема заключается в том, как организована IT-сфера, что отражается на том, как строятся и управляются их текущие приложения/сервисы (см. закон Конвея). Это, в свою очередь, приводит к следующим сложностям:

  • Дублирующие или перекрывающие функциональные возможности, предлагаемые несколькими IT-системами/компонентами, создают зависимости и распространение, что сказывается на производительности и скорости выхода на рынок.
  • Дублирующие функциональные возможности между приложениями и каналами приводят к дублированию ресурсов IT (например, навыки и инфраструктура).
  • Дублирующие возможности (включая данные), в результате дублирования бизнес-правил и т. д., приводят к несогласованному опыту клиента.
  • Несоответствие возможностей IT возможностям бизнеса сказывается на сроках выхода на рынок и связи бизнес-IT. Кроме того, предприятия стараются создать ряд пластырей и архитектурных слоев для поддержки новых бизнес-инициатив и инноваций.
  • Устаревшие технологии и монолитная структура сказываются на скорости и гибкости, а также на безопасности и соответствии требованиям.

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

Планирование разбивает сложный портфель приложений на итерации, которые следует модернизировать, чтобы создать итеративный план действий – и разрабатывать план выполнения для реализации этого плана.

Фазы проектирования и разработки меняются в зависимости от стратегии модернизации (от разложения приложений и использования приводимого дизайна предметных областей или создания целевой архитектуры на основе новых технологий для создания исполняемых дизайнов).

Последующие фазы – создание, тестирование и развертывание в производство. Давайте рассмотрим возможности генеративного искусственного интеллекта в этих областях жизненного цикла.

Поиск и проектирование

Возможность понимать устаревшие приложения с минимальным участием эксперта предметной области играет важную роль в процессе модернизации. Эксперты предметной области часто заняты задачами по обслуживанию системы и критическими проблемами, что может ограничивать их знания из-за продолжительности поддержки их системы. Фазы поиска и проектирования модернизационных проектов обычно занимают значительное время, однако разработка становится значительно более гладкой, когда функциональность в устаревшем приложении, аспекты интеграции, логика и сложность данных декодируются.

Команды по модернизации полагаются на анализ кода и ссылаются на множество датированных документов, поэтому использование инструментов анализа кода является важным. В случае инициатив по переписыванию важно сопоставить функциональные возможности с контекстом устаревшего приложения, что облегчает эффективное проектирование, основанное на предметной области и декомпозицию. Генеративный искусственный интеллект является бесценным в этом контексте, так как он может сопоставлять предметно-областные и функциональные возможности с кодом и данными, создавая связанное представление о бизнес-возможностях, связанных с кодом и данными приложения. Конечно, эти модели должны быть настроены и контекстуализированы в соответствии с моделью предметной области предприятия или картой функциональных возможностей. Служба сопоставления API, облегчаемая Gen AI, как обсуждалось в этой статье, служит прекрасным примером.

Для декомпозиции и проектирования приложений требуются карты процессов, а Gen AI помогает контекстуализировать и сопоставить информацию из инструментов по майнингу процессов. Gen AI также помогает в генерации использования случаев на основе анализа кода и функциональных сопоставлений. В целом, Генеративный ИИ играет важную роль в уменьшении рисков, связанных с программами модернизации, обеспечивая всестороннюю видимость устаревших приложений и их зависимостей.

Кроме того, Gen AI поддерживает создание целевых проектов, созданных для конкретных облачных сервисов с помощью настройки моделей на основе стандартных шаблонов, охватывающих такие элементы, как входы/выходы, приложения, сервисы данных и композитные шаблоны. Кроме того, Генеративный ИИ выполняет различные другие функции, включая создание шаблонов кода для управления безопасностью. Его возможности также расширяются до создания подробных технических спецификаций, включая пользовательские сценарии, макеты пользовательского опыта, спецификации API (например, файлы Swagger), диаграммы взаимодействия компонентов и диаграммы взаимосвязи компонентов.

Планирование

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

Для обеспечения управляемости этого процесса крайне важно предлагать комплект активов и акселераторов, которые могут эффективно учитывать сложности предприятия. В этом и заключается ключевая роль Генеративного ИИ, устанавливающего значимые связи между деталями портфеля приложений и обнаруженными зависимостями.

Создание и тестирование

Генерация кода – это известное и широко признанное применение генеративного ИИ. Однако важно подчеркнуть, что область применения генерации кода на самом деле простирается гораздо дальше, чем только приложение кода. Это включает генерацию различных связанных артефактов кода, таких как код инфраструктуры, включающий шаблоны для платформ, таких как Terraform или Cloud Formation. Кроме того, Генеративный ИИ может создавать код и конфигурации для конвейеров, внедрять критические элементы безопасности, такие как шифрование и интеграции IAM, и генерировать код приложений на основе Swagger или других анализов кода, особенно важные при работе с устаревшими системами. Эта возможность также распространяется на создание конфигураций брандмауэров, где на основе инстанциируемых служб генерируются файлы ресурсов.

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

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

Развертывание

Множество критических “последних миль” в программах модернизации обычно занимают дни и недели, в зависимости от сложности предприятия. Одним из необходимых сценариев использования Генеративного искусственного интеллекта является возможность получения понимания для проверки безопасности путем анализа логов приложений и платформы, точек дизайна, инфраструктуры в коде и многого другого. Эта возможность значительно ускоряет процессы обзора безопасности и утверждения. Кроме того, Генеративный искусственный интеллект является неотъемлемым средством генерации входных данных для управления конфигурацией (CMDB) и управления изменениями, основываясь на заметках о выпуске, сгенерированных с помощью инструментов гибкости.

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

Давайте теперь рассмотрим потенциальный пример:

Пример 1: Переосмысление обнаружения API с помощью BIAN и искусственного интеллекта для видимости отображения домена и идентификации дублирующихся служб API

Проблема

Крупный глобальный банк управляет обширной экосистемой, включающей более 30 000 API, охватывающих внутренние и внешние интерфейсы в различных областях, таких как розничное банковское дело, оптовое банковское дело, открытое банковское дело и корпоративное банковское дело. В этом обширном портфеле API существует значительный потенциал для наличия дублирующихся API в различных областях. Это избыточность не только увеличивает общую стоимость владения для поддержания обширной коллекции API, но и создает операционные проблемы, связанные с управлением дублированием и перекрытием API.

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

Метод решения на основе Генеративного ИИ

Для решения проблемы используются мощные модели Генеративного ИИ, в частности BERT Large, Sentence Transformer, а также функция потерь Triple Multiple Negatives Ranking, совместно с правилами, специфичными для домена. Оно также дорабатывается с использованием всестороннего знания о BIAN Service Landscape для обеспечения понимания обширного портфеля API банка. Решение предлагает безупречную возможность идентификации и обнаружения API, автоматически связывая их с соответствующими стандартами BIAN. В сущности, оно эффективно отображает методы конечных точек API на глубоком уровне 4 иерархии BIAN Service Landscape, в частности в области BIAN Service Operations.

Основные функции решения:

  • Импорт спецификаций Swagger и другой документации API для полного интерпретации API, включая конечные точки, операции и соответствующие описания.
  • Восприятие деталей BIAN для более глубокого понимания BIAN Service Landscape
  • Применение процессов доработки, включающих успешное и неуспешное сопоставление между методами конечных точек API и BIAN Service Landscape
  • Предоставление интуитивного визуального представления результатов сопоставления, включая счетчики совпадений. Этот визуальный интерфейс включает иерархическую навигацию в рамках BIAN, а также фильтры для уровней BIAN, категорий API и счетчиков совпадений, обеспечивая пользователям доступный информативный вид данных.

Ниже представлено изображение представления решения:

Ключевые преимущества

Решение значительно упростило процесс обнаружения повторно используемых API для разработчиков, организовав их по доменам бизнеса BIAN. Оно предоставило несколько вариантов фильтрации и поиска, позволяя командам эффективно находить нужные им API. Кроме того, оно позволило командам определить важные категории API, необходимые для укрепления операционной устойчивости. В следующей версии функционал поиска будет развиваться, включая обработку естественного языка и поддержку разговорных сценариев.

Распознавая дублирующиеся API в контексте доменов служб BIAN, решение сыграло важную роль в формировании стратегии модернизации, нацеленной на избыточность и рационализацию возможностей.

Замечательным является тот факт, что данный сценарий использования был успешно реализован всего за 6-8 недель, в то время как самому банку потребовался бы целый год, чтобы достичь таких результатов, учитывая огромное количество API, которые нужно было обнаружить и управлять.

Пример 2: Автоматизированная модернизация API MuleSoft на Java Spring Boot API

Проблема

Непрерывные усилия по модернизации API MuleSoft в Java Spring Boot столкнулись с серьезными проблемами. Большой объем API в сочетании с ограниченной документацией и внутренней сложностью существенно сказались на темпах и эффективности проекта.

Подход к решению на основе искусственного интеллекта

Процесс модернизации API Mule в Java Spring Boot был значительно упрощен благодаря реализации разработанного внутри ускорителя, работающего на основе генеративного искусственного интеллекта. Эта инициатива началась с установления глубокого понимания API, их компонентов и основной логики, а затем завершилась определением структур ответов и спецификаций кода. После этого мы использовали версию Sidekick AI от IBM для генерации кода Spring Boot с использованием модели LLM-like Open AI GPT, которая точно соответствовала первоначальным спецификациям API, созданным в MuleSoft. Этот процесс генерации кода включал создание модульных тестов, документации дизайна и элементов пользовательского интерфейса.

Преобразование компонентов API Mule в их аналоги в Spring Boot было выполнено методично, с последовательной интеграцией каждого компонента в инструмент. Ускоритель генерировал соответствующие компоненты Spring Boot, которые затем были взаимосвязаны, решая возникающие ошибки. Кроме того, он облегчал создание пользовательского интерфейса, адаптированного для нужного канала, включая модульные тесты, тестовые данные и всестороннюю документацию дизайна. Документация дизайна включает в себя различные важные элементы, включая диаграммы последовательности и классов, детали запросов и ответов, спецификации точек доступа, коды ошибок и архитектурные соображения.

Основные преимущества

Sidekick AI, использующий OpenAI GPT, усиливает ежедневную работу консультантов по приложениям, сочетая генеративный искусственный интеллект, техническую стратегию, контекстуализированную с глубокими знаниями области и технологий. Основные преимущества:

  • Автоматическая генерация оптимизированного, поддерживаемого и соответствующего лучшим практикам кода Spring Boot и модульных тестов, обеспечивая повторяемость.
  • Упрощение интеграции API с уровнями фронтенда, улучшение всего процесса разработки.
  • Предоставление разработчикам кода, который легко понять и предлагает ценные инсайты для эффективного отладки.

Проект Proof of Concept (PoC) был завершен с помощью четырех различных сценариев миграции кода, модульных тестов, документации дизайна и генерации пользовательского интерфейса за 3 цикла по 6 недель.

Вывод

Многие главные информационные офицеры и технические директоры высказывают сомнения при рассмотрении инициатив по модернизации, опасаясь множества проблем, обозначенных в начале процесса. Они включают в себя вопросы о необходимости активного участия специалистов по предметной области, потенциальных нарушениях бизнес-процессов вследствие изменений и необходимости в изменении операционной модели в различных функциональных областях организации, включая безопасность и управление изменениями. Важно понимать, что генеративный искусственный интеллект не является универсальным решением для этих сложных проблем, однако он несомненно способствует успеху программ по модернизации. Он достигает этого ускорением процесса, снижением общей стоимости модернизации и, что самое важное, снижением рисков путем исключения упущения важной функциональности. Тем не менее, внедрение моделей больших языковых моделей (LLM) и связанных библиотек в предприятий требует значительных временных и трудовых затрат. Это включает тщательное обзоры безопасности и соответствия, а также процедуры сканирования. Кроме того, улучшение качества данных, используемых для настройки этих моделей, является целенаправленной работой, которую не следует недооценивать. Хотя единые интегрированные ускорители модернизации, основанные на генеративном искусственном интеллекте, пока еще не стали повсеместно доступными, ожидается, что со временем появятся интегрированные наборы инструментов для ускорения конкретных сценариев модернизации, если не целого ряда таких сценариев.