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á.
Migração de aplicações .NET
A migração de seus aplicativos.NET AWS permite que você crie cargas de trabalho altamente disponíveis com recursos de escalabilidade elástica, reduza a sobrecarga operacional e aumente a agilidade de seus negócios concentrando-se em seu valor diferenciador.
Esta seção se concentra nas diferentes opções para hospedar seus aplicativos.NET em AWS. Você pode escolher entre usar uma VM, uma solução gerenciada AWS Elastic Beanstalk
Avaliar
A escolha de um caminho de migração para sua workload .NET depende dos seguintes fatores principais:
-
Encontrar a versão .NET usada: há duas diferentes implementações do .NET que contam com o suporte da Microsoft: .NET Framework (1.0 a 4.8) e .NET (.NET Core 1.0 a 3.1 e .NET 5 e mais recente). Ambas compartilham muitos dos mesmos componentes e podem executar código de aplicação escrito usando as diferentes linguagens de programação .NET (como C#, F# e VB.NET). A escolha de uma estratégia de migração e de um serviço de hospedagem depende do runtime usado, uma vez que o .NET Framework é executado no Windows, enquanto o .NET mais recente é multiplataforma. No .NET Framework, você pode hospedar em um sistema operacional Windows ou refatorar seu código para usar o .NET mais novo. O .NET mais novo também pode ser hospedado em serviços baseados no sistema operacional Linux. Ao modernizar workloads baseadas no .NET Framework, você pode usar o Assistente de Portabilidade para .NET
ou o AWS Toolkit for .NET Refactoring para verificar seu código e gerar um relatório de avaliação de compatibilidade. Ao descobrir se há o.NET Framework incompatível APIs referenciado pelo seu projeto, você pode planejar a complexidade de um projeto de migração e decidir se e quando refatorar seu código para usar um tempo de execução mais novo. -
Revise sua implantação atual — Verifique se a carga de trabalho migrada atualmente tem CI/CD pipelines existentes que podem ser atualizados para implantar as mesmas cargas de trabalho na nuvem. O uso de um pipeline existente de criação e implantação pode reduzir o tempo necessário para implantar sua aplicação na nuvem, automatizando as etapas necessárias para criar, configurar e implantar suas workloads.
-
Revisar seu roteiro: dependendo do estado atual do projeto, talvez você já esteja planejando redefinir a arquitetura ou o design das suas aplicações. Qualquer modernização feita deve levar em consideração o roteiro do produto. Por exemplo, a decisão de conteinerizar o código existente ou refatorar uma arquitetura monolítica em microsserviços é, idealmente, parte do roteiro do produto e está alinhada com outros esforços de desenvolvimento.
Mobilizar
Há três caminhos de migração diferentes a serem considerados ao migrar suas cargas de trabalho do.NET para. AWS Você pode escolher entre as diferentes opções, dependendo da complexidade de sua base de código existente, do tempo alocado para a migração e do tamanho da equipe alocada para apoiar o trabalho de migração. Ao considerar a modernização como parte de sua migração, é uma prática recomendada estar alinhado ao roteiro do produto.
-
Rehospedar (lift & shift) — Você pode escolher essa abordagem se sua prioridade for uma migração mais rápida, AWS com pouca ou nenhuma alteração. Você pode rehospedar sites baseados em ASP.NET nos Serviços de Informações da Internet (IIS) executados em instâncias da Amazon. EC2 Você pode rehospedar seus aplicativos baseados em desktop (como Windows Presentation Foundation, Web Forms e .NET MAUI) em uma das plataformas de computação do usuário final, como Amazon 2.0 AppStream
ou Amazon. WorkSpaces -
Redefinir a plataforma: a redefinição da plataforma é mais adequada para quando você deseja hospedar sua aplicação usando um serviço gerenciado sem fazer alterações de código, mas quer reduzir a sobrecarga operacional descarregando tarefas pesadas indiferenciadas, como instalação, aplicação de patches, atualizações e gerenciamento de instâncias. Essa estratégia também é adequada para equipes que desejam migrar para workloads baseadas em contêiner. Você pode reformatar seus aplicativos existentes para o Elastic Beanstalk
ou usar contêineres Docker hospedados no Amazon ECS, Amazon EKS ou. AWS App Runner -
Refatorar — Escolha essa abordagem se você puder investir tempo e esforço em fazer alterações no código e na arquitetura que reduzam a sobrecarga operacional e obtenham melhor escalabilidade, alta disponibilidade e recuperação de desastres usando AWS serviços nativos da nuvem. A refatoração envolve a modernização de sua base de código portando as aplicações existentes do .NET Framework para o .NET (anteriormente .NET Core) ou modernizando uma base de código existente para funcionar melhor na nuvem. Você pode usar o AWS SDK para .NET
para chamar vários serviços de AWS nuvem de dentro do seu código.NET. Ferramentas como o Porting Assistant para .NET AWS Microservice Extractor for .NET podem ser usadas para portar sua base de código do.NET Framework para o.NET e dividir seu aplicativo monolítico em microsserviços. Ao refatorar suas cargas de trabalho.NET existentes para execução AWS Lambda , você pode usar a computação sem servidor para evitar o provisionamento e o gerenciamento da infraestrutura.
Migrar
As etapas da migração de suas workloads .NET dependem do caminho de migração que você escolheu durante a fase de avaliação e do tipo de aplicação.
Redefinir a hospedagem das aplicações .NET
Escolha esse caminho de migração se quiser migrar sua aplicação sem fazer nenhuma alteração de código, mas quiser aproveitar a escala automática, o balanceamento de carga e a elasticidade na nuvem. Para sites baseados em Windows, a nova hospedagem geralmente significa executá-los nos Serviços de Informações da Internet (IIS). AWS Para aplicações baseadas em desktop, você deve instalar a aplicação e permitir que os usuários se conectem a ela externamente.
Serviços de informações da Internet em AWS
O Internet Information Services (IIS) é um servidor web da Microsoft executado em um sistema operacional Windows e usado para hospedar sites e serviços web. O IIS pode ser instalado em qualquer EC2 instância da Amazon executando o Windows Server. Depois que o IIS estiver habilitado e configurado, você poderá implantar seus sites e serviços ASP.NET usando o mesmo mecanismo de implantação que usa para ambientes on-premises.
Se você hospeda o IIS em instâncias EC2 do Windows, é importante seguir o AWS Well-Architected
Hospedando aplicativos de desktop em AWS
Muitos clientes precisam acessar aplicações thick client baseadas em Windows. Você pode escolher entre três diferentes plataformas:
-
Amazon EC2
— Escolha essa opção se quiser que seus usuários se conectem a um ambiente baseado no Windows Server usando o Microsoft Remote Desktop. Com essa opção, você é responsável por corrigir e manter seu sistema operacional. Você também deve comprar licenças adicionais de acesso de cliente (RDS CALs) dos Serviços de Área de Trabalho Remota para seus usuários e o Software Assurance (SA) ativo . Para obter mais informações, consulte Licenciamento da Microsoft AWS na AWS documentação. -
Amazon WorkSpaces
— Escolha essa opção se você precisar de uma infraestrutura de desktop virtual (VDI) totalmente gerenciada para seus usuários. Você pode usar WorkSpaces para fornecer uma experiência persistente do Windows Desktop aos seus usuários. Você também pode personalizar seu WorkSpaces ambiente e instalar aplicativos.NET usando uma imagem personalizada ou usar AWS Systems Manager para entregar seus aplicativos.NET aos seus WorkSpaces ambientes. Os usuários podem se conectar usando o navegador ou o WorkSpacescliente Amazon . -
Amazon AppStream 2.0
— Escolha essa opção para fornecer acesso seguro, confiável e escalável a aplicativos e desktops não persistentes de qualquer local. Você pode usar AppStream 2.0 para permitir que seus usuários acessem seus aplicativos.NET pela web. Se você já tiver o RDS existente CALs e o SA ativo, poderá usar essas licenças com AppStream 2.0 usando a Mobilidade de Licenças .
Redefinir a plataforma
A redefinição da plataforma envolve mudar seu ambiente de hospedagem com pouca ou nenhuma alteração de código. Escolha essa estratégia para reduzir a sobrecarga operacional e aproveitar os recursos e serviços da nuvem.
AWS Elastic Beanstalk
Você pode usar AWS Elastic Beanstalk
Para saber mais, consulte os seguintes recursos:
-
Criação e implantação de aplicativos.NET no Elastic Beanstalk (documentação do Elastic Beanstalk)
-
Trabalhando com o.NET Core no Linux (documentação do Elastic Beanstalk)
-
Support para vários aplicativos com domínios personalizados para.NET e AWS Elastic Beanstalk
(AWS Developer Tools Blog)
Conteinerizar aplicações existentes
Você pode usar o Amazon ECS ou o Amazon EKS para hospedar seus aplicativos em contêineres baseados em Docker. AWS gerencia os dois serviços. A escolha entre os dois depende do conhecimento existente e da preferência. Ambas as opções podem executar contêineres baseados em Linux ou Windows.
Para saber mais, consulte os seguintes recursos:
-
Contêineres EC2 do Amazon Windows (documentação do Amazon ECS)
-
Habilitando o suporte do Windows para seu cluster Amazon EKS (documentação do Amazon EKS)
-
Executando contêineres do Windows com o Amazon ECS em AWS Fargate
(AWS Blog) -
Início rápido: CI/CD para aplicativos.NET em AWS Fargate
(AWS documentação)
A conteinerização de aplicações baseadas em .NET depende do runtime usado do .NET. Considere o seguinte:
-
Aplicações baseadas em .NET Framework são executadas em contêineres do Windows: a adição do suporte do Docker às aplicações é feita por meio da criação de um arquivo do Docker que descreve como a aplicação precisa ser conteinerizada. Você pode usar AWS App2Container
para colocar em contêineres e migrar facilmente os aplicativos existentes baseados em.NET Framework para o. AWS O App2Container verifica o servidor IIS para identificar os arquivos necessários e extrair a aplicação de destino para criar uma imagem do Docker. Você também pode usar o App2Container para criar os artefatos de implantação necessários para hospedar seu aplicativo no. Nuvem AWS -
.NET ou .NET Core — Além de executar novos aplicativos web baseados em .NET no Amazon ECS ou no Amazon EKS, você também pode usar. AWS App Runner
O App Runner é uma solução totalmente gerenciada e sem servidor que executa imagem de código ou contêiner e gerencia balanceamento de carga, ajuste de escala automático, registro em log, certificados e rede.
Refatorar/redefinir a arquitetura de código existente
Escolha essa opção se você tiver uma forte necessidade comercial de adicionar recursos, escala ou desempenho que, de outra forma, seriam difíceis de alcançar no ambiente atual do aplicativo. Dependendo do roteiro da aplicação, você pode optar por alterar seu código para usar a estrutura mais recente, os serviços nativos da nuvem ou redefinir a arquitetura para melhor execução na nuvem.
A primeira opção de refatoração disponível é migrar sua aplicação .NET Framework existente para o .NET. A mudança para o .NET oferece a vantagem de execução no Linux em vez do Windows. Isso reduz o custo total de licenciamento, fornece as estruturas mais recentes e oferece as versões mais novas das linguagens de programação .NET.
AWS SDK para .NET
AWS SDK para .NET
Modernizar aplicações .NET Framework
Você pode migrar do .NET Framework usando o Assistente de Portabilidade para .NET
Monólito para microsserviços
Muitas equipes de desenvolvimento desejam redefinir a arquitetura de suas aplicações monolíticas existentes em microsserviços. Ao migrar para arquiteturas baseadas em microsserviços, suas equipes de desenvolvimento podem aumentar a agilidade do desenvolvimento, diminuir os custos de computação, escalar os serviços individualmente e diminuir os tempos de implantação. AWS Microservice Extractor for .NET
Refatorar aplicações com a tecnologia sem servidor
AWS Lambda
Recursos adicionais
-
Amazon CodeCatalyst
(CodeCatalystdocumentação) -
AWS Toolkit for Azure DevOps
(AWS documentação) -
Configurando um CI/CD pipeline integrando o Jenkins com AWS CodeBuild e AWS CodeDeploy
(AWS DevOps Blog) -
Sobre a ferramenta de AWS implantação para.NET
(AWS GitHub) -
.NET em AWS
(AWS documentação) -
aws/dotnet
() GitHub