IA generativa na modernização de aplicações

Estudante fazendo anotações para uma aula virtual em um caderno

A modernização de aplicações é o processo de atualizar aplicações legadas aproveitando tecnologias modernas, melhorando o desempenho, ajudando a torná-las adaptáveis às velocidades de negócios em evolução, integrando princípios nativos da nuvem como DevOps, infraestrutura como código e assim por diante.

O tratamento de aplicações legadas pode variar desde a reescrita completa até a re-hospedagem com base no valor, criticidade e objetivos. Também é um fato conhecido que os benefícios são maiores para reescrita, pois dá a oportunidade de chegar ao modelo nativo da nuvem com alto grau de agilidade e velocidade. Muitos CIOs e CTOs estão hesitantes em investir devido ao custo e aos prazos envolvidos na obtenção de valor, ao mesmo tempo em que conseguem equilibrar entre iniciativas de reescrita de alto investimento versus abordagens de rehospedagem de baixo valor. Os provedores de serviços e fornecedores de ferramentas estão tentando lidar com essa demanda por meio da criação de aceleradores que podem ser personalizados para o consumo corporativo, ajudando a acelerar áreas específicas de modernização: Evolvware, IBM® Consulting Cloud Accelerators e ferramentas específicas de provedores de serviços de nuvem.

Ao tentar impulsionar a aceleração e otimizar o custo da modernização, a IA generativa está se tornando um facilitador crítico para impulsionar a mudança na forma como aceleramos os programas de modernização. Este artigo foca nas possibilidades da IA generativa no processo de modernização de aplicações.

As mais recentes tendências em IA, trazidas a você por especialistas

Receba insights selecionados sobre as notícias mais importantes (e intrigantes) sobre IA. Inscreva-se no nosso boletim informativo semanal Think. Consulte a Declaração de privacidade da IBM.

Agradecemos a você! Você se inscreveu.

Sua assinatura será entregue em inglês. Você encontrará um link para cancelar a assinatura em cada boletim informativo. Você pode gerenciar suas assinaturas ou cancelar a assinatura aqui. Consulte nossa Declaração de privacidade da IBM para obter mais informações.

Visão geral da modernização de aplicações

A modernização de aplicações é o processo de atualizar aplicações legadas aproveitando tecnologias modernas, melhorando o desempenho, ajudando a torná-las adaptáveis às velocidades de negócios em evolução, integrando princípios nativos da nuvem como DevOps, infraestrutura como código e assim por diante. A modernização de aplicações começa com a avaliação das aplicações, dados e infraestrutura legados atuais e com a aplicação da estratégia de modernização correta (rehospedar, replataformar, refatorar ou reconstruir) para alcançar o resultado desejado. Embora a reconstrução resulte no máximo benefício, há uma necessidade de um alto grau de investimento, enquanto a re-hospedagem trata de mover aplicações e dados como tal para a nuvem sem qualquer otimização e isso requer menos investimentos enquanto o valor é baixo. Aplicações modernizadas são implementadas, monitoradas e mantidas, com iterações contínuas para acompanhar a tecnologia e os avanços dos negócios. Os benefícios típicos realizados variariam desde o aumento da agilidade, custo-efetividade e competitividade, enquanto os desafios incluem complexidade e demanda de recursos. Muitas empresas estão percebendo que migrar para a nuvem não está trazendo o valor desejado, nem agilidade e velocidade além da automação básica em nível de plataforma. O verdadeiro problema está em como a TI é organizada, o que reflete em como suas aplicações/serviços atuais são construídos e gerenciados (veja a lei de Conway). Isso, por sua vez, leva aos seguintes desafios:

  • Os recursos duplicados ou sobrepostos oferecidos por vários sistemas e componentes de TI criam dependências pegajosas e proliferações que afetam a produtividade e a velocidade de lançamento no mercado.
  • Recursos duplicados em aplicações e canais dão origem a recursos de TI duplicados (como habilidades e infraestrutura)
  • Recursos duplicados (incluindo dados), resultando na duplicação de business rules, por exemplo, dão origem a uma experiência do cliente inconsistente.
  • A falta de alinhamento dos recursos de TI com os recursos de negócios afeta o prazo de lançamento no mercado e a TI dos negócios. Além disso, as empresas acabam criando vários paliativos e camadas arquitetônicas para apoiar novas iniciativas e inovações comerciais.
  • Tecnologias legadas e natureza monolítica afetam a velocidade e a agilidade e também impactam a postura de segurança e conformidade.

