Recursos para profesionales y entusiastas de IT

[Articulo] Azure | Servicios de Cómputo: Introducción desde cero a Máquinas Virtuales en Azure

19 minutos de lectura

Los Servicios de Cómputo de Microsoft Azure permiten, entre otras cosas la creación de máquinas virtuales (Virtual Machines) en forma rápida y ágil, con la robustez que proporciona esta plataforma.

Hoy en día existe gran cantidad de sistemas operativos que podemos desplegar con Azure, ya sea Windows ó Linux, y con la posibilidad de contar con imágenes personalizadas aque preparemos con características especiales.

En esta publicación vamos a recorrer los principales conceptos y características de las máquinas virtuales desde cero, como así también algunas funcionalidades clave, compatibilidad actual y consideraciones especiales.

 

UPDATE: esta publicación fue actualizada el 10/04/2018. Allí se indica que los conceptos siguen estando vigentes (publicación original del 2016), si bien algunas pantallas del video pueden haber cambiado en el Portal de Azure.

 

Introducción

Objetivo y Alcance

Esta publicación tiene como objetivo demostrar cómo las organizaciones pueden beneficiarse con la flexibilidad de las máquinas virtuales en Microsoft Azure, de modo tal de reducir costos de hardware y aprovechar las posibilidades de variedad de sistemas operativos en la nube que podemos tener con Azure.

El alcance de esta publicación es poder recorrer, en alto nivel, los principales conceptos y características de las máquinas virtuales en Azure, en relación a:

  • Introducción General: introducción, casos de uso, sistemas operativos soportados y software soportado.
  • Tipos de máquinas virtuales existentes y sus instancias.
  • Conceptos y Principios de las Máquinas Virtuales en Azure.

Esta publicación intenta brindar una presentación en 360 grados sobre Azure Virtual Machine, no siendo específico ni de bajo nivel sobre algún tema en particular. Para ello, publicaremos otras entradas en TecTimes.

Audiencia

Este documento está dirigido, fundamentalmente, a profesionales de Infraestructura de IT.

Comentarios y Corrección de Errores

Hemos realizado nuestro mejor esfuerzo para no cometer errores, pero al fin y al cabo somos seres humanos. Si deseás reportar algún error o darnos feedback de qué te pareció esta publicación, por favor no dejes de comunicarte con nosotros a través de correo electrónico a la siguiente dirección: info@tectimes.net.

Desarrollo

Introducción a Máquinas Virtuales en Azure

Con máquinas virtuales de Microsoft Azure, se puede fácilmente provisionar, migrar y administrar equipos virtuales en forma similar a cómo se realiza en una infraestructura on-premises, pero en la nube de Azure. De esta forma podemos sacar ventajas de la virtualización sin tener que mantener el hardware físico en el que se ejecuta. No obstante, el administrador aún deberá ocuparse de mantener el sistema operativo virtualizado y ejecutar tareas de configuración, actualización e instalación del software que ejecute.

Opciones de Máquinas Virtuales en Microsoft Azure

Opciones de Máquinas Virtuales en Microsoft Azure

 

Las máquinas virtuales de Azure pueden ejecutar Windows, Linux y aplicaciones de terceros, como así también se pueden utilizar máquinas aprovisionadas en forma personalizada para subirlas y ejecutarlas en la nube de Azure.

¿En qué casos elegir Máquinas Virtuales?

Los casos de uso para máquinas virtuales

  • Desarrollo y Test – Es una manera rápida y sencilla para crear equipos con configuraciones específicas que faciliten el desarrollo y prueba de aplicaciones para nuestro equipo de desarrollo. Existe el servicio de “Azure Dev/Test” para tal fin, donde se pueden especificar políticas de auto-aprovisionamiento y auto-servicio de equipos para aquellos profesionales no especialistas en Infraestructura.
  • Aplicaciones en la Nube –Dado que no siempre una aplicación web puede alojarse en Plataforma como Servicio (PaaS), a veces por motivos de retrocompatibilidad o aplicación de configuraciones específicas hace sentido tenerla en una máquina virtual.
  • Datacenter Extendido – Gracias a las capacidades de interconexión que tienen las Virtual Networks de Azure, se puede extender nuestro datancenter on-premieses a máquinas virtuales que estén en la nube, sin necesidad de que las mismas estén accesibles a través de Internet pública.

