Bem-vindo(a) à parte 3 de nossa série Navegando sobre o End-Of-Support (EOS) do Windows Server. Examinaremos as opções de modernização do EOS usando containers Windows e, em situações em que um upgrade não seja viável, mostraremos como o End of Support Migration Program (EMP) pode ajudar a empacotar aplicações existentes em execução em um sistema operacional (SO) EOS para uma nova versão de sistema operacional na AWS.Vamos aprofundar!
Transforme aplicações web ASP.NET legadas em containers Windows
À medida que ajudamos a resolver problemas de EOS (conforme mostrado na Figura 1) com nossos clientes, estamos vendo oportunidades de usar containers Windows para facilitar o gerenciamento de aplicações legadas e monolíticas. Para aplicações web ASP.NET, os containers Windows são a melhor maneira de executá-los. Containers são naturalmente portáteis, escaláveis e confiáveis. Ao executar aplicações web ASP.NET em containers Windows, você não precisará mais se preocupar em rearquitetar ou refatorar seu código-fonte. Além de abordar os sistemas operacionais Windows em EOS, você pode começar (ou continuar) modernizando seus aplicações reconfigurando-as para containers Windows.

Figura 1. Abordagens de migração e modernização: Rehost, Replatform, Refactor
Modernizando aplicações .NET Framework com o App2Container
Pré-requisitos
Para obter mais informações sobre esses pré-requisitos, consulte a documentação aqui.
- Determine se sua aplicação tem alguma dependência subjacente do sistema operacional ou APIs do Windows (por exemplo, interoperabilidade COM) que impeça a migração da aplicação para um novo sistema operacional.
- Defina um sistema operacional Windows de destino com base em seus requisitos organizacionais:
- OBSERVAÇÃO: O Amazon Elastic Container Service (Amazon ECS) e o Amazon Elastic Kubernetes Service (Amazon EKS) são as duas plataformas de orquestração suportadas para executar containers Windows. Recomendamos que você atualize para Windows Server 2022, mas as opções de computação comuns oferecem suporte ao Windows Server 2019 e 2022. O Windows Server 2016 só é suportado em ECS em Amazon Elastic Cloud Compute (Amazon EC2).
3. Certifique-se de que sua aplicação seja compatível com o App2Container (A2C).
4. Determine qual plataforma de orquestração você gostaria de usar. O Amazon ECS e o Amazon EKS são as plataformas suportadas para a criação de containers Windows e artefatos do App2Container.
5. Siga as etapas para configurar uma máquina de trabalho remoto que execute a versão do sistema operacional de destino (Windows Server 2019 ou 2022) e extraia artefatos do servidor de aplicações 2012 de origem.
Você pode encontrar instruções detalhadas no workshop Modernize with AWS App2Container. O resultado, conforme visto na Figura 2, é que a aplicação web .NET foi modernizada na AWS.

Figura 2. Exemplo de modernização .NET para a AWS
1. Descubra e analise sua aplicação.
-
- Execute a análise do App2Container que avalia todos os sites do Internet Information Server (IIS) e serviços Windows em execução no servidor de aplicações.
- Revise o arquivo de saída da análise e, se necessário, ajuste a imagem base do container para ser o sistema operacional de destino desejado. (Por exemplo, mcr.microsoft.com/dotnet/framework/runtime:4.8-windowsservercore-ltsc2022 – imagem .NET Framework 4.8 em Windows Server core 2022). Isso pode ser definido automaticamente para você com base na análise da configuração do IIS e do sistema operacional.
2. Extraia e armazene sua aplicação em container.
-
- Em sua máquina de trabalho remoto, execute o comando extract para gerar um arquivo de configuração para a aplicação especificada. Esse arquivo estará então disponível para ser copiado para sua máquina de trabalho ou para especificar seu prefixo Amazon S3.
- Execute o comando containerize para criar seu Dockerfile.
3. Implemente sua aplicação em container.
4. Faça deploy em produção.
-
- Planeje o cutover da URL pública da sua aplicação legada em execução no Windows Server 2012 para seu novo balanceador de carga que faz o frontend da implantação de aplicações em containers.
- Se sua aplicação não tiver dependências de sistema operacional, as atualizações para futuras versões do sistema operacional serão tão simples quanto implantar um novo servidor de compilação usando o sistema operacional Windows mais recente, alterar a linha FROM no Dockerfile da sua aplicação (conforme mostrado na Figura 3), criar uma nova imagem de container (conforme mostrado na Figura 4) e fazer uma atualização contínua.
Observação: testes apropriados para garantir que não haja mudanças drásticas no sistema operacional subjacente são necessários antes da implementação na produção.
SO em EOS:

Figura 3. Imagem base do container em SO EOS
Novo SO:

Figura 4. Imagem base de container em novo SO no Dockerfile
Para ajudar a entender melhor o processo passo a passo do uso do App2Container, consulte a documentação pública do App2Container. Se você quiser se aprofundar em um caso de uso que também migra seu banco de dados para o Amazon Relational Database Service (Amazon RDS) for SQL Server, consulte o workshop Modernize with AWS App2Container.
Refatorar — .NET Framework para a versão moderna de .NET
Se sua organização estiver pronta para refatorar código .NET Framework para uma versão moderna de .NET, você pode aproveitar o Porting Assistant for .NET e o AWS Toolkit for .NET Refactoring. Ao migrar para .NET 6+, você desbloqueia a capacidade de executar seu código .NET em containers Linux.
Limpeza
Como este blog é um tutorial, você não precisará realizar nenhuma etapa de limpeza. A abordagem passo a passo mostra exatamente como proceder com a atualização.
Resumo
Nesta postagem do blog, orientamos nossos leitores sobre como atualizar e modernizar sua aplicação web .NET usando o AWS App2Container. Na próxima postagem desta série de blogs, analisaremos como usar o AWS Application Migration Service para atualizar um sistema operacional Windows.
Lembre-se de que esta série de blogs em quatro partes discutiu e apresentou muitas opções para lidar com EOS e como a AWS pode ajudar você a resolver esses problemas com o uso de tecnologia, ferramentas e especialistas.
Se você quiser ajuda com a atualização, entre em contato com a AWS para tratar de sua situação e/ou necessidades específicas de EOS.