Microsoft está implantando seus próprios servidores Arm no Azure

Microsoft está implantando seus próprios servidores Arm no Azure

A Microsoft vem executando servidores Arm como parte de Azure já faz algum tempo, inicialmente com hardware Altera Ampere, mas agora com seu próprio hardware Cobalt 100. Os processadores Cobalt são baseados na arquitetura Neoverse da Arm e foram anunciados pela primeira vez há quase um ano, com uma prévia limitada.

O hardware agora está disponível para o público em geral, com servidores localizados em regiões do Azure ao redor do mundo. Nem todas as regiões do Azure os têm ainda, mas conforme os novos racks forem lançados, os servidores serão implantados em mais data centers. Como eles usam menos energia e operam em maior densidade do que outros hardwares do Azure, você deve esperar vê-los em todos os lugares, pois sua implantação ajudará a Microsoft a manter os custos do Azure baixos.

A longa história de silício personalizado da Microsoft

Desenvolver seu próprio silício de servidor não é uma jogada nova para a Microsoft e a Azure. Ela já desenvolveu seu próprio hardware de rede, incluindo chips de compressão over-the-wire e um controlador que funciona com vários cartões de memória flash. Grande parte de seu foco tem sido reduzir os custos de execução de enormes data centers com muitos milhares de clientes. Manter os custos de largura de banda e armazenamento baixos é essencial para fornecer as eficiências necessárias.

É por isso que ela passou a desenvolver seus próprios processadores, parte do que chama de "abordagem de sistemas de ponta a ponta". A Microsoft também está otimizando o software que usa com foco na melhoria do desempenho em relação à linha anterior de servidores Arm de terceiros.

Os números de desempenho citados pela Microsoft parecem promissores. Um aumento de desempenho de duas vezes para aplicativos .NET é uma melhoria definitiva, especialmente quando se trata de código em execução em uma máquina que é nominalmente cerca de 50% mais rápida do que seus predecessores. Parte dessa melhoria se deve a novas opções de armazenamento e rede, que fazem parte de qualquer atualização de hardware do Azure. A Microsoft sugere que há uma melhoria de preço/desempenho de 50% em relação à sua geração anterior de hardware Arm.

Por que Arm no Azure?

A pergunta óbvia, então, é para que servem as VMs baseadas em Cobalt? Se pegarmos uma dica do hardware Graviton Arm da AWS, o foco será em cargas de trabalho de escalabilidade horizontal e front-end, onde há um benefício em ter muitos servidores de baixo consumo e baixo custo com o desempenho que precisamos para aplicativos distribuídos. Você pode esperar que a Microsoft promova o Cobalt como um host para o Azure Kubernetes Service (AKS). Ao mesmo tempo, o Cobalt provavelmente será um alvo de implantação para aplicativos e contêineres .NET baseados em Arm.

Por enquanto, o Azure Container Apps totalmente gerenciado suporta apenas imagens de contêiner x64, mas conforme o Cobalt for lançado, isso provavelmente mudará, mesmo que seja apenas por causa das vantagens de densidade dos servidores baseados em Arm. Como a Microsoft já está usando seu hardware Ampere Altera Arm para muitos de seus próprios serviços sem afetar as operações, é mais do que provável que eles migrem para o Cobalt para aproveitar suas melhorias de desempenho.

Um caso de uso interessante para esse novo hardware é dar suporte ao GitHub Actions. Se você estiver usando o Cobalt para criar e testar aplicativos Arm, por exemplo, para Windows em PCs Arm, você pode hospedar um executor GitHub Action em um sistema de criação hospedado na nuvem, permitindo que você crie, teste, empacote e implante sem sair de um ambiente Arm.

Escolhendo uma máquina virtual Arm

Há três classes de máquinas virtuais baseadas em Cobalt projetadas para oferecer suporte a três conjuntos diferentes de casos de uso, sendo a principal diferença a quantidade de memória disponível para suas VMs.

A primeira, as VMs Dpsv6 e Dpdsv6, são destinadas à maioria das computações de propósito geral e às cargas de trabalho nativas da nuvem mais comuns. Você pode configurá-las com até 96 CPUs virtuais e 384 GB de RAM.

Se você não precisa de tanta RAM, pode escolher a segunda opção, as VMs Dplsv6 e Dpldsv6 que oferecem o mesmo número de vCPUs e até 192 GB de RAM. Elas funcionam bem para pequenas cargas de trabalho, por exemplo, os vários componentes de uma arquitetura de microsserviços.