Sistemas Operativos soportados

Actualmente Azure soporta equipos virtuales con Windows y Linux en base a las siguientes configuraciones:

Soporte de Sistemas Operativos para Máquinas Virtuales en Azure

Soporte de Sistemas Operativos para Máquinas Virtuales en Azure

¿Windows Server 2003? SI! Windows Server 2003 está soportado para despliegue en Microsoft Azure. No obstante, su soportabilidad no se extiende al sistema operativo.

Consideraciones de Software Soportado en Windows VMs

En relación a los roles de Windows Server soportados en Azure, podemos destacar a Febrero de 2015:

  • Active Directory Domain Services
  • Active Directory Federation Services
  • Active Directory Lightweight Directory Services
  • Application Server
  • DNS Server
  • File Services
  • Network Policy and Access Services
  • Print and Document Services
  • Remote Access (Web Application Proxy)
  • Remote Desktop Services*
  • Web Server (IIS)
  • Windows Server Update Services

Roles no soportados para Windows Server en Azure son los siguientes a Febrero de 2015:

  • Dynamic Host Configuration Protocol Server
  • Hyper-V (Hyper-V role is supported in Azure Ev3, and Dv3 series VMs only)
  • Remote Access (Direct Access)
  • Rights Management Services
  • Windows Deployment Services

Features no soportados para Windows Server en Azure son los siguientes a Febrero de 2015:

  • BitLocker Drive Encryption (on the operating system hard disk; may be used on data disks).
  • Windows Server Failover Clustering, except for SQL Server AlwaysOn Availability Groups.
  • Internet Storage Name Server.
  • Multipath I/O.
  • Network Load Balancing.
  • Peer Name Resolution Protocol.
  • SNMP Services.
  • Storage Manager for SANs.
  • Windows Internet Name Service.
  • Wireless LAN Service.

Consideraciones de Software Soportado en Linux VMs

Las siguientes tecnologías Open Source están naturalmente soportadas en máquinas virtuales de Azure:

  • Lenguages: PHP, Java, Python, Node.JS.
  • Bases de datos: MySQL.
  • Servidores Web y de Aplicaciones: Apache, Tomcat.
  • Frameworks: WordPress.

La soportabilidad de tecnologías Open Source tiene las siguientes directrices: Microsoft proveerá asistencia SOLO para tecnologías Open Source soportadas. Ahora bien, este soporte está destinado para:

  • Problemas que se encuentren durante la instalación o configuración.
  • Errores de despliegue encontrados cuando los clientes intentan desplegar la aplicación en las plataformas o servicios de Azure.
  • Errores de runtime cuando los cleintes usan las plataformas y servicios de Azure.
  • Problemas de performance con aplicaciones que están soportadas y con tecnologías Open Source en la plataforma o servicios de Azure.

Si se requiere soporte en guías de diseño o desarrollo, como así también asistencia en desarrollo, el soporte de Microsoft redireccionará la solicitud hacia la comunidad, ya sea a través de foros o soporte privado.

Tipos y Tamaños de Máquinas Virtuales

Vamos a conocer en alto nivel los detalles de cada una para entender sus diferencias:

Uso General (General Purpose)

Son equipos para un uso equilibrado de la CPU en proporción de memoria. Ideal para desarrollo y pruebas, bases de datos pequeñas o medianas y servidores web de tráfico bajo o medio. Existen las siguientes instancias:

Instancias de Máquinas Virtuales en Azure para Uso General

Instancias de Máquinas Virtuales en Azure para Uso General

Proceso Optimizado (Compute Optimized)