Portanto, as iniciativas de modernização de aplicações precisam focar mais no valor para os negócios e isso envolve um elemento significativo de transformação das aplicações em componentes e serviços alinhados aos recursos de negócios. O maior desafio disso é a quantidade de investimento necessário, e muitos CIO e CTO hesitam em investir devido ao custo e aos prazos envolvidos na obtenção de valor. Muitos estão lidando com isso por meio da construção de aceleradores que podem ser personalizados para o consumo de empresa que ajudam a acelerar áreas específicas de modernização e um exemplo da IBM é o IBM Consulting Cloud Accelerators. Enquanto tenta impulsionar a aceleração e otimizar os custos da modernização, a IA generativa está se tornando um facilitador crítico para impulsionar mudanças na forma como aceleramos os programas de modernização. Vamos explorar as principais áreas de aceleração com um exemplo neste artigo.

Um ciclo de vida simplificado de programas de modernização de aplicações (que não pretende ser abrangente) é mostrado abaixo. A descoberta se concentra na compreensão de aplicação legada, infraestrutura, dados, interação entre aplicativos, serviços e dados e outros aspectos, como segurança. Planejamento divide o complexo portfólio de aplicações em iterações para serem modernizadas para estabelecer um roteiro iterativo - e estabelece um plano de execução para implementar o roteiro.

 

AI Academy

A ascensão da IA generativa para negócios

Saiba mais sobre a ascensão histórica da IA generativa e o que isso significa para os negócios.

As atividades da fase de blueprint/projeto mudam com base na estratégia de modernização (desde decompor a aplicação e aproveitar o projeto baseado em domínio ou estabelecer a arquitetura de destino com base em novas tecnologias para criar projetos executáveis). As fases subsequentes são de construção, teste e implementação em produção. Vamos explorar as possibilidades da IA generativa nessas áreas do ciclo de vida.

Descoberta e projeto

A capacidade de compreender aplicações legadas com o envolvimento mínimo de SMEs (especialistas no assunto) é um ponto de aceleração crítico. Isso ocorre porque, em geral, os SMEs estão ocupados com iniciativas de desenvolvimento de sistemas, enquanto seu conhecimento pode ser limitado com base em quanto tempo elas têm dado suporte aos sistemas. Coletivamente, descoberta e projeto são onde significativamente tempo é gasto durante a modernização, enquanto o desenvolvimento é muito mais fácil quando a equipe tem decodificado a funcionalidade da aplicação legada, aspectos de integração, lógica e complexidade de dados.

As equipes de modernização realizam sua análise de código e examinam vários documentos (principalmente datados); é aqui que a confiança em ferramentas de análise de código se torna importante. Além disso, para iniciativas de reescrita, é necessário mapear recursos funcionais para o contexto da aplicação legada para realizar exercícios eficazes de projeto/decomposição orientados por domínio. A IA generativa se torna muito útil aqui, por meio de sua capacidade de correlacionar recursos de domínio/funcionais a códigos e dados e estabelecer a visualização de recursos de negócios e código e dados de aplicações conectados. É claro que os modelos precisam ser ajustados/contextualizados para um determinado modelo de domínio empresarial ou recurso funcional. map. O mapeamento de API assistido por IA generativa chamado neste artigo é um miniexemplo disso. Enquanto o exposto acima é para decomposição/projeto de aplicações, a tempestade de eventos precisa de mapas de processos, e é aqui que a IA generativa ajuda a contextualizar e mapear extratos de ferramentas de mineração de processos. A IA generativa também ajuda a gerar casos de uso com base em insights de código e mapeamento funcional. No geral, a IA generativa ajuda a reduzir os riscos dos programas de modernização via garantindo visibilidade adequada para aplicações legadas, bem como para dependências.

