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
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
apara indicar que o processador é AMD. - Geralmente temos a letra
lpara indicar que o valor da memória é o dobro da cpu. - Observei que a letra
moudindica 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:
-
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.
-
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).
-
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