Evaluación de Windows Azure: más allá de la nube y hasta la luna

Hace mucho tiempo, Bill Gates comparó a MSN con la explosión de la World Wide Web, vio el futuro, y viró para abrazar la Internet. Décadas más tarde, alguien en Microsoft miró la nube y reconoció que los viejos tiempos de la venta de licencias de Windows Server OS se estaban desvaneciendo. Hoy contamos con Windows Azure, la oferta de Microsoft para la nube.
 
Azure es una nube llena de bastidores y de máquinas como otras nubes, pero también ofrece una colección más amplia de bloques que las empresas necesitan para montar sitios web modernos y flexibles. Hay ofertas comunes, tales como máquinas virtuales, bases de datos y módulos de almacenamiento, junto con adiciones no tan comunes como paquetes de servicios, redes y conexiones a los verificadores de datos de direcciones de granjas, datos de localización, y el propio motor de búsqueda de Microsoft, Bing. También hay herramientas para depurar el código, enviar correos electrónicos, y para la instalación de bases de datos como la versión MongoDB y ClearDB de MySQL.
 
Todo esto muestra que Microsoft está tratando activamente de construir un sistema que permita que los desarrolladores produzcan una fácilmente una página web de trabajo utilizando las herramientas de su elección. Azure no solo entrega los productos básicos para las máquinas de Microsoft y le deja el resto a usted, está empezando a hacer que sea más fácil juntar todas las piezas. El proceso todavía no es sencillo, pero es considerablemente más conveniente que el viejo paradigma.
 
Azure no solo para Windows
El servicio Azure es un regalo del cielo para los que están invirtiendo fuertemente en los sistemas operativos de Microsoft. Muchas de las grandes nubes solo ofrecen máquinas Linux o BSD. Rackspace cobra un 33% por construir un servidor de Microsoft Windows, pero Azure alquila una máquina Windows a la misma tarifa que Linux.
 
¿Dije igual que Linux? Sí, ya que Microsoft está adoptando muchas tecnologías de código abierto con Azure. Puede arrancar una máquina virtual e instalar algunas de las populares distribuciones de Linux como Ubuntu Server 12.04 u OpenSuse 12,1. No hay muchas opciones de distros de código abierto, pero Microsoft ha elegido algunas de los más populares. Cuestan lo mismo que el estándar de Windows Server 2008 R2 y Windows Server 2012.
 
El acercamiento de Microsoft al código abierto es total con Azure. La compañía está impulsando PHP, Node.js, Python, Java (si se considera a Java como de código abierto), e incluso MySQL. Bueno, eso no es exactamente cierto. Puede crear versiones de Drupal o WordPress, y Azure instalará MySQL back-ends por usted. Si va a la pestaña SQL para poner en marcha su propia base de datos SQL, puede aprovisionar una instancia de Microsoft SQL Server, pero no hay mención de MySQL. Esto se debe a que Microsoft está dejando que un tercero, ClearDB, entregue MySQL. Se trata de solo una de una docena de extras que puede comprar.
 
Los sitios web con Drupal o WordPress son algunas de las opciones disponibles. Microsoft le permitirá tener un máximo de 10 unidades gratis con su cuenta. A continuación, saca el código HTML o PHP con Git, y el servidor se encarga del resto. (Nótese el abrazo de Git también).
 
Estas opciones son libres. Si su sitio web despega y comienza a recibir tráfico, se puede actualizar a los servicios compartidos o máquinas completamente administradas que pueden equilibrar la carga. La documentación es un poco cautelosa sobre lo que sucede cuando comienza a jugar con el panel de control de escala, pero obtiene mejores garantías de servicio y menos cuellos de botella. Si se muda a la configuración reservada, obtiene máquinas virtuales con garantía de recursos. Esta es una manera muy simple de construir y probar un sitio web antes de implementarlo para la producción.
 
Toque la cadena de herramientas de Microsoft
La construcción de un sitio web simple prueba solo una pequeña parte de lo que hay disponible. Microsoft ofrece la mayor mezcla heterogénea de golosinas para los programadores empresariales de todas las nubes que he visto -sin duda porque la empresa es también una de las creadoras de las herramientas dominantes de programación. En Azure, Microsoft ha conectado los servicios con las herramientas para que pueda crear, por ejemplo, un "servicio móvil", al igual que arranca un servicio virtual. Mientras que las otras nubes están vendiendo una máquina de uso común, Microsoft está tratando de llevarla un poco más lejos.
 
La integración no es tan sencilla como podría ser. Pero mientras deje que gran parte del trabajo dependa de usted, es estupendo hacer unos cuantos clics y descargar un proyecto de Visual Studio con el andamiaje para el almacenamiento de datos en Azure. No obstante, debe utilizar Visual Studio para crear la aplicación, pero Microsoft está tratando de hacer que sea más fácil poder crear una aplicación para el teléfono Windows 8 que almacene sus datos con Azure.
 
Lo que es aún más sorprendente es la pestaña iOS al lado de la pestaña de Windows 8. Si hace clic allí, puede descargar un archivo del proyecto Apple Xcode para su Mac. Su servicio back-end de Windows también puede soportar una aplicación iOS. Microsoft no solo está abrazando código abierto, sino también el nuevo Borg, el iPhone.
 
A pesar de este desvío, la mayoría de las opciones y gran parte de la diversión están reservadas para Windows y los programadores de Microsoft SQL. Puede crear un servicio en la nube que envuelve una base de datos con SDK de Microsoft. A continuación, puede desplegarlo por primera vez al servidor de ensayo, a continuación, empújelo hacia producción. Se trata de una infraestructura bastante agradable. También tiene un poco de profundidad SDK. No es posible cubrir todo aquí, un sentimiento que tuve a menudo mientras experimentaba con Azure.
 
