O blog da AWS
Como atualizar e modernizar Microsoft Windows Server 2012 com containers Windows na AWS
Introdução
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.
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.
-
- Ajuste suas configurações de implantação para incluir artefatos do Amazon ECS ou do Amazon EKS. Em seguida, execute a implementação da aplicação para enviar a imagem de container para o Amazon Elastic Container Registry (Amazon ECR) e faça deploy da sua aplicação no Amazon ECS ou no Amazon EKS.
- Depois que sua aplicação for conteinerizada com sucesso e protegida para acesso público, você estará pronto para planejar seu deploy em produção. O App2Container suporta a criação de pipelines de integração contínua e entrega contínua (CI/CD) para facilitar a implantação de aplicações. O App2Container oferece suporte a várias ferramentas de CI/CD, incluindo CodePipeline, Jenkins e Microsoft Azure DevOps. Para ver uma implantação passo a passo de um pipeline de CI/CD usando o App2Container, consulte a postagem do blog Generating CI/CD Pipelines for Containerized ASP.NET Applications using AWS App2Container.
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.
Novo SO:
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.
- Parte 1: Como atualizar manualmente o Microsoft Windows Server 2012 na AWS
- Parte 2: Como automatizar suas atualizações do Microsoft Windows Server usando o AWS Systems Manager
- Parte 4:
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.
Este artigo foi traduzido do Blog Post da AWS en Inglês.
Sobre os autores
Mike Adams é especialista mundial em go-to-market com a AWS. Seu foco é migrar cargas de trabalho da Microsoft para a AWS e mostrar aos clientes como eles podem obter eficiência operacional e de custo. Antes da AWS, Mike ocupou cargos de marketing de produtos na Ivanti, VMware, Symantec e VERITAS Software. Mike começou sua carreira como analista do setor no Giga Information Group (agora parte da Forrester Research).
Bill Pfeiffer é arquiteto sênior de soluções na Amazon Web Services. Bill está focado em ajudar os clientes a projetar, implementar e desenvolver infraestrutura segura e com custo otimizado. Bill é apaixonado por ajudar os clientes a resolver desafios de negócios com soluções técnicas. Fora do trabalho, Bill gosta de viajar pelos EUA com sua família em seu trailer e competir em Corridas Espartanas de ultramaratona.
GianPaolo Albanese é arquiteto de soluções especializado em workloads Microsoft na Amazon Web Services, com sede na área de Nova York. GP está focado em ajudar os clientes com suas arquiteturas, migrações e otimização de Windows para a nuvem da AWS. GP é um profissional de TI com mais de três décadas de experiência no setor de FinTech, especializado no gerenciamento de infraestruturas de grande escala, migrações e atividades de modernização. Nos últimos dois anos, GP concentrou sua energia em ajudar os clientes a enfrentar os desafios do fim do suporte.
Revisores
Carlos Felicio é Senior Partner Technical Account Manager da AWS LATAM. Atua no mercado de tecnologia nos últimos 22 anos. No seu portfólio trabalhou em diversas consolidações e migrações em ambientes híbridos com workloads Microsoft. No momento trabalha como TAM auxiliando os parceiros em dúvidas e utilização da AWS para prover melhor benefício nos workloads com seus clientes.
Luciano Bernardes é arquiteto de soluções sênior na AWS, focado em workloads Microsoft. Ele trabalha com soluções de infraestrutura há mais de 16 anos, abrangendo cenários locais e na nuvem. Como SA, ele trabalha em estreita colaboração com clientes e parceiros de consultoria nos EUA e na América Latina.