Migrar aplicações do Windows para contêineres - 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á.

Migrar aplicações do Windows para contêineres

Visão geral do

De acordo com a Pesquisa anual da CNCF de 2021, 96% das organizações estão usando ou avaliando contêineres para modernizar sua infraestrutura. Isso ocorre porque os contêineres podem ajudar sua organização a reduzir riscos, aumentar a eficiência e a velocidade operacionais e possibilitar a agilidade. Você também pode usar contêineres para reduzir o custo de execução das suas aplicações. Esta seção oferece recomendações para a execução econômica de contêineres em vários serviços de AWS contêineres, incluindo Amazon Elastic Container Service (Amazon ECS), Amazon Elastic Kubernetes Service (Amazon EKS) e. AWS Fargate

Benefícios de custo

O infográfico a seguir mostra a economia de custos que uma empresa pode obter consolidando seus aplicativos ASP.NET Framework em instâncias do Amazon Elastic Compute Cloud ( EC2Amazon) com base em AWS uma recomendação de Avaliação de Otimização e Licenciamento (OLA).AWS O infográfico a seguir mostra quais economias adicionais podem ser obtidas migrando aplicações para um contêiner Windows.

Consolidação do ASP.NET

O AWS OLA recomendou que a empresa fizesse uma mudança para instâncias t3.small individuais. A empresa poderá obter essas economias executando sete aplicações ASP.NET em servidores on-premises, conforme mostra a análise de performance de utilização a seguir.

Análise da performance de utilização

Uma análise mais aprofundada revelou que a empresa pode economizar ainda mais em custos executando suas workloads em contêineres. Os contêineres reduzem a sobrecarga do sistema operacional sobre os recursos do sistema, como CPU, RAM e uso de disco (explicado na próxima seção). Nesse cenário, a empresa pode consolidar todas as sete aplicações em uma instância t3.large e ainda ter 3 GB de RAM disponíveis. A migração para contêineres pode ajudar a empresa a obter uma economia média de 64% em computação e armazenamento usando contêineres em vez da Amazon. EC2

Recomendações de otimização de custos

A seção a seguir oferece recomendações para otimizar custos consolidando aplicações e usando contêineres.

Reduza sua EC2 presença no Windows na Amazon

Os contêineres do Windows podem reduzir sua EC2 presença no Windows na Amazon, permitindo que você consolide mais aplicativos em menos EC2 instâncias. Por exemplo, vamos supor que você tenha 500 aplicações ASP.NET. Se você estiver executando um núcleo por aplicativo para Windows na Amazon EC2, isso equivale a 500 instâncias do Windows (t3.small). Se você presumir uma proporção de 1:7 (que pode aumentar significativamente dependendo do tipo/tamanho da EC2 instância) para usar contêineres do Windows (com t3.large), precisará apenas de aproximadamente 71 instâncias do Windows. Isso representa uma redução de 85,8% em sua presença no Windows na Amazon EC2 .

Reduzir os custos de licenciamento do Windows

Se você licenciar uma instância do Windows, não precisará licenciar contêineres em execução nessa instância. Como resultado, consolidar suas aplicações ASP.NET usando contêineres Windows pode reduzir significativamente seus custos de licenciamento do Windows.

Reduzir sua pegada de armazenamento

Toda vez que você executa uma nova EC2 instância, você cria e paga por um novo volume do Amazon Elastic Block Store (Amazon EBS) para abrigar o sistema operacional. À medida que isso escala, o custo aumenta com ele. Se você usar contêineres, poderá reduzir os custos de armazenamento porque todos os contêineres compartilham o mesmo sistema operacional básico. Além disso, os contêineres usam o conceito de camadas para reutilizar partes imutáveis de uma imagem de contêiner para todos os contêineres em execução baseados nessa imagem. No cenário de exemplo anterior, todos os contêineres estão executando o .NET Framework e, portanto, todos compartilham a camada intermediária e imutável do framework ASP.NET.

Migre end-of-support servidores para contêineres

O suporte para o Windows Server 2012 e o Windows Server 2012 R2 terminou em 10 de outubro de 2023. Você pode migrar suas aplicações em execução no Windows Server 2012 ou em versões anteriores, colocando-as em contêineres para serem executadas em novos sistemas operacionais. Dessa forma, você evita executar suas aplicações em sistemas operacionais não compatíveis e, ao mesmo tempo, aproveita as eficiências de custo, a redução de riscos, a eficiência operacional, a velocidade e a agilidade que os contêineres oferecem.

Uma ressalva a ser considerada com essa abordagem é se seu aplicativo requer informações específicas APIs relacionadas à versão do sistema operacional atualmente em uso (COM Interop, por exemplo). Nesse caso, é necessário testar a migração da aplicação para uma versão mais recente do Windows. Os contêineres Windows alinham sua imagem de contêiner base (por exemplo, Windows Server 2019) com o sistema operacional do host do contêiner (por exemplo, Windows Server 2019). Testar e migrar para contêineres pode facilitar as atualizações do sistema operacional no futuro, alterando a imagem base em seu Dockerfile e implantando em um novo conjunto de hosts executando a versão mais recente do Windows.

Remover licenças e ferramentas de gerenciamento de terceiros

O gerenciamento de sua frota de servidores requer o uso de várias ferramentas de operação de sistema de terceiros para gerenciamento de patches e configuração. Isso pode tornar o gerenciamento da infraestrutura complexo e, muitas vezes, você incorre em custos de licenciamento de terceiros. Se você usa contêineres AWS, não precisa gerenciar nada no lado do sistema operacional. O runtime do contêiner gerencia os contêineres. Isso significa que o host subjacente é efêmero e pode ser facilmente substituído. Você pode executar seus contêineres sem a necessidade de gerenciar diretamente o host do contêiner. Além disso, você pode usar ferramentas gratuitas, como AWS Systems Manager Session Manager acessar facilmente o host e solucionar problemas.

