Visão geral do IBM Mono2Micro

IBM® Mono2Micro™ é um utilitário semiautomatizado para refatorar aplicativos monolíticos Java® em microsserviços que você executa em WebSphere® Application Server Liberty ou Open Liberty. É possível usar o IBM Mono2Micro e as recomendações que ele fornece para gerar automaticamente uma porção significativa de código que você precisa para construir e implementar seus microsserviços

Por meio de análise estática e dinâmica, o IBM Mono2Micro usa seu mecanismo de aprendizado de máquina e uma análise do código do aplicativo monolítico Java para gerar recomendações de partições.. Recomendações de partição são agrupamentos de classes no monolito que podem servir como pontos de partida para os microserviços. As partições recomendadas juntamente com outras informações pertinentes são exibidas em uma UI de ambiente de trabalho intuitiva. Com base em seu conhecimento integrado sobre a linguagem de programação Java , o IBM Mono2Micro também fornece uma análise semântica profunda de chamadas de classe para classe. Ao utilizar a UI do ambiente de trabalho e a análise detalhada, você obtem uma visão clara das recomendações de particionamento, que você pode afinar iterativamente para se adequar às suas necessidades de negócios. Depois de decidir sobre uma recomendação de particionamento específica, é possível executar IBM Mono2Micro para gerar automaticamente uma parte significativa do código que você precisa para construir e implementar as partições recomendadas juntamente com o seu código monolítico existente Depois de revisar o código gerado, é possível continuar a refinar iterativamente as recomendações e gerar o código até ter os microsserviços que deseja. É possível então executar os microsserviços no WebSphere Application Server Liberty ou Open Liberty.

IBM Mono2Micro está disponível como parte do IBM WebSphere Hybrid Edition e IBM Cloud Pak® for Applications.

A jornada do IBM Mono2Micro

Os comandos IBM Mono2Micro fornecem os seguintes recursos.

Coleta de dados

Para o IBM Mono2Micro analisar seu aplicativo, primeiro execute o comando mono2micro analyze em seu código e, em seguida, execute seu aplicativo com instrumentação para coletar todos os dados a serem analisados.

  1. Execute o comando mono2micro analyze em seu arquivo de aplicativos para produzir arquivos JSON de tabela que contenham informações sobre o código como nomes de classe completa, assinaturas de método, variáveis de estado e relações de herança.
  2. (Opcional) Implementar seu aplicativo com o instrumentador binário ativado.
  3. (Opcional) Execute o comando mono2micro usecase com seus casos de uso de negócios para produzir um ou mais arquivos JSONs de contexto e arquivos de log para análise.
Análise AI para recomendações de partição

Para obter as duas opções de refatoração do IBM Mono2Micro, execute o comando mono2micro recommend em seus arquivos coletados anteriormente para obter relatórios e gráfico JSON com as recomendações de partição.

  1. Coloque arquivos em locais dentro do diretório de entrada para obter recomendações de análise de código estático e, opcionalmente, geração de código.
    • Apenas para análise de código estático, coloque os arquivos JSON da tabela (de mono2micro analyze) no local adequado dentro do diretório de entrada...
    • Para análise de código estático e geração de códigos, coloque arquivos JSON de tabela (do mono2micro analyze), arquivos de log (do servidor de aplicativos durante a execução de casos de uso de negócios) e o arquivo JSON de contexto (do mono2micro usecase durante a execução de casos de uso de negócios) nos locais adequados dentro do diretório de entrada.
  2. Execute o comando mono2micro recommend para produzir relatórios e um JSON de gráfico com as abordagens de refatoração
Refatoração de partição

Execute o comando mono2micro workbench para ativar a UI do ambiente de trabalho onde você pode obter uma compreensão mais profunda do seu aplicativo e suas aulas examinando as duas abordagens de refatoração que são criadas para a sua aplicação. As duas abordagens de refatoração por IBM Mono2Micro são lógicas de negócios e costuras naturais. Essas recomendações foram criadas a partir da análise das chamadas de tempo de execução do seu aplicativo e dependências de dados detectadas. Se nenhuma abordagem for bem o que você deseja, crie e salve um plano para sua própria solução de particionamento customizada.

  1. Ative a imagem do contêiner de UI do ambiente de trabalho com o comando mono2micro workbench .
  2. Acesse a UI no seu navegador e carregue o arquivo JSON que é produzido a partir do comando mono2micro recommend .
  3. Explore abordagens de refatoração.
  4. (Opcional) Crie e salve o arquivo JSON de opção de refatoração customizado.
Geração de código

Execute o comando mono2micro transform para produzir automaticamente código inaugural para criação de seus microserviços.

  1. (Opcional) Se você optar por utilizar as sedes naturais ou abordagem de refatoração personalizada, então execute o comando mono2micro refine .
  2. Execute o comando mono2micro transform para produzir código.
  3. Edite e implemente código nos ambientes de teste.

Como funciona

A figura a seguir exibe o fluxo de trabalho por meio do IBM Mono2Micro As caixas azuis, que começam com o termo (Action), representam ações do usuário. As caixas não preenchidas, que começam com o termo (File), representam arquivos. As linhas sólidas apontam para as próximas etapas. As linhas tracejadas mostram os usos de arquivos e apontam para as próximas ações ou arquivos do usuário no fluxo de trabalho. O fluxo de trabalho começa com o código de aplicação e, após a análise e geração de código, termina com código iniciador gerado para partições.


