Refatorar para o .NET Modern e migrar para o Linux - 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á.

Refatorar para o .NET Modern e migrar para o Linux

Visão geral do

A modernização de aplicações .NET Framework legadas pode ajudar a melhorar a segurança, a performance e a escalabilidade. Uma forma eficaz de modernizar as aplicações .NET Framework é migrá-las para uma versão do .NET Modern (6+). Confira algumas das principais vantagens de migrar essas aplicações para o. NET de código aberto:

  • Para reduzir os custos de licenciamento do Windows executando-os em um sistema operacional Linux

  • Aproveitar a disponibilidade de linguagens modernas

  • Obtenha performance otimizada para execução no Linux

Muitas organizações ainda estão executando versões mais antigas do .NET Framework. Isso pode representar riscos de segurança, já que as vulnerabilidades nas versões mais antigas não são mais tratadas pela Microsoft. A Microsoft encerrou o suporte para as versões recentes do. NET Framework 4.5.2, 4.6 e 4.6.1. É muito importante avaliar os riscos e as vantagens de continuar executando as versões mais antigas do framework. Para reduzir o risco e os custos, pode valer a pena investir tempo e esforço na refatoração para uma versão moderna do. NET.

Impacto do custo

Considere um tipo de EC2 instância de uso geral (m5), que ofereça um equilíbrio entre recursos de computação, memória e rede. Essas instâncias são adequadas para uma variedade de aplicações, como servidores web, bancos de dados de médio porte e repositórios de código-fonte.

Por exemplo, uma instância m5.xlarge sob demanda com 4 V CPUs e 16 GB de memória no Windows Server (licença incluída) no Leste dos EUA (Norte da Virgínia) custa 274,48 USD mensais. Os mesmos recursos em um servidor Linux custam USD 140,16 por mês. Neste exemplo, há uma redução de 49% no custo quando você migra sua aplicação do. NET Framework para uma versão moderna do .NET e executa a aplicação em um servidor Linux. Seu custo pode variar dependendo das opções (por exemplo, tipo de instância, sistema operacional, armazenamento) que você escolher ao selecionar uma EC2 instância. Você pode otimizar ainda mais os custos usando Savings Plans ou Instâncias Reservadas. Para obter mais detalhes, use a AWS Calculadora de Preços para executar estimativas de custo. Para instâncias incluídas no Windows, o custo da licença é de USD 0,046 por vCPU por hora, independentemente do modelo de preços.

A portabilidade dessas aplicações .NET Framework para o .NET Modern exige esforço do desenvolvedor. Você deve avaliar seus aplicativos e suas dependências para ver se eles são compatíveis com a versão da plataforma de destino. AWS Assistente de Portabilidade para .NET é uma ferramenta auxiliar que verifica aplicações .NET Framework e gera uma avaliação de compatibilidade do .NET, ajudando você a portar suas aplicações para serem compatíveis com o Linux mais rapidamente. O Assistente de Portabilidade para .NET identifica incompatibilidades com o .NET, encontra substitutos conhecidos e gera uma avaliação detalhada da compatibilidade. Depois de portar sua solução, você deve fazer alterações manuais no código para que seu projeto seja compilado com êxito com dependências. Isso reduz o esforço manual envolvido na modernização das suas aplicações para Linux. Se sua aplicação for compatível com processadores ARM, migrar para o Linux vai permitir usar instâncias do Graviton. Isso pode ajudar você a obter mais 20% em reduções adicionais de custos. Para obter mais informações, consulte Powering .NET 5 com AWS Graviton2: Benchmarks in the Compute Blog. AWS

Há outras ferramentas, como o Kit de ferramentas da AWS para refatoração do .NET e o Assistente de Portabilidade para .NET, que podem ajudar a portar aplicações .NET Framework legadas para o .NET Modern.

Recomendações de otimização de custos

Para migrar aplicações .NET Framework, faça o seguinte:

  1. Pré-requisitos: para usar o Assistente de Portabilidade para .NET, você deve instalar o .NET 5+ na máquina em que planeja analisar o código-fonte da aplicação. Os recursos na máquina devem ter no mínimo 1,8 velocidade de GHz processamento, 4 GB de memória e 5 Gb de espaço de armazenamento. Para obter mais informações, consulte Prerequisites na documentação do Assistente de Portabilidade para .NET.

  2. Avaliação: baixe o Assistente de Portabilidade para .NET como um arquivo executável (download). Você pode baixar e instalar a ferramenta em sua máquina para iniciar a avaliação de suas aplicações. A página de avaliação contém projetos e pacotes portados APIs que são incompatíveis com o.NET moderno. Por esse motivo, você recebe erros de criação na solução após a avaliação. Você pode visualizar ou baixar as decobertas da avaliação em um arquivo CSV. Para obter mais informações, consulte Port a solution na documentação do Assistente de Portabilidade para .NET.

  3. Refatoração: depois de avaliar a aplicação, você pode portar seus projetos para a versão do framework de destino. Ao portar uma solução, seus arquivos de projeto e parte do código serão modificados pelo Assistente de Portabilidade. Você pode verificar os logs para analisar as alterações em seu código-fonte. Na maioria dos casos, o código exigirá um esforço adicional para concluir a migração e os testes para deixá-lo pronto para produção. Dependendo da aplicação, algumas das alterações podem incluir o framework de entidades, a identidade e a autenticação. Para obter mais informações, consulte Port a solution na documentação do Assistente de Portabilidade para .NET.

Esta é a primeira etapa para modernizar suas aplicações em contêineres. Pode haver vários fatores comerciais e técnicos para modernizar suas aplicações .NET Framework para contêineres Linux. Um dos fatores mais importantes é reduzir o custo total de propriedade ao mudar de um sistema operacional Windows para o Linux. Isso reduz os custos de licenciamento ao migrar sua aplicação para uma versão multiplataforma do .NET e para contêineres para otimizar a utilização dos recursos.

Depois que sua aplicação for portada para o Linux, você poderá usar o AWS App2Container para conteinerizar sua aplicação. O App2Container usa o Amazon ECS ou o Amazon EKS como serviços de endpoint em que você pode implantar diretamente. O App2Container fornece todos os artefatos de implantação de infraestrutura como código (IaC) necessários para conteinerizar suas aplicações repetidamente.

Considerações e recursos adicionais