A IA generativa também ajuda a gerar um projeto de destino para framework específico do provedor de serviços de nuvem, ajustando os modelos com base em um conjunto de padrões padronizados (entrada/saída, serviços de aplicação, serviços de dados, padrões compostos etc.). Da mesma forma, há vários outros casos de uso de IA generativa que incluem a geração de padrões de código específicos de frameworks de tecnologia-alvo para controles de segurança. A IA generativa ajuda a gerar especificações de projeto detalhadas, como histórias de usuários, wireframes de experiência do usuário, especificações de APIs (por exemplo, arquivos Swagger), diagrama de relacionamento de componentes e diagramas de interação de componentes.

Planejamento

Uma das tarefas difíceis de um programa de modernização é conseguir estabelecer um roteiro macro, equilibrando esforços paralelos, dependências sequenciais e identificando cenários de coexistência a serem abordados. Embora isso normalmente seja feito como uma tarefa única, o realinhamento contínuo por meio de Incrementos do Programa (PIs), o planejamento de exercícios incorporando entradas de nível de execução é muito mais difícil. A IA generativa é útil para gerar roteiros com base em dados históricos (aplicações para mapas de área de domínio, fatores de esforço e complexidade, padrões de dependência e outros), aplicando isso a aplicações no escopo de um programa de modernização, para um determinado setor ou domínio.

A única maneira de lidar com isso é torná-lo consumível por meio de um pacote de ativos e aceleradores que possam lidar com a complexidade empresarial. É aqui que a IA generativa desempenha um papel significativo na correlação dos detalhes do portfólio de aplicações com as dependências descobertas.

Criar e testar

A geração de código é um dos casos de uso de IA generativa mais conhecidos, mas é importante poder gerar um conjunto de artefatos de código relacionados, que vão desde IAC (Terraform ou Modelo de Formação de Nuvem), código/configurações de pipelines, pontos de projeto de segurança incorporados ( criptografia, integrações de IAM, etc.), geração de código de aplicação a partir de swaggers ou outros insights de código (de legados) e configurações de firewall (como arquivos de recursos com base em serviços instanciados, por exemplo). A IA generativa ajuda a gerar cada um dos itens acima por meio de uma abordagem orquestrada com base em arquiteturas de referência de aplicação predefinidas construídas a partir de padrões, ao mesmo tempo em que combina saídas de ferramentas de projeto.

Os testes são outra área importante: a IA generativa pode gerar o conjunto certo de casos de teste e código de teste junto com os dados de teste para otimizar os casos de teste que estão sendo executados.

Implemente

Várias atividades críticas de "última milha" em programas de modernização consomem dias a semanas, dependendo da complexidade da empresa. Um caso de uso essencial de IA generativa é a capacidade de obter insights para validação de segurança por meio da análise de logs de aplicações e plataformas, pontos de projeto, infraestrutura como código e muito mais. Esse recurso acelera muito os processos de avaliação e aprovação de segurança. Além disso, a IA generativa é fundamental na geração de entradas para gerenciamento de configurações (CMDB) e gestão de mudanças, com base nas notas de versão geradas por meio de itens de trabalho da ferramenta Agility concluídos por lançamento.

Embora os casos de uso mencionados acima sejam imensamente promissores ao longo da jornada de modernização, é crucial reconhecer que as complexidades empresariais exigem uma abordagem contextualmente orquestrada para aproveitar muitos desses aceleradores de IA generativa de forma eficaz. O desenvolvimento de padrões contextuais específicos da empresa é um esforço contínuo para acelerar os programas de modernização. Observamos benefícios substanciais em investir tempo e esforço antecipadamente e em personalizar continuamente esses aceleradores de IA generativa para se alinharem com padrões específicos que apresentam repetibilidade dentro da empresa.