Melhorar o controle e a portabilidade

Os contêineres oferecem um controle mais granular sobre os recursos do servidor, como CPU e RAM, do que sobre as EC2 instâncias. Para EC2 instâncias, você pode controlar a CPU e a RAM selecionando uma família de instâncias, tipo de instância e opções de CPU. No entanto, com contêineres, você pode definir exatamente quanta CPU ou RAM deseja alocar para um contêiner nas definições de tarefas do ECS ou para pods no Amazon EKS. Na realidade, e recomendável especificar a memória e CPU em nível de contêiner para contêineres Windows. Esse nível de granularidade traz benefícios de custo. Considere o seguinte exemplo de código:

json { "taskDefinitionArn": "arn:aws:ecs:us-east-1:123456789012:task-definition/demo-service:1", "containerDefinitions": [ { "name": "demo-service", "image": "mcr.microsoft.com/dotnet/framework/samples:aspnetapp-windowsservercore-ltsc2019", "cpu": 512, "memory": 512, "links": [], "portMappings": [ { "containerPort": 80, "hostPort": 0, "protocol": "tcp" } ],

Acelerar a inovação

A migração para contêineres facilita a automação das etapas do ciclo de vida de desenvolvimento, que incluem a criação, os testes e a implantação de aplicações. Se você automatizar esses processos, proporcionará às suas equipes de desenvolvimento e operações mais tempo para se concentrar na inovação.

Reduzir o TCO

A migração para contêineres geralmente reduz a dependência das ferramentas de gerenciamento de licenças e de proteção de endpoints. Como os contêineres são unidades de computação efêmeras, você pode automatizar e simplificar as tarefas de gerenciamento, como aplicação de patches, escalabilidade, backup e restauração. Isso pode reduzir o TCO da administração e operação de workloads baseadas em contêineres. Os contêineres são mais eficientes em comparação com as máquinas virtuais porque permitem que você maximize o posicionamento de suas aplicações para que você possa aumentar a utilização dos recursos de infraestrutura da sua aplicação.

Eliminar a lacuna de habilidades

AWS oferece programas e dias de imersão para aprimorar as equipes de desenvolvimento de clientes em contêineres e DevOps tecnologia. Isso inclui consultoria e capacitação práticas.

Refatorar para o .NET 5+ e usar contêineres Linux

Embora você possa reduzir custos migrando suas aplicações .NET Framework para contêineres, é possível obter ainda mais economia de custos ao refatorar aplicações .NET legadas para alternativas nativas da nuvem na AWS.

Remover custos de licenças

Refatorar sua aplicação .NET Framework no Windows para .NET Core no Linux resulta em uma redução de custos de aproximadamente 45%.

Acessar os aprimoramentos mais recentes

Refatorar suas aplicações .NET Framework no Windows para. NET Core no Linux lhe dá acesso aos aprimoramentos mais recentes, como o Graviton2. O Graviton2 oferece um preço de performance 40% melhor do que instâncias comparáveis.

Melhorar a segurança e a performance

Refatorar sua aplicação .NET Framework no Windows para .NET Core em contêineres Linux traz melhorias na segurança e na performance. Isso ocorre porque você obtém os patches de segurança mais recentes, beneficia-se do isolamento de contêineres e tem acesso a novos recursos.

Usar contêineres Windows em vez de executar várias aplicações em uma instância do IIS

Considere as seguintes vantagens de usar contêineres do Windows em vez de executar vários aplicativos em uma instância EC2 do Windows com os Serviços de Informações da Internet (IIS):

  • Segurança: os contêineres fornecem um nível de segurança pronto para uso que não é alcançado por meio do isolamento no nível do IIS. Se um site ou aplicação do IIS for comprometido, todos os outros sites hospedados ficarão expostos e vulneráveis. O escape de contêiner é raro e representa uma vulnerabilidade mais difícil de ser explorada do que assumir o controle de um servidor por meio de uma vulnerabilidade na web.

  • Flexibilidade: a capacidade de executar contêineres isoladamente no processo e ter sua própria instância permite opções de rede mais granulares. Os contêineres também oferecem métodos complexos de distribuição em várias EC2 instâncias. Você não obtém esses benefícios ao consolidar aplicações em uma única instância do IIS.

  • Sobrecarga de gerenciamento: a Indicação do nome do servidor (SNI) cria uma sobrecarga que requer gerenciamento e automação. Além disso, você precisa lidar com operações típicas de gerenciamento do sistema operacional, como aplicação de patches, solução de problemas de BSOD (se o ajuste de escala automático não estiver em vigor), proteção de endpoints e assim por diante. Configurar sites do IIS de acordo com as práticas recomendadas de segurança é uma atividade demorada e contínua. Talvez você até precise configurar níveis de confiança, o que também aumenta a sobrecarga de gerenciamento. Os contêineres são projetados para serem sem estado e imutáveis. Em última análise, suas implantações serão mais rápidas, mais seguras e reproduzíveis se você usar contêineres Windows.

Próximas etapas

Investir em uma infraestrutura moderna para executar suas cargas de trabalho legadas traz imensos benefícios para sua organização. AWS os serviços de contêiner facilitam o gerenciamento de sua infraestrutura subjacente, seja no local ou na nuvem, para que você possa se concentrar na inovação e nas necessidades de sua empresa. Quase 80% de todos os contêineres na nuvem funcionam AWS atualmente. AWS fornece um rico conjunto de serviços de contêiner para praticamente todos os casos de uso. Para começar, consulte Contêineres na AWS.

Recursos adicionais do