Son equipos perfectos para el uso elevado de la CPU en proporción de memoria. Bueno para servidores web de tráfico medio, aplicaciones de red, procesos por lotes y servidores de aplicaciones. Existen las siguientes instancias:

Instancias de Máquinas Virtuales en Azure para Proceso Optimizado

Instancias de Máquinas Virtuales en Azure para Proceso Optimizado

Memoria Optimizada (Memory Optimized)

Son equipos con memoria alta en proporción de núcleo. Excelente para servidores de bases de datos relacionales, memorias caché de capacidad media o grande y análisis en memoria. Existen las siguientes instancias:

Instancias de Máquinas Virtuales en Azure para Memoria Optimizada.

Instancias de Máquinas Virtuales en Azure para Memoria Optimizada.

Almacenamiento Optimizado (Storage Optimized)

Equipos que requieren alto rendimiento de disco y E/S. Perfecto para bases de datos SQL y NoSQL y macrodatos. Existen las siguientes instancias:

Instancias de Máquinas Virtuales en Azure para Almacenamiento Optimizado.

Instancias de Máquinas Virtuales en Azure para Almacenamiento Optimizado.

GPU (GPU)

Máquinas virtuales especializadas específicas para la representación de gráficos pesados y la edición de vídeo disponibles con una o varias GPU. Existen las siguientes instancias:

Instancias con GPU.

Instancias con GPU.

Proceso de Alto Rendimiento (High Performance Compute)

Máquinas virtuales de CPU más rápidas y eficaces con interfaces de red de alto rendimiento opcionales (RDMA). Existen las siguientes instancias:

Instancias para Procesamiento de Alto Rendimiento.

Instancias para Procesamiento de Alto Rendimiento.

Costos de las Máquinas Virtuales en Azure

Actualmente existe una calculadora, la cual en base a las entradas del usuario calcula el precio aproximado en moneda local para máquinas y otros componentes de Azure: http://azure.microsoft.com/en-us/pricing/details/virtual-machines/

Conceptos y Principios de las Máquinas Virtuales en Azure

Existen algunos principios y conceptos que son importantes tener claros a la hora de utilizar máquinas virtules en Azure y no morir en el intento. Aquí vamos a repasar los que nos parecieron más importantes de destacar.

Disponiblidad

Si bien Azure funciona en varios centros de datos en el mundo, la disponibilidad de los equipos virtuales (VMs) tiene componentes adicionales que el consumidor debe tener en cuenta. Por ejemplo, Microsoft solicitará anualmente algunas horas de actualización de sus nodos de virtualización, provocando que los equipos virtuales que se alojen dentro se apaguen, reinicien o, simplemente, queden algunos minutos fuera de línea.

Si bien existen algunos mecanismos de actualización con soporte en memoria, podría fallar. Para evitar interrupciones de servicio, o mejor dicho para lograr el 99.95% de servicio garantizado en Azure, es necesario tener los equipos virtuales por lo menos de a pares. Estos pares se pueden ubicar en un “Conjunto de Disponibilidad” (Availability Set) para que cuando Azure requiere un mantenimiento, no apague dos equipos que pertenecen al mismo Availability Set en el mismo momento.

Redes

Una máquina virtual (VM) de Azure se debe relacionar con una red virtual (VNet) nueva o existente. Cada máquina virtual (VM) requiere al menos una interfaz de red (NIC) que permite la interconexión entre una máquina virtual y una red virtual (VNet). Una máquina virtual puede contener varias NIC en función del tamaño de la máquina virtual que se cree.

Existen algunas consideraciones a tener en cuenta sobre NIC y VNets:

  • Todas las NIC que se conectan a una máquina virtual deben existir en la misma ubicación y suscripción que esta.
  • Cada NIC debe estar conectada a una red virtual que exista en la misma ubicación y suscripción de Azure en la que se encuentre la NIC.
  • Una vez creada la NIC, puede cambiar la subred a la que la máquina virtual está conectada, pero no la red virtual.
  • A cada NIC conectada a una máquina virtual se le asigna una dirección MAC que no cambia hasta que se elimine la máquina virtual.