IBM Mono2Micro componentes, contêineres e fluxo de trabalho

IBM Mono2Micro componentes

IBM Mono2Micro é composto pelos seis componentes a seguir, que são exibidos na figura anterior

Analisador de código (mono2micro-bluejay container ou binary analyzer .jar)
O comando mono2micro analyze que analisa e opcionalmente instrumentos o código Java de aplicações monolíticas.
Instrumentador binário (minerva-agent-1.0.jar)
Um agente Java que instrumentos um aplicativo em execução implementado no servidor de aplicativos.
Usar gravador de caso (Flicker)
Execute com o comando mono2micro usecase , um programa Java que registra nomes de casos de uso e horários. Use-o quando executar suites de teste ou casos de teste correspondentes a vários casos de uso de negócios de um aplicativo monolítico Java .
O motor AI para recomendações de partição (mono2micro-aipl container)
O comando mono2micro recommend executa o mecanismo AI do IBM Mono2Micro. Ele usa técnicas de aprendizado de máquina no usuário fornecido rastros de tempo de execução e metadados que é obtido a partir do analisador de código-fonte. Ele usa as informações resultantes para gerar recomendações de partição que eventualmente podem se tornar microserviços. Este comando também produz um relatório detalhado para as partições recomendadas.
UI do ambiente de trabalho IBM Mono2Micro
O contêiner mono2micro-ui que exibe as recomendações do motor AI quando lançado com o comando mono2micro workbench . As recomendações que são obtidas do mecanismo de IA IBM Mono2Micro são mantidas em seu armazenamento local. Você pode carregar as recomendações na UI do ambiente de trabalho para exibí-las em um visualizador gráfico. Com a UI, é possível modificar as recomendações de partição geradas por IA.
Gerador de código (mono2micro-cardinal container)

O comando mono2micro transform invoca o gerador de código, que possui profundo conhecimento da semântica da linguagem de programação Java . O gerador de código utiliza as recomendações do motor AI para fazer as seguintes coisas:

  • Forneça análises de chamada detalhadas das partições recomendadas que podem eventualmente ser implementadas como microserviços.
  • Gerar análises de herança detalhadas das partições recomendadas.
  • Gere uma parte significativa do código necessário para realizar as partições recomendadas em contêineres.

Você pode fazer o download das ferramentas do Mono2Micro e executá-las em seu computador local.

Etapas para refactoring a um aplicativo monolítico Java

As etapas a seguir descrevem como refatorar um aplicativo monolítico Java usando o IBM Mono2Micro Eles são uma versão mais detalhada da figura anterior.

  1. Analise o código Java de um aplicativo monolítico usando o analisador de código.

  2. Escolha se deseja obter recomendações com base apenas na análise de código estático do aplicativo ou obter a geração de códigos também Apenas para análise de código estático, vá para etapa 3. Para análise de código estático e geração de código, conclua as etapas a seguir para incluir geração de código:

    1. Implemente o aplicativo monolítico Java em ambientes não produtivos mas representativos juntamente com o agente instrumentador binário Java . Use os arquivos JSON que são gerados pelo analisador de código como entrada.

      Os arquivos JSON são symTable.json, refTable.json e instrumenter-config.json.

    2. Executar casos de teste correspondentes a vários casos de uso de negócios no aplicativo monolítico Java implementado.

      Execute o gravador de caso de uso para nomear e registrar os horários de início e parada de casos de teste individuais que correspondem aos vários casos de uso do negócio.

    3. Organize os arquivos de log que contenham os rastreios juntamente com os arquivos JSON (symTable.json e refTable.json) que são produzidos pelo analisador de código e utilize o gravador de casos (um ou mais arquivos .json contexto) nos subdiretórios apropriados.

    4. Execute o motor AI no diretório onde os arquivos de log e arquivos JSON são mantidos.

      O motor AI analisa o conteúdo do diretório e gera as recomendações de partição no arquivo final_graph.json juntamente com relatórios em formato HTML.

      O motor AI cria um diretório que contém todos os artefatos necessários que são necessários para a geração de código. Ele também produz as partições e relatórios de herança em formato HTML no diretório. O relatório de partições contém a análise de chamada detalhada para as recomendações de partição que podem ser os iniciantes dos microserviços. O Relatório Herança detalha quaisquer cadeias de herança existentes no aplicativo em consideração.

  3. Visualize as recomendações de partição carregando o arquivo final_graph.json .

    Na UI do ambiente de trabalho, é possível ajustar e afinar as recomendações e salvar as alterações em um arquivo JSON. É possível visualizar as partições e relatórios de herança em qualquer navegador.

  4. Se você incluiu geração de código na etapa 2, execute outros comandos para produzir artefatos e código de início.

    1. Se você ajustou recomendações de particionamento em uma etapa anterior, execute o comando mono2micro refine para produzir os novos artefatos para geração de códigos juntamente com novos relatórios.
    2. Execute o comando mono2micro transform para gerar automaticamente o código iniciador para a realização das recomendações de microserviço.
  5. Você pode iterar através das etapas novamente, começando com a etapa que executa o comando mono2micro recommend , para chegar aos microserviços de sua escolha.

Algumas das etapas anteriores são explicadas em detalhes em outros tópicos do IBM Mono2Micro .