Vamos agora examinar um possível exemplo comprovado:

Exemplo 1: reinventando a descoberta de API com BIAN e IA para visibilidade do mapeamento de domínio e identificação de serviços de API duplicados

O problema: o Large Global Bank tem mais de 30.000 APIs (internas e externas) desenvolvidas ao longo do tempo em vários domínios (por exemplo, banco de varejo, banco de atacado, banco aberto e banco corporativo). Há um enorme potencial de APIs duplicadas em todos os domínios, levando a um custo total de propriedade mais alto para manter o grande portfólio de APIs e os desafios operacionais de lidar com a duplicação e sobreposição de APIs. A falta de visibilidade e descoberta das APIs leva as equipes de desenvolvimento de APIs a desenvolver APIs iguais ou semelhantes, em vez de encontrar APIs relevantes para reutilização. A incapacidade de visualizar o portfólio de APIs do ponto de vista do Modelo de Setor Bancário obriga as equipes de negócios e TI a entenderem os recursos que já estão disponíveis e quais novos recursos são necessários para o banco.

Abordagem de solução baseada em IA generativa: a solução aproveita o grande modelo de linguagem BERT, o Sentence Transformer, a Multiple Negatives Ranking Loss Function e regras de domínio, com ajuste fino com o BIAN Service Landscape Knowledge para aprender o portfólio de APIs do banco e fornecer a capacidade de descobrir APIs com mapeamento automático para o BIAN. Ele mapeia o método de endpoints de APIs para a BIAN Service Landscape Hierarchy de nível 4, ou seja, BIAN Service Operations.

As principais funções da solução são:

  • Ingira especificações do Swagger e outras documentações de APIs e entenda a API, os endpoints, as operações e as descrições associadas.
  • Ingira de detalhes do BIAN e entenda o BIAN Service Landscape.
  • Faça um ajuste fino com mapeamento correspondente e não correspondente entre o método de endpoints de APIs e o BIAN Service Landscape.
  • Forneça uma representação visual da pontuação de mapeamento e correspondência com a navegação hierárquica BIAN e filtros para níveis de BIAN, categorias e pontuação correspondente.

Interface do usuário para descoberta de API com modelo de setor:

Principais benefícios: a solução ajudou os desenvolvedores a encontrar facilmente APIs reutilizáveis, com base nos domínios de negócios da BIAN; eles contavam com diversas opções de filtro/busca para localizar APIs. Além disso, as equipes puderam identificar as principais categorias de APIs para construir a resiliência operacional adequada. A próxima revisão da busca será baseada em linguagem natural e será um caso de uso conversacional.

A capacidade de identificar APIs duplicadas com base em domínios de BIAN Service ajudou a estabelecer uma estratégia de modernização que lida com recursos duplicados e os racionaliza.

Esse caso de uso foi concretizado dentro de seis a oito semanas, enquanto o banco teria levado um ano para alcançar o mesmo resultado (pois havia vários milhares de APIs a serem descobertas).

Exemplo 2: Modernização automatizada da API MuleSoft para API Java Spring Boot

O problema: enquanto as equipes atuais estavam em uma jornada para modernizar as APIs do MuleSoft para Java Spring Boot, o grande volume de APIs, a falta de documentação e os aspectos de complexidade estavam afetando a velocidade.

Abordagem da solução baseada em IA generativa: a modernização da API do Mule para Java Spring Boot foi significativamente automatizada via um acelerador baseado em IA generativa que construímos. Começamos estabelecendo um profundo conhecimento de APIs, componentes e lógica de API, seguidos pela finalização de estruturas de resposta e código. Em seguida, foram criados prompts usando a versão do IBM Sidekick AI para gerar o código Spring boot, que atende às especificações de API da MuleSoft, casos de teste de unidade, documento de projeto e interface do usuário.

