Pular para o conteúdo principal

Virtual Machine

Virtual Machine é o carro-chefe da cloud pois é a computação de propósito geral. A grande vantagem de trabalhar com VMs na cloud é a facilidade de automação e escalabilidade comparado a um ambiente on-premise. Apesar das clouds oferecerem muitos serviços, geralmente quando não queremos pagar por um SaaS ou ter mais controle acabamos criando uma VM e configuramos o que queremos.

A desvantagem do uso de VMs ao invés de usar outros serviços da Azure é ter que manter tudo atualizado, instalar patches de correção, bugs e CVEs além de ter a preocupação com alta disponibilidade do serviço fazendo redundância em diferentes zonas de disponibilidade. Por isso a tendência do uso da cloud é utilizar sempre que possível serviços que estejam disponíveis antes de partir para esse cenário, salvo em caso de compliance ou políticas da empresa.

O tamanho da VM escolhida será determinado pela carga de trabalho que deseja executar, isso envolve capacidade de processamento (quantidade de núcleos físicos), quantidade de memória e capacidade de processamento gráfico se necessário. Precisamos escolher essa configuração dentre as opções oferecidas pela Azure, diferente do VirtualBox que definimos exatamente quanto queremos de processador e memória na nossa máquina local. Mais abaixo falaremos sobre as famílias de VMs.

Uma VM precisa de armazenamento que, apesar de ser definido no mesmo workflow da criação da VM, é um recurso separado pois podemos destruir uma VM e ficar somente com o disco para atachar em outra VM por exemplo. A velocidade e a capacidade do disco também podem ser definidas. O armazenamento é cobrado separadamente.

Na Azure, o disco é um VHD (Virtual Hard Disk) armazenado em um armazenamento gerenciado pela Azure. Esse VHD é basicamente um arquivo que contém os dados do disco. Esse arquivo é guardado em discos físicos que possuem a velocidade escolhida.

A criação de um disco é iniciado a partir de uma imagem de sistema operacional pronta na Azure, como um snapshot. Podemos criar nossas próprias imagens com tudo que precisamos instalado e salvar para iniciar novos discos no futuro com tudo pronto. No Azure marketplace temos muitas imagens para utilizar e são identificadas pelo editor da imagem, oferta, sku e versão.

Vale lembrar que máquinas virtuais são cobradas por minuto. Parar uma VM quer dizer que você não estará usando mais a força de processamento e os núcleos físicos e memória voltam a ficar disponíveis na Azure mas o seu disco está parado. Quando ligar novamente o recurso será realocado para processamento do que temos no disco.

Outro item que, apesar de estar no workflow da criação de uma VM, é um item separado é a interface de rede (NIC). Podemos definir IP público para uma placa de rede e até mesmo a velocidade de banda, nesse caso custos adicionais serão envolvidos.

Alguns detalhes sobre preço de VM:

  • Uma região pode ter máquinas mais novas que outras, logo nem todas as configurações de máquinas estão disponíveis em todas as regiões.
  • Para uma mesma configuração, caso disponível em diferentes regiões, o preço é diferente. Isso acontece pelo custo da localização, impostos e outros fatores e para a nossa tristeza o Brasil é um dos países mais caros do mundo e o Estados Unidos o mais barato.
  • O preço também muda pelo sistema operacional que será executado por questão de licença. Via de regra uma máquina Linux é mais barata que uma máquina Windows.
  • A arquitetura do processador ARM também costuma ser mais barato que a arquitetura X86.
  • A latência irá mudar de acordo com a região escolhida, logo vale a pena mensurar o custo de ter qualquer coisa no Brasil ou em outro lugar. Geralmente é cerca de 35% mais caro no Brasil.

Famílias de VMs

Documentação

Não podemos configurar exatamente a máquina que queremos, mas temos bastantes opções e com certeza alguma se encaixará no seu propósito.

A nomenclatura das VMs na Azure segue um padrão que ajuda a identificar rapidamente as principais características de cada VM. O nome de uma VM é composto por diferentes partes que indicam a família, o tamanho da VM, a geração e, em alguns casos, outras características específicas.

A nomenclatura das VMs na Azure segue um padrão que ajuda a identificar rapidamente as principais características de cada VM. O nome de uma VM é composto por diferentes partes que indicam a família, o tamanho da VM, a geração e, em alguns casos, outras características específicas.

Não existe um padrão exato para a nomenclatura, mas temos algumas pistas pelo nome.

[Família][Tamanho][Opção de Armazenamento][Geração]

Componentes da Nomenclatura:

  • Família:
    • B: Econômica e Burstável
    • D: Uso Geral
    • E: Otimizada para Memória
    • F: Otimizada para CPU
    • G: Otimizada para Armazenamento
    • H: Computação de Alta Performance
    • L: Otimizada para Armazenamento
    • M: Memória Extra Grande
    • N: Otimizada para GPU
  • Tamanho: (Nessa parte muda bastante)
    • Um número geralmente associado à quantidade de recursos como CPUs e memória (por exemplo, 1, 2, 4, 8).
    • Quanto maior o número, mais recursos a VM terá.
    • Geralmente temos a letra a para indicar que o processador é AMD.
    • Geralmente temos a letra l para indicar que o valor da memória é o dobro da cpu.
    • Observei que a letra m ou d indica que a memória é 4 vezes a quantidade de cpu.
  • Opção de Armazenamento:
    • s: Premium Storage (por exemplo, D2s_v3).
    • v: Indica a versão (por exemplo, D2s_v3, que é a terceira versão da D2s).
    • m: Indica VMs com memória aumentada (por exemplo, B1ms, que tem memória mais alta para o tamanho).
  • Geração:
    • v2, v3, etc.: Indica a geração ou versão da VM (por exemplo, D2_v2 é a segunda geração da VM D2).
  • Outras Características:
    • (Híbrido): Indica uma VM que pode ser usada para workloads híbridos.
    • M (Otimizada para memória): Como em M-series.

Exemplos:

  1. D2s_v3: D: Família Uso Geral. 2: Tamanho da VM, com 2 vCPUs. s: Suporte a armazenamento premium (SSD). v3: Terceira geração dessa série.

  2. B2ms: B: Família Econômica e Burstável. 2: Tamanho da VM, com 2 vCPUs. m: Memória otimizada. s: Suporte a armazenamento premium (SSD).

  3. NC6: N: Família Otimizada para GPU. C: Computação baseada em GPU. 6: Tamanho da VM, com 6 vCPUs.

Sempre que for escolher uma máquina veja o que é mais viável fazendo uma análise de custo.

https://azure.microsoft.com/en-au/pricing/details/virtual-machines/linux/#pricing