Execute seu workload em ARM64 ou parte dele.
A arquitetura ARM é considerada o futuro da computação em nuvem devido às suas vantagens de baixo consumo de energia, baixo custo, alto desempenho e licenciamento flexível. Portanto, os principais fornecedores de nuvem, liderados por AWS (Amazon Web Services), GCP (Google Cloud Platform), Azure (Microsoft Azure) e OCI (Oracle Cloud Infrastructure), lançaram sucessivamente servidores baseados nessa arquitetura. Vamos explorar os quatro principais provedores e seus produtos.
Com quatro anos de desenvolvimento, desde 2018, o AWS Graviton entrou em sua terceira geração de servidores ARM. A primeira geração de processadores, o AWS Graviton1, foram projetados para oferecer um bom desempenho geral, com foco em workloads leves e de propósito geral. AWS Graviton2, a segunda geração do Graviton, foi lançada em 2019, apresentam uma série de melhorias significativas em relação à geração anterior. Eles são projetados para lidar com uma ampla variedade de workloads, incluindo propósito geral, otimizadas para computação, otimizadas para memória, otimizadas para armazenamento e computação acelerada. AWS Graviton3, a terceira geração do Graviton, instâncias M7g, C7g e R7g, é o mais recente da família. Esses processadores são ainda mais poderosos e avançados em comparação com as gerações anteriores. O Graviton3 oferece um desempenho de computação até 25% melhor em relação ao Graviton2. Além disso, o Graviton3 oferece suporte para memória DDR5, que proporciona 50% mais largura de banda de memória em comparação com a DDR4.
vCPUMemória (GIB)ProcessadorPreçom7g.xlarge416AWS Graviton3$0,1632 / horam6g.xlarge416AWS Graviton2$0,1540 / horam5.xlarge416Intel Xeon$0,1920 / hora
A opção oferecida pela Google Cloud Platform (GCP) é a Tau T2A, lançada em julho de 2022. A Tau T2A vem em diferentes formatos pré-definidos, permitindo escolher a configuração adequada para o workload específico.
Em abril de 2022, a Microsoft anunciou sua família de máquinas virtuais Azure baseadas nos processadores Arm. A nova série de VMs inclui as VMs Dpsv5 e Dplsv5 de propósito geral e as VMs Epsv5 otimizadas para memória.
vCPUMemória (GIB)ProcessadorPreçoD4ps v5416Arm Ampere Altra$0.1540 / horaD4 v5416Intel Xeon$0.1920 / hora
No final de maio de 2021, a Oracle lançou seu primeiro produto de computação baseado em Arm: o OCI Ampere A1 Compute. O principal modelo é o VM.Standard.A1.Flex (OCI A1), cujo núcleo da CPU e a memória podem ser configurados de forma flexível.
vCPUMemória (GIB)ProcessadorPreçoVM.Standard.A1.Flex416Arm Ampere Altra$0,0632 / horaVM.Standard3.Flex416Intel Xeon$0,1040 / hora
*Para cada tenancy as primeiras 3.000 horas de OCPU e 18.000 GB horas de memória por mês é grátis criando instâncias Ampere A1 Compute usando a VM.Standard.A1.Flex (equivalente a 4 OCPUs e 24 GB de memória).
Adicionar um pool de nós ARM64 a um cluster existente pode ser uma ótima opção não apenas para redução de custos, mas também por melhorias de desempenho e esta tarefa é simples. Basta adicionar um novo pool de nós, o que não é diferente de adicionar qualquer outro pool. O tipo de instância da VM que você seleciona para o pool de nós é o que importa. Antes de tentar implantar seu pool de nós, é recomendado verificar se o tipo de instância está disponível em sua região. Após adicionar um novo pool de nós ao seu cluster, você deve aplicar taints aos seus pools de nós existentes para que eles executem apenas os pods desejados e evitem que os pods de aplicativos sejam direcionados para nós onde sua aplicação talvez ainda não esteja pronta.
A última recomendação é usar um nodeSelector na especificação dos pods / deployments a serem implantados. Portanto, definir uma tag kubernetes.io/arch: "arm64" é uma boa ideia para garantir que seu workload ARM64 não seja agendado em nós não-ARM64 ou vice-versa.
Ao escolher entre ARM e Intel nas nuvens, é importante considerar cuidadosamente as necessidades específicas do seu workload, bem como os custos e a disponibilidade das instâncias oferecidas por cada provedor de nuvem. Ao comparar as especificações de vCPUs e memória, é evidente que existe uma diferença significativa nos preços, com a opção de instâncias ARM oferecendo uma economia potencial. No entanto, para tomar uma decisão informada, é altamente recomendável realizar testes de desempenho e avaliar cuidadosamente os custos associados a cada opção. Dessa forma, você poderá determinar qual é a melhor escolha para a sua aplicação, levando em consideração tanto o desempenho quanto a economia.
CONCLUSÃO
Espero que isso o ajude a se preparar para aproveitar os pools de nós baseados em ARM altamente eficientes e com alto desempenho. Como observado, a implantação de pools de nós baseados em ARM64 é fácil. O que pode não ser fácil é garantir que a imagem do seu contêiner e todas as suas camadas básicas suportem várias plataformas. Portanto, você pode precisar ajustar seu Dockerfile, além de modificar seu processo de build do contêiner. A partir daí, você deve adicionar um taint ao pool de nós do sistema e um nodeSelector à especificação do seu pod para garantir que o aplicativo seja agendado nos nós apropriados.