Avaliação - AWS Orientação prescritiva

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Avaliação

A avaliação de aplicações para conteinerização ajuda a descobrir todas as dependências e riscos. A avaliação também ajuda a classificar as aplicações em grupos prioritários para modernização e migração.

Durante a fase de avaliação, concentre-se nas seguintes áreas principais:

  • Dependências do sistema operacional para conteinerização — Ferramentas automatizadas de conteinerização, como o AWS App2Container, têm algumas limitações nas estruturas de aplicativos e nos sistemas operacionais para conteinerização. Para obter mais informações sobre as aplicações compatíveis, consulte a Documentação do App2Container.

  • Conformidade regulatória: é eficiente garantir que as aplicações conteinerizadas estejam em conformidade com todas as regulamentações antes de serem implantadas no ambiente de destino, em vez de agir de forma reativa após a implantação e mitigá-las. Verifique se há vulnerabilidades nas imagens, comunicação não autorizada entre contêineres, controles de acesso a contêineres e dados e verificações automatizadas para evitar atividades maliciosas.

  • Solução de recuperação de desastres (DR): cada aplicação tem seu próprio acordo de serviço (SLA) específico para tempo de inatividade. Lembre-se do objetivo de ponto de recuperação (RPO) e do objetivo de tempo de recuperação (RTO) ao planejar a distribuição dos clusters de contêineres. O App2Container, por padrão, implanta a aplicação em várias zonas de disponibilidade.

  • Armazenamento de dados: os contêineres são melhor usados como stateless. Para contêineres stateful, os dados devem ser armazenados externamente ao contêiner. Se um contêiner sair de serviço, você poderá criar um novo usando a imagem e o volume externo conectados sem perder dados.

  • Gerenciamento de configurações e segredos: o armazenamento de parâmetros do ambiente de destino ou o armazenamento secreto podem ser usados para armazenar e recuperar a configuração e os segredos do contêiner. É vital garantir que os segredos sejam acessíveis somente ao contêiner relevante. Todas as operações de configuração e os segredos devem ser registrados em log. O canal de comunicação entre o contêiner e o armazenamento de segredos deve ser seguro.

  • Gerenciamento de logs: para auditoria, os logs gerados por cada contêiner serão enviados para um serviço de gerenciamento de logs externo ao contêiner. Como uma aplicação consiste em vários serviços e processos, cada uma residindo em contêineres diferentes, os registros de cada contêiner devem ter um ID exclusivo.

  • Processo de compilação e implantação: a maioria das empresas tem algum tipo de processo de compilação e implantação para lançar aplicações e recursos. Para aproveitar as vantagens da conteinerização, a compilação e a implantação das aplicações devem ser automatizadas usando um pipeline de CI/CD. Um pipeline traz vantagens como provisionamento e descomissionamento da infraestrutura com um clique, implantações mais rápidas e à prova de erros, automação e tempo reduzido para lançar novos recursos.

  • Aplicações upstream e downstream: é prática recomendada colocar conteinerizar e migrar todas as aplicações dependentes em lotes. Em cenários em que isso não é viável, os canais de comunicação da aplicação conteinerizada para as aplicações upstream e downstream devem ser abertos com segurança. Certifique-se de que a largura de banda aceita por esse canal não interrompa a funcionalidade da aplicação.

  • Dependências de licenças: várias instâncias de uma aplicação são executadas em contêineres, o que pode se tornar caro. Verifique os contratos e a elegibilidade para implantar software em contêineres. Entenda quais ferramentas são usadas para medir o software consumido em contêineres.

  • Possibilidade de conteinerização em servidores de aplicações ou máquinas de trabalho: o processo de conteinerização consome recursos adicionais no servidor, como espaço em disco, capacidade computacional e memória. O servidor de aplicações deve ser analisado para garantir que seja capaz de suportar o processo de conteinerização. Caso contrário, uma máquina de trabalho que tenha os recursos necessários e seja capaz de se comunicar com o servidor de aplicações poderá ser usada.

  • Habilidades de desenvolvedor e suporte à produção em contêineres: a equipe de aplicações deve se aprimorar na tecnologia de conteinerização. A equipe deve ser capaz de solucionar problemas no processo, ajustar as configurações, se necessário, e oferecer suporte às aplicações implantadas em contêineres.

Você pode usar o App2Container para armazenar aplicativos Java em execução no Linux, como autônomos, Apache Tomcat JBoss, IBM, Oracle. WebSphere WebLogic O App2Container também pode ser usado para conteinerizar aplicações Java genéricas, como o Spring Boot. A conteinerização de aplicações funciona com microsserviços e aplicações distribuídas. Embora todas as aplicações Java possam ser modernizadas usando o App2Container, os critérios a seguir podem ajudar você a escolher as aplicações certos a serem modernizadas para migrações mais rápidas:

  • As aplicações empacotadas como um único binário são mais fáceis de conteinerizar. Além disso, as aplicações Java podem ser conteinerizadas com um Java Runtime Environment (JRE). Cada contêiner pode usar o JRE específico de que precisa.

  • Aplicações stateless são uma boa opção para modernização em contêineres. Essas aplicações armazenam o mínimo de informações localmente e guardam a maioria dos dados em um armazenamento de dados persistente.

  • As aplicações lançadas por meio de um pipeline de integração contínua e implantação contínua (CI/CD) são boas candidatas para a conteinerização. Conteinerize cada aplicação e inclua uma plataforma de orquestração de contêineres, como Amazon ECS ou Amazon EKS, que é gerenciada automaticamente pelo App2Container.

A maioria das aplicações corporativas é integrada a vários outros serviços para autenticação, armazenamento de dados persistente, armazenamento em cache, comunicação assíncrona, log e notificações. A aplicação conteinerizada deve ser testada on-premises com todos os pontos de integração existentes para facilitar o sucesso da conteinerização. Quando estiver pronto para migrar AWS, todos os pontos de integração e armazenamento de dados apropriados devem ser migrados para. AWS Todas as atualizações necessárias devem ser feitas na configuração antes que o contêiner da aplicação possa ser implantado na AWS.

Os dados armazenados em sistemas de arquivos podem ser migrados para AWS o uso de várias ferramentas que atendem ao caso de uso. Os dados armazenados em um cache, como o Redis, podem ser migrados para a Amazon. ElastiCache Os dados armazenados em bancos de dados podem ser migrados usando as próprias ferramentas nativas do banco de dados ou usando AWS Database Migration Service(AWS DMS). AWS DMS também fornece a opção de captura de dados de alteração (CDC) para replicar as alterações em andamento de um armazenamento de dados de origem até a transferência.

AWS fornece seu próprio serviço de monitoramento e visualização de dados operacionais chamado Amazon CloudWatch. Um CloudWatch agente pode ser embalado no contêiner junto com o aplicativo para usar esse serviço.

Para organizações em que o código fonte não está disponível ou não pode ser mantido, o App2Container é uma ótima opção para conteinerização, pois opera no ambiente do runtime da aplicação e não requer o código-fonte.