O blog da AWS

Como atualizar e modernizar Microsoft Windows Server 2012 com containers Windows na AWS

Por Mike Adams, Bill Pfeiffer e Gianpaolo Albanese
Esta postagem é a terceira de uma série de quatro partes sobre como atualizar Windows Server 2012 e 2012 R2. O foco desta série é fornecer opções para lidar com o evento de fim de suporte em outubro. A parte 1 apresenta uma visão geral do dilema do fim do suporte, além de como realizar um upgrade in-place manual, juntamente com uma visão do End of Support Migration Program (EMP) . A parte 2 explica como automatizar sua atualização usando o Amazon Systems Manager (SSM ). A mostra como aproveitar as opções de modernização, como o AWS App2Container , para lidar com um upgrade. A demonstra como atualizar o Microsoft Windows Server 2012 usando o AWS Application Migration Service.

Introdução

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.

A flow chart diagram showing the various migration and modernization approaches for a .NET web application.

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.

  1. 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.
  2. 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.

A diagram displaying how a .NET modernized web application is hosted on the AWS Cloud.

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.

    • 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.

SO em EOS:

A command that shows EOS OS Container Base image in DockerFile

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.

 

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.