Os componentes da API do Mule foram fornecidos na ferramenta, um por um, usando prompts e gerando o equivalente do Spring boot correspondente, que foi posteriormente conectado e lidando com os erros que surgiram. O acelerador gerava uma IU para o canal desejado que poderia ser integrada às APIs, casos de teste unitário e dados de teste e documentação. Uma documentação de projeto gerada consiste em diagrama de sequência e classe, solicitação, resposta, detalhes de ponto final, códigos de erro e considerações de arquitetura.

Principais benefícios: o Sidekick AI aumenta o trabalho diário dos Consultores de Aplicações, combinando uma estratégia técnica de IA generativa de vários modelos contextualizada por meio de profundo conhecimento de domínio e tecnologia. Os principais benefícios são os seguintes:

  • Gera a maior parte do código do Spring Boot e casos de teste que são otimizados, limpos e aderem às melhores práticas — a chave é a repetibilidade.
  • Facilidade de integração de APIs com camadas de front-end do canal.
  • Facilidade de compreensão do código do desenvolvedor e insights suficientes na depuração do código.

O PoC do Accelerator foi concluído com quatro cenários diferentes de migração de código, casos de teste de unidade, documentação de projeto e geração de IU em três sprints ao longo de seis semanas.

Conclusão

Muitos CIOs e CTOs expressaram reservas ao considerar iniciativas de modernização, citando uma multidão de desafios delineados no início. Isso inclui preocupações sobre o extenso envolvimento necessário das PMEs, possíveis interrupções nos negócios devido a mudanças e a necessidade de alterações no modelo operacional em várias funções organizacionais, incluindo segurança e gestão de mudanças. Embora seja importante reconhecer que a IA generativa não é uma solução única para esses desafios complexos, ela contribui inegavelmente para o sucesso dos programas de modernização. Ela consegue isso acelerando o processo, reduzindo o custo geral da modernização e, o mais importante, mitigando os riscos ao garantir que nenhuma funcionalidade crítica seja negligenciada. No entanto, é essencial reconhecer que a introdução de grandes modelos de linguagem (LLM) e bibliotecas relacionadas no ambiente empresarial envolve um comprometimento significativo de tempo e esforço. Isso inclui avaliações rigorosas de segurança e conformidade e procedimentos de verificação. Além disso, melhorar a qualidade de dados usados para ajustar esses modelos é um esforço concentrado que não deve ser subestimado. Embora os aceleradores coesivos de modernização orientados por IA generativa ainda não tenham se tornado onipresentes, espera-se que, com o tempo, surjam toolkits integrados para facilitar a aceleração de padrões específicos de modernização, ou mesmo uma série deles.

Explore o que você pode fazer com IA generativa com a IBM Consulting.

 
Soluções relacionadas
IBM watsonx.ai

Treine, valide, ajuste e implemente recursos de IA generativa, modelos de base e recursos de aprendizado de máquina com o IBM watsonx.ai, um estúdio empresarial de última geração para construtores de IA. Crie aplicações de IA em uma fração do tempo com uma fração dos dados.

Conheça o watsonx.ai
Soluções de inteligência artificial

Use a IA a serviço de sua empresa com a experiência e o portfólio de soluções líder do setor da IBM à sua disposição.

Explore as soluções de IA
Serviços de IA

Reinvente os fluxos de trabalho e operações críticos adicionando IA para maximizar experiências, tomadas de decisão em tempo real e valor de negócios.

Explore os serviços de IA
Dê o próximo passo

Obtenha acesso completo aos recursos que abrangem o ciclo de vida do desenvolvimento da IA. Produza soluções poderosas de IA com interfaces fáceis de usar, fluxos de trabalhos e acesso a APIs e SDKs padrão do setor.

Explore o watsonx.ai Agende uma demonstração em tempo real