Na outra ponta da escala, a terceira opção, estão as VMs Epsv6 e Epdsv6. Aqui você pode configurar até 672 GB de RAM, junto com 96 vCPUs. Isso é adequado para aplicativos que precisam de muitos dados na memória, permitindo que você use hardware Arm para serviços como o Redis. Os três modelos de memória diferentes oferecidos pelo Azure parecem cobrir a maioria dos cenários que você esperaria de um aplicativo nativo da nuvem moderno, permitindo que você escolha diferentes VMs para diferentes partes do seu aplicativo.

Há uma ampla escolha de opções de armazenamento, com suporte para todas as opções de armazenamento remoto do Azure. Se você escolher um Dpdsv6, Dpldsv6 ou Epdsv6, sua VM virá com armazenamento NVMe local (o "d" significa disco), então você precisará de um sistema operacional pronto para NVMe. As quantidades de armazenamento variam com o número de vCPUs, começando em 110 GB para um sistema de 2 vCPUs.

Um ponto importante a ser observado com o hardware Cobalt é que você está limitado ao cliente Windows ou Linux; não há suporte para o Windows Server neste momento. Eu entendo que a Microsoft tem suas próprias compilações internas do Arm do Windows Server, mas elas nunca foram lançadas publicamente. Isso pode ser devido às diferenças entre como o hardware Arm e x64 lidam com virtualização e drivers, o que pode causar problemas.

No entanto, a economia e a demanda do cliente são forças poderosas e, embora a transição para o Arm esteja em seus primeiros dias, é provável que a Microsoft eventualmente adicione uma versão do Windows Server à sua plataforma Arm, mesmo que seja apenas para dar suporte a migrações de aplicativos existentes para uma infraestrutura nova e de menor custo.

Introdução ao Cobalt

Trabalhar com hardware Cobalt não é diferente de trabalhar com qualquer outra parte da frota de elementos de infraestrutura do Azure. Você pode usar uma ferramenta do Azure Resource Manager para configurar uma VM. Isso inclui ferramentas de infraestrutura como código de terceiros, como Pulumi ou Terraform.

Então, por exemplo, se você estiver usando o Azure Kubernetes Service, tudo o que você precisa fazer é adicionar um pool de nós baseado em Arm ao seu cluster AKS definindo o tamanho e o nome da VM para a VM Cobalt que você está planejando usar. Você pode encontrar isso na documentação da VM. Por exemplo, se você pretende usar um nó Dpsv6 de 2 vCPUs com 8 GB de RAM, defina o tamanho do nó como Standard_D2ps_v6.

Usar o Cobalt deve ser tão fácil quanto escolher a VM certa e compilar o código para o Arm64. Graças a dispositivos como o Raspberry Pi, há uma plataforma Arm Linux madura pronta para uso que suporta todas as plataformas, ferramentas e serviços que usamos, do .NET ao Kubernetes. Dispositivos como os novos Surfaces com tecnologia Arm da Microsoft executam binários do Arm Linux no Windows Subsystem for Linux, dando a você um ambiente de desenvolvimento Arm para desktop para construir e testar contêineres baseados em Arm.

Com muitas ferramentas de desenvolvimento disponíveis, é simples mover seu código para uma plataforma que requer menos energia e menos espaço para aplicativos de computação em larga escala. Hardware como o Cobalt mostra que já passamos dos dias de pensar no Arm como uma tecnologia para hardware de endpoint na borda de nossas redes. A adoção do Arm pelo Azure mostrou que ele está mais do que pronto para a empresa e o data center.

Conteúdo Relacionado

O Rails 8 sempre foi um divisor de águas...
Na era do declínio do império dos Estados Unidos...
Os aplicativos da Web são uma pedra fundamental da...
O mundo da tecnologia tem estado agitado com discussões...
Os desenvolvedores Java enfrentam uma variedade de erros relacionados...
Com várias décadas de experiência, adoro criar aplicativos corporativos...
A escalabilidade é um fator crítico quando se trata...
Ao trabalhar em um projeto de código aberto no...
A Inteligência Artificial (IA) tem se tornado cada vez...
A maioria das organizações enfrenta desafios ao se adaptar...
Quando nós, desenvolvedores, encontramos alguns bugs em nossos logs,...
A cibersegurança é um tópico cada vez mais importante...
A experiência do desenvolvedor (DX) é um tópico cada...
Ao relatar estatísticas resumidas para resultados de testes de...
Explorando as Engrenagens do Kernel Semântico Falei um pouco...
返回博客

发表评论

请注意,评论必须在发布之前获得批准。