Virtual Machine
Virtual Machine es el servicio insignia de la nube ya que es la computación de propósito general. La gran ventaja de trabajar con VMs en la nube es la facilidad de automatización y escalabilidad comparado con un ambiente on-premise. A pesar de que las nubes ofrecen muchos servicios, generalmente cuando no queremos pagar por un SaaS o tener más control acabamos creando una VM y configuramos lo que queremos.
La desventaja del uso de VMs en lugar de usar otros servicios de Azure es tener que mantener todo actualizado, instalar parches de corrección, bugs y CVEs además de tener la preocupación con alta disponibilidad del servicio haciendo redundancia en diferentes zonas de disponibilidad. Por eso la tendencia del uso de la nube es utilizar siempre que sea posible servicios que estén disponibles antes de partir para ese escenario, salvo en caso de compliance o políticas de la empresa.
El tamaño de la VM elegida será determinado por la carga de trabajo que desea ejecutar, esto involucra capacidad de procesamiento (cantidad de núcleos físicos), cantidad de memoria y capacidad de procesamiento gráfico si es necesario. Necesitamos elegir esa configuración entre las opciones ofrecidas por Azure, diferente de VirtualBox que definimos exactamente cuánto queremos de procesador y memoria en nuestra máquina local. Más abajo hablaremos sobre las familias de VMs.
Una VM necesita almacenamiento que, a pesar de ser definido en el mismo workflow de la creación de la VM, es un recurso separado pues podemos destruir una VM y quedarnos solamente con el disco para atachar en otra VM por ejemplo. La velocidad y la capacidad del disco también pueden ser definidas. El almacenamiento se cobra separadamente.
En Azure, el disco es un VHD (Virtual Hard Disk) almacenado en un almacenamiento gestionado por Azure. Ese VHD es básicamente un archivo que contiene los datos del disco. Ese archivo es guardado en discos físicos que poseen la velocidad elegida.
La creación de un disco es iniciada a partir de una imagen de sistema operativo lista en Azure, como un snapshot. Podemos crear nuestras propias imágenes con todo lo que necesitamos instalado y guardar para iniciar nuevos discos en el futuro con todo listo. En Azure marketplace tenemos muchas imágenes para utilizar y son identificadas por el editor de la imagen, oferta, sku y versión.
Vale recordar que las máquinas virtuales se cobran por minuto. Parar una VM quiere decir que no estará usando más la fuerza de procesamiento y los núcleos físicos y memoria vuelven a estar disponibles en Azure pero su disco está parado. Cuando encienda nuevamente el recurso será realocado para procesamiento de lo que tenemos en el disco.
Otro item que, a pesar de estar en el workflow de la creación de una VM, es un item separado es la interfaz de red (NIC). Podemos definir IP público para una placa de red e incluso la velocidad de banda, en ese caso costos adicionales estarán involucrados.
Algunos detalles sobre precio de VM:
- Una región puede tener máquinas más nuevas que otras, luego no todas las configuraciones de máquinas están disponibles en todas las regiones.
- Para una misma configuración, caso disponible en diferentes regiones, el precio es diferente. Esto ocurre por el costo de la localización, impuestos y otros factores y para nuestra tristeza Brasil es uno de los países más caros del mundo y Estados Unidos el más barato.
- El precio también cambia por el sistema operativo que será ejecutado por cuestión de licencia. Por regla general una máquina Linux es más barata que una máquina Windows.
- La arquitectura del procesador ARM también suele ser más barato que la arquitectura X86.
- La latencia cambiará de acuerdo con la región elegida, luego vale la pena mensurar el costo de tener cualquier cosa en Brasil o en otro lugar. Generalmente es cerca del 35% más caro en Brasil.
Familias de VMs
No podemos configurar exactamente la máquina que queremos, pero tenemos bastantes opciones y con certeza alguna se encajará en tu propósito.
La nomenclatura de las VMs en Azure sigue un patrón que ayuda a identificar rápidamente las principales características de cada VM. El nombre de una VM está compuesto por diferentes partes que indican la familia, el tamaño de la VM, la generación y, en algunos casos, otras características específicas.
La nomenclatura de las VMs en Azure sigue un patrón que ayuda a identificar rápidamente las principales características de cada VM. El nombre de una VM está compuesto por diferentes partes que indican la familia, el tamaño de la VM, la generación y, en algunos casos, otras características específicas.
No existe un patrón exacto para la nomenclatura, pero tenemos algunas pistas por el nombre.
[Familia][Tamaño][Opción de Almacenamiento][Generación]
Componentes de la Nomenclatura:
- Familia:
- B: Económica y Burstable
- D: Uso General
- E: Optimizada para Memoria
- F: Optimizada para CPU
- G: Optimizada para Almacenamiento
- H: Computación de Alto Rendimiento
- L: Optimizada para Almacenamiento
- M: Memoria Extra Grande
- N: Optimizada para GPU
- Tamaño: (En esta parte cambia bastante)
- Un número generalmente asociado a la cantidad de recursos como CPUs y memoria (por ejemplo, 1, 2, 4, 8).
- Cuanto mayor el número, más recursos la VM tendrá.
- Generalmente tenemos la letra
apara indicar que el procesador es AMD. - Generalmente tenemos la letra
lpara indicar que el valor de la memoria es el doble de la cpu. - Observé que la letra
modindica que la memoria es 4 veces la cantidad de cpu.
- Opción de Almacenamiento:
- s: Premium Storage (por ejemplo, D2s_v3).
- v: Indica la versión (por ejemplo, D2s_v3, que es la tercera versión de la D2s).
- m: Indica VMs con memoria aumentada (por ejemplo, B1ms, que tiene memoria más alta para el tamaño).
- Generación:
- v2, v3, etc.: Indica la generación o versión de la VM (por ejemplo, D2_v2 es la segunda generación de la VM D2).
- Otras Características:
- (Híbrido): Indica una VM que puede ser usada para workloads híbridos.
- M (Optimizada para memoria): Como en M-series.
Ejemplos:
-
D2s_v3: D: Familia Uso General. 2: Tamaño de la VM, con 2 vCPUs. s: Soporte a almacenamiento premium (SSD). v3: Tercera generación de esa serie.
-
B2ms: B: Familia Económica y Burstable. 2: Tamaño de la VM, con 2 vCPUs. m: Memoria optimizada. s: Soporte a almacenamiento premium (SSD).
-
NC6: N: Familia Optimizada para GPU. C: Computación basada en GPU. 6: Tamaño de la VM, con 6 vCPUs.
Siempre que vayas a elegir una máquina ve lo que es más viable haciendo un análisis de costo.
https://azure.microsoft.com/en-au/pricing/details/virtual-machines/linux/#pricing