Direcciones IP

En Azure se pueden asignar estos tipos de direcciones IP a una NIC:

  • Direcciones IP públicas: se usan para la comunicación entrante y saliente [sin traducción de direcciones de red (NAT)] con Internet y otros recursos de Azure no conectados a una red virtual. La asignación de una dirección IP pública a una NIC es opcional. Las direcciones IP públicas tienen un cargo nominal y se puede usar un número máximo de ellas por suscripción.
  • Direcciones IP privadas: se usan para la comunicación dentro de una red virtual, una red local e Internet (con NAT). Debe asignar al menos una dirección IP privada a una máquina virtual. Para más información acerca de NAT en Azure, lea Información sobre las conexiones salientes en Azure.

Las direcciones IP públicas se pueden asignar a las máquinas virtuales o a los equilibradores de carga con acceso a Internet. Las direcciones IP privadas se pueden asignar a las máquinas virtuales y a los equilibradores de carga internos. Las direcciones IP se asignan a una máquina virtual mediante una interfaz de red.

Existen dos métodos en los que se asigna una dirección IP a un recurso: dinámico o estático. El predeterminado es el dinámico, en el que no se asigna ninguna dirección IP durante la creación. En su lugar, la dirección IP se asigna cuando se crea una máquina virtual o se inicia una máquina virtual detenida. La dirección IP se libera cuando se detiene o se elimina la máquina virtual.

Network Security Groups

Un grupo de seguridad de red (NSG) contiene una lista de reglas de la lista de control de acceso (ACL) que permiten o deniegan el tráfico de red a subredes, NIC, o ambas. Los grupos de seguridad de red se pueden asociar con subredes o con NIC individuales conectadas a una subred. Si un grupo de seguridad de red está asociado a una subred, las reglas de la ACL se aplican a todas las máquinas virtuales de dicha subred. Además, se puede limitar el tráfico que llega a una NIC individual, para lo que se debe asociar un NSG directamente a la NIC.

Básicamente y en forma simple, los NSG (así se conocen por sus siglas) pueden ser nuestros “Firewalls” en nuestros equipos virtuales, cuyas reglas se seguirán y pueden aplicarse masivamente.

Balanceo de Carga

Las Máquinas Virtuales de Azure pueden integrarse a un Balanceador de Carga Virtual (Azure Load Balancer) para proporcionar una alta disponibilidad a las aplicaciones que se ejecutan en una máquina virtual.

Se puede configurar un equilibrador de carga para equilibrar el tráfico entrante de Internet a las máquinas virtuales o equilibrar el tráfico entre las máquinas virtuales de una red virtual.

Mantenimiento y Actualizaciones

El mantenimiento y actualizaciones de una máquina virtual es responsabilidad del adminsitrador de infraestructura de una organización. Microsoft Azure no actualiza, mantiene ni da soporte como parte del servicio.

Seguridad y Cumplimiento

Microsoft Antimalware para Azure es una funcionalidad gratuita de protección en tiempo real que ayuda a identificar y eliminar virus, spyware y otro software malintencionado.

Azure Security Center ayuda a evita y a detectar las amenazas para las máquinas virtuales, además de a responder a ellas. Security Center proporciona funcionalidades de administración de directivas y supervisión de la seguridad integradas en las suscripciones de Azure, ayuda a detectar las amenazas que podrían pasar desapercibidas y funciona con un amplio ecosistema de soluciones de seguridad.

Con respecto al Cifrado, las máquinas virtuales Windows y Linux, se pueden cifrar los discos virtuales en Azure. Los discos virtuales en máquinas virtuales de Windows se cifran en reposo mediante BitLocker. Los discos virtuales en las máquinas virtuales de Linux se cifran en reposo mediante dm-crypt.