Al crear sus propias bases de datos Microsoft SQL con Azure, paga por gigabyte. Las bases de datos empiezan costando cinco dólares por 100 MB al mes, pero el costo por byte cae rápidamente. Una base de datos de 10GB cuesta sólo 45,96 dólares.
 
Vale la pena mencionar que no es necesario trabajar con el plan pague lo que consume de Microsoft. La empresa da importantes descuentos (20% a 32%) si hace un compromiso y paga por adelantado. Si se pasa de lo que se comprometió a comprar, Microsoft le cobra el exceso a la tarifa estándar. Los acuerdos de compromiso mensuales entran en juego solo cuando se compromete a utilizar un valor de 500 dólares de servicios por mes.
 
SQL no es la única opción -Microsoft sigue estando ahí. Si lo desea, puede alojar su información en blobs, tablas y colas en un almacén de datos que pueden ser localmente redundantes o "geo redundantes". En otras palabras, se puede replicar en un centro de datos o en todo el país. El tamaño puede ser bastante grande. A modo de ejemplo, 1.025GB de almacenamiento geo redundante cuesta 128,12 dólares al mes. Microsoft también le cobrará por cada "transacción de almacenamiento", pero estos parecen bastante baratos. La calculadora de precios me dijo 90 centavos por nueve millones. ¿Alguien más ofrece precios en centavos de dólar?
 
 
 
Benchmarking del rendimiento Azure
¿Los precios de Azure son buenos? Decidí tomar la máquina de oferta para tener algunos puntos de referencia de Java. Aunque Java puede no ser el idioma más utilizado en estas máquinas, la amplia documentación de Microsoft incluye instrucciones para construir una máquina de Java para hacer el cálculo. Está enumerada junto a C#, Node, y PHP.
 
La máquina "extra pequeña" con 768MB de RAM y un núcleo compartido se vende a solo 1,3 centavos de dólar por hora o 9,36 dólares al mes. Esa "vista previa" de precios es más barata que la de cualquier otra máquina de nube que haya visto -incluyendo la máquina de primera generación Rackspace de 256MB que se vende a 1,5 centavos de dólar por hora. Esto no es una comparación exacta, porque ese precio solo le lleva un sistema Linux. Las máquinas Windows de Rackspace son más caras.
 
Cargué la última Oracle JVM en una imagen de Windows Server 2008 R2 y empezó a subir los puntos de referencia DaCapo. El rendimiento fue abrumadoramente diferente en comparación con otros servidores de gama baja que construí en Rackspace y Joyent. Las diferencias entre las máquinas, llamadas a sí mismas económicas, continúa sorprendiéndome.
 
La simulación Avrora de eventos paralelos, por ejemplo, fue más del doble de rápido en la máquina de Azure que en la de Joyent o en las cajas de Rackspace, pero el punto de referencia del servidor Tomcat fue de dos a cinco veces más lento. El índice de referencia de indexación Lucene fue dramáticamente más lento en Azure, pero la búsqueda de un índice de Lucene fue dramáticamente más rápido. Todo esto demuestra que tiene que probar su propio código en cada plataforma si quiere exprimir un rendimiento óptimo.
 
¿Lo comprará? La velocidad de prueba de la máquina puede variar de acuerdo con los puntos de referencia individuales, pero los resultados generales son los mismos. Si está buscando una máquina barata, es un buen precio.
 
No sé cuánto tiempo más Microsoft planea mantener estos precios de vista previa, pero son extremadamente tentadores, especialmente para alguien que está buscando mover código que necesita Windows o la plataforma SQL. Puede girar lo que necesita rápidamente y mover el software otra vez sin volver a escribir nada. Los precios también son bastante convincentes para los no usuarios de Microsoft. Puede utilizar las distribuciones de Linux de más alto perfil y disfrutar de las mismas configuraciones de hardware y precios.
 
Más allá de los productos básicos de nube
Las máquinas y el software que se ejecuta dentro de ella puede ser el corazón de la nube, pero la plataforma Azure de Microsoft es algo más que máquinas Windows y Microsoft SQL. También puede adquirir diversos servicios de datos a través de API que manejan algunos de los puestos de trabajo de gestión de datos más comunes que enfrentan a los desarrolladores web.
 
La integración fundamentalmente es solo la contabilidad. Si compra los servicios de búsqueda de Bing (las primeras cinco mil búsquedas al mes son gratis), obtiene un puntero a una clase proxy C# y el código que realiza la llamada API. El siguiente fragmento de código fuente incluye un vínculo que se inserte su clave de API. Qué hacer con los resultados de la búsqueda depende de usted y del código C# que escriba.
 
Hay al menos una docena de opciones diferentes, incluyendo un servicio de comprobación de direcciones que compara la dirección con la que ingresó su cliente con las direcciones oficialmente reconocidas de la base de datos del servicio postal. Otra se ocupa de las tasas del impuesto a las ventas. Una tercera parte ofrece datos meteorológicos. Es una buena mezcla que puede ahorrarle la molestia de construir estos servicios usted mismo.
 
Windows Azure le muestra cómo una empresa que construyó un producto como Visual Studio se acerca a la nube. Microsoft no solo creó un grupo de API y scripts de shell, sino que lo unió todo en una interfase web amigable. En lugar de utilizar Vi para tejer scripts Unix, apuntar y hacer clic. Es una buena manera de avanzar en la plataforma y hacer que sea más fácil crear sitios web escalables que ofrecen una gama completa de servicios. Esta integración en ciernes con la cadena de herramientas de Microsoft es la cereza en el pastel que lanzan las máquinas de Azure con sus precios atractivos como algo más que productos comunes.