Por último vamos a nombrar a Azure Policy, cuyas directivas pueden utilizarse para definir el comportamiento deseado de las máquinas virtuales Windows y de las máquinas virtuales Linux en su organización. Mediante las directivas, una organización puede aplicar varias convenciones y reglas en toda la empresa. La aplicación del comportamiento deseado puede ayudar a reducir el riesgo a la vez que se contribuye al éxito de la organización.

Resguardo y Recuperación

Para realizar copias de seguridad de máquinas virtuales de Azure que ejecutan cargas de trabajo de producción, use Azure Backup. Azure Backup admite las copias de seguridad coherentes con la aplicación para máquinas virtuales Windows y Linux. Azure Backup crea puntos de recuperación que se almacenan en almacenes de recuperación con redundancia geográfica. Cuando se realiza una restauración desde un punto de recuperación, se puede restaurar toda una máquina virtual o solo determinados archivos.

Conclusiones

En el recorrido de esta publicación, hemos visto las posibilidades que Azure nos ofrece sobre máquinas virtuales, pertenecientes al grupo de Servicios de Cómputo.

Entre varias cosas que hemos visto, las máquinas virtaules nos permiten extender nuestra infraestructura local a la nube pudiendo tener sistemas operativos Windows y Linux con múltiples opciones de aprovisionamiento: plantillas pre-configuradas de Microsoft y plantillas personalizadas del usuario. Existen muchas posibilidades de configuración, tanto de hardware como de software, y hasta la posibilidad de instalar equipos con software pre-instalado como SQL Server, Oracle, etc. Sin lugar a dudas, al momento de pensar en desplegar equipos rápidamente sin necesidad de comprar hardware, esta alternativa es sumamente interesante.

Quedaron fuera de scope en esta publicación aspectos como alta disponibilidad, resguardo y recuperación, y otras funcionalidades avanzadas del servicio. El objetivo era introducir al usuario y administrador en las posibilidades que Azure nos ofrece en este segmento, para luego poder avanzar con otros temas que pronto saldrán publicados en TecTimes.

Espero que este artículo les haya sido útil a todos, y por supuesto como siempre estamos abiertos a dudas, consultas y feedback por parte de todos ustedes.

¡Saludos y hasta la próxima!

Referencias y Links

Te dejamos algunas referencias o links interesantes:

  • https://support.microsoft.com/en-us/help/2941892/support-for-linux-and-open-source-technology-inazure
  • https://support.microsoft.com/en-ie/help/3206074/running-windows-server-2003-on-microsoft-azure
  • https://support.microsoft.com/en-ie/help/2721672/microsoft-server-software-support-for-microsoft-azure-virtual-machines
  • https://support.microsoft.com/en-us/help/4021388/support-for-32-bit-operating-systems-in-azure-virtual-machines

 

Acerca del Autor

Pablo Ariel Di Loreto

Director at TecTimes
Mi nombre es Pablo Ariel Di Loreto, nací en Mayo de 1981 y soy oriundo de la Ciudad de Berazategui, Buenos Aires, Argentina.

Mis lazos con la informática comenzaron en el año 1998, cuando tenía 16 años, y comencé a aprender como administrar servidores bajo la plataforma Microsoft (Windows Server, Exchange Server, IIS, y otros) y a realizar desarrollos de software con tecnologías ASP y PHP. Un tiempo más tarde comencé a trabajar ya en forma productiva en la administración de plataformas y desarrollo de software.

Desde hace varios años he tenido una intensa actividad en las comunidades profesionales, a través de eventos, webcasts, foros y publicaciones diversas. En Abril de 2014 fui reconocido como Most Valuable Professional (MVP) por parte de Microsoft, estando hoy reconocido en las especialidades "Windows and Devices for IT" y "Microsoft Azure".

En la actualidad me desarrollo como Service Delivery Manager en Algeiba (http://www.algeiba.com), una compañía que brinda soluciones y servicios tecnológicos, dirigiendo un Equipo de Trabajo de más de 20 personas. También soy el Director de TecTimes, un Portal de Tecnología que nació en el año 2012 como parte de un proyecto personal de contribución a la comunidad tecnológica en español.

Deja una respuesta

avatar