WINDOWS AZURE Y LOS ISV GUÍA PARA LOS ENCARGADOS DE TOMAR DECISIONES DAVID CHAPPELL JULIO DE 2009 PATROCINADO POR MICROSOFT CORPORATION
CONTENIDO Los ISV y la informática cloud... 2 Breve visión general de Windows Azure... 3 Tecnología... 3 Modelo comercial... 6 Utilización de Windows Azure: algunas opciones para los ISV... 7 Utilizar el almacenamiento cloud desde su aplicación interna... 7 Combinar la informática cloud con su aplicación interna... 8 Crear una versión SaaS de su aplicación... 8 Ofrecer servicios de soporte para las plataformas cloud... 11 Comparación de Windows Azure con alternativas... 12 Hosting tradicional... 12 VM a pedido... 13 Conclusiones... 13 Acerca del autor... 14 1
LOS ISV Y LA INFORMÁTICA CLOUD Por qué un proveedor de software independiente (ISV) debería considerar la informática cloud? La respuesta es sencilla: utilizar la informática cloud puede aumentar los ingresos de un ISV y/o reducir sus costos. Ejecutar códigos y almacenar datos en PC que cuentan con grandes centros de datos con acceso desde Internet de un tercero pueden ofrecer ventajas convincentes. Cualquiera que sea responsable de planificar el curso para un ISV debe pensar seriamente sobre cómo la informática cloud afectará sus negocios. Una opción para un ISV que desea beneficiarse con la informática cloud es aprovechar Windows Azure. Diseñado para admitir aplicaciones confiables y de alta escalabilidad, Windows Azure es la tecnología de plataforma cloud representativa de Microsoft. Este documento muestra cómo y por qué los ISV podrían utilizar Windows Azure. El objetivo es aclarar por qué la informática cloud resulta importante para los ISV y describir la forma en que podrían utilizar esta nueva plataforma. Antes de analizar este tema, es conveniente resumir algunas de las principales ideas. A continuación se mencionan los puntos clave que se deben comprender: Un objetivo principal de Windows Azure es ser una plataforma en la que los ISV puedan crear aplicaciones de software como servicio (SaaS). Los clientes se interesan cada vez más en tener una opción SaaS para el software que adquieren. Para cubrir esta exigencia y ajustarse al ritmo de la competencia, muchos ISV optarán por ofrecer una versión SaaS de sus productos actuales o futuros. Crear una aplicación SaaS requiere la creación de un servicio basado en cloud altamente escalable y confiable que pueda utilizarse por muchas organizaciones de los clientes. Generar su propia base para esto no resultaría más conveniente que generar su propio sistema operativo para una aplicación interna. Al igual que Windows proporciona una base para las aplicaciones internas tradicionales, Windows Azure puede ofrecer una base para las aplicaciones SaaS. La informática cloud no necesita ser una propuesta todo o nada y, por lo tanto, las aplicaciones SaaS no son la única opción. Una aplicación interna existente puede mejorarse gracias a la funcionalidad basada en cloud, como ejecutar algún código o almacenar un subconjunto de datos en Windows Azure. Este enfoque en aumento para utilizar una plataforma cloud puede ahorrar dinero y mejorar la funcionalidad de una aplicación actual. También puede ofrecer una forma poco riesgosa para obtener experiencia con esta nueva clase de tecnología. Las plataformas cloud no resultan útiles solo para las empresas que crean aplicaciones para usuarios finales. Si usted es un ISV que ofrece complementos de infraestructura o asistencia a desarrolladores para el entorno de Windows interno, es posible que también encuentre productos de valor agregado para crear para Windows Azure. Ya que cada vez más la informática migra al cloud, encontrar estas nuevas ofertas puede resultar una forma muy importante para mantener su flujo de ingresos. Una plataforma cloud como Windows Azure es distinta al hosting tradicional. Desde una perspectiva técnica, Windows Azure proporciona una administración más sencilla, así como también servicios diseñados para crear aplicaciones escalables y confiables. Entre las diferencias comerciales se incluyen un compromiso inicial mínimo y formas más fáciles de aumentar y reducir los 2
recursos informáticos que utiliza su aplicación. Estas diferencias implican que Windows Azure posiblemente puede ofrecer una mejor tecnología y reducir costos para las aplicaciones de los ISV. Al principio, es posible que Windows Azure se utilice para admitir las aplicaciones actuales en el cloud. Sin embargo, es conveniente resaltar que las plataformas cloud ofrecen servicios que nunca antes hemos visto, como acceso a una gran cantidad de CPU de bajo costo y almacenamiento de datos de alta escalabilidad. Junto con el soporte del entorno que ya conocemos, deberíamos esperar a ver ISV creativos que encuentren formas de realizar cosas totalmente nuevas con este nuevo tipo de plataforma. BREVE VISIÓN GENERAL DE WINDOWS AZURE Tomar buenas decisiones sobre cómo utilizar Windows Azure requiere una compresión básica de la plataforma. Esta sección ofrece una visión general de la tecnología y su modelo comercial asociado. TECNOLOGÍA Windows Azure cuenta con 3 partes principales: un servicio de informática que ejecuta aplicaciones, un servicio de almacenamiento que almacena datos y una estructura que admite los servicios de informática y almacenamiento. El Gráfico 1 muestra este desglose. Gráfico 1: Windows Azure cuenta con 3 partes principales: el servicio de informática, el servicio de almacenamiento y la estructura de la que ambos dependen. Para utilizar el servicio de informática, un desarrollador crea una aplicación de Windows. Es posible que esta aplicación se escriba utilizando C# y.net Framework, C++ y las API Win32 o de otra forma. Sin importar cómo se cree, la aplicación debe implementarse como roles web, roles de trabajo o ambos. El Gráfico 2 demuestra esta idea. 3
Gráfico 2: las aplicaciones creadas en el servicio de informática de Windows Azure pueden consistir en instancias de rol web, instancias de rol de trabajo o ambas. Como lo sugiere el nombre, una instancia de rol web acepta pedidos web. Puede crearse a través de ASP.NET u otra tecnología que trabaje con Internet Information Services (IIS). Cualquiera sea la tecnología que se utilice, Windows Azure ofrece balanceo de carga de hardware integrado en todas las instancias de rol web en una aplicación específica. Para las funciones que no están destinadas a responder directamente a pedidos web, una aplicación de Windows Azure también puede incluir instancias de rol de trabajo. Una instancia de rol de trabajo es tan sólo una aplicación con un main() y puede ejecutarse de forma indefinida. Entre otras cosas, este modelo permite crear aplicaciones escalables en donde las instancias de rol web aceptan pedidos, luego los transfieren a las instancias de rol de trabajo para que sean procesados. Y mientras que las instancias de rol web y de trabajo son aplicaciones comunes de Windows, algunas funciones, como el inicio de sesión, requieren acceso directo a Windows Azure. Para permitirlo, las aplicaciones pueden acudir directamente a un agente de Windows Azure, como se muestra en el Gráfico 2. Advierta que cada instancia, ya sea el rol web o el rol de trabajo, se ejecuta en su propia PC virtual (VM). Esto ofrece aislamiento, lo cual permite que las aplicaciones de Windows Azure se ejecuten con total confianza, y también permite una visión más clara de su rendimiento, pues existe un plan definido entre las VM y los núcleos de los procesadores. Pero un desarrollador no crea VM de forma explícita. Por el contrario, carga una aplicación a Windows Azure, junto con un archivo de configuración XML que especifica cuántas instancias de rol web y de trabajo deberían ejecutarse. Una vez que esto se realiza, Windows Azure crea la cantidad necesaria de VM y luego monitorea su ejecución. En caso de fallar una instancia, Windows Azure iniciará una nueva, lo cual garantiza que la cantidad especificada de instancias de rol web y de trabajo siempre se encuentra en funcionamiento (esto se realiza a través del Controlador de estructura, el software que se encarga de todas las PC en una instancia específica de la estructura). Para aumentar o reducir la cantidad de instancias en funcionamiento, el dueño de la aplicación puede 4
cambiar el valor de cualquier tipo de instancia en la configuración de la aplicación. Windows Azure automáticamente crea o cierra VM para ajustarse a esta nueva configuración. Ya que las aplicaciones de Windows Azure son esencialmente aplicaciones de Windows, no resultaría sorprendente que los desarrolladores pudieran crearlas con Visual Studio. Esta herramienta ofrece plantillas para crear aplicaciones cloud como roles web, roles de trabajo o ambos. Windows Azure a su vez ofrece una Estructura de desarrollo, la cual es una copia de Windows Azure que se ejecuta en una PC local. Los desarrolladores pueden utilizarla para crear su código y realizar una evaluación inicial, luego cargar la aplicación a Windows Azure cuando se encuentre lista. Por lo general, las aplicaciones necesitan almacenamiento persistente y, por ende, Windows Azure proporciona sus propios mecanismos basados en cloud para almacenar y recuperar datos. La plataforma ofrece tres opciones de almacenamiento, las cuales pueden accederse a través de GET, PUT y DELETE estándar. El Gráfico 3 demuestra esta idea. Gráfico 3: el servicio de almacenamiento de Windows Azure puede accederse a través de sus aplicaciones o por aquellas que se ejecutan en otra plataforma. Los tres tipos de almacenamiento de Windows Azure son: Blobs: permiten almacenar grandes objetos binarios, como videos e imágenes. Tablas: ofrecen almacenamiento basado en entidades altamente escalable (no tablas relacionales). Colas: permiten enviar y recibir mensajes, como por ejemplo entre las instancias de rol web y las de trabajo de una aplicación. 5
Es importante resaltar que estos tres tipos también pueden accederse a través de aplicaciones que no se ejecutan en el servicio de informática de Windows Azure. Por ejemplo, una aplicación interna u hospedada puede optar por almacenar grandes archivos de video como blobs de Windows Azure. La plataforma de Windows Azure también incluye SQL Azure Database (antes conocida como SQL Data Services). SQL Azure Database ofrece almacenamiento relacional estándar basado en SQL Server, y completo con procesos almacenados y más. Mientras que una sola base de datos en SQL Azure Database no puede contener tanta información como una tabla de almacenamiento de Windows Azure, estas bases de datos proporcionan un modelo de almacenamiento conocido que puede accederse a través de ADO.NET y otros mecanismos de acceso de datos ampliamente utilizados. Para obtener información más detallada sobre Windows Azure, lea Presentación de Windows Azure. Para consultar sobre la plataforma completa de Windows Azure (antes conocida como Azure Services Platform), lea Presentación de Azure Services Platform: visión básica de Windows Azure,.NET Services, SQL Services y Live Services. MODELO COMERCIAL Una atracción principal de una plataforma cloud, y una de las mayores diferencias del hosting tradicional, es el costo basado en el consumo. Con el hosting tradicional de un centro de datos interno, el dueño de una aplicación por lo general paga por un conjunto específico de PC por un tiempo determinado. Para las aplicaciones con carga variable, el conjunto determinado debe ser lo suficientemente extenso para manejar el pico más alto, lo cual significa que la capacidad disminuye al mínimo en tiempos de poco trabajo. Las plataformas cloud no son así. Por ejemplo, con Windows Azure el dueño de una aplicación paga por los recursos de almacenamiento e informática que utiliza. Cuando la carga de la aplicación es liviana, puede solicitar por ejemplo tres instancias de rol web y dos instancias de rol de trabajo. Cuando la carga es pesada, puede aumentar su solicitud a seis instancias de rol web y cuatro instancias de rol de trabajo. En ambos casos, el dueño de la aplicación paga sólo por los recursos que ésta utiliza. El esquema de precios de Windows Azure es relativamente sencillo, con tres principales variables: tiempo de informática, almacenamiento y acceso de datos y transferencia de entrada y salida de ancho de banda. Para el tiempo de informática, el dueño de una aplicación paga un monto fijo por cada hora que funciona una VM. Para los datos, existe un costo fijo por gigabyte por mes, junto con un costo por operaciones con los datos almacenados, como GET y PUT. Para el ancho de banda, el dueño de una aplicación paga un monto fijo por gigabyte de datos transferidos entrantes y salientes del centro de datos de Windows Azure (no existen costos de ancho de banda para acceder a datos dentro de un centro de datos). Los costos son: Informática = $0,12/hora por cada VM en funcionamiento Almacenamiento = $0,15/GB almacenados por mes, $0,01/10.000 operaciones con los datos almacenados Ancho de banda = $0,10/GB transferidos dentro del centro de datos, $0,15/GB transferidos fuera del centro de datos 6
Las aplicaciones de Windows Azure también utilizan SQL Azure Database para almacenamiento. Una vez más, el costo está basado en el uso, con dos variables: cuántos datos se almacenan y cuántos datos se transfieren dentro y fuera de un centro de datos de Windows Azure. Los costos son: Edición web: $9,99/mes para una base de datos relacional con almacenamiento de hasta 1 GB Edición comercial: $99,99/mes para una base de datos relacional con almacenamiento de hasta 10 GB Ancho de banda: $0,10/GB transferidos dentro del centro de datos, $0,15/GB transferidos fuera del centro de datos Aunque no se encuentra disponible en la versión inicial de la plataforma, Microsoft afirma que finalmente ofrecerá descuentos de precios basados en el acuerdo. Los clientes que desean comprometerse a niveles mínimos de uso específicos advertirán una reducción en sus costos. Los acuerdos permiten que Microsoft planifique con mayor eficacia y que los descuentos reflejen esos costos más accesibles. En cuanto a sus otras ofertas, Microsoft también cuenta con un programa asociado para Windows Azure. Una parte de esto es Azure QuickStart, que ofrece una ubicación central para que los ISV y otros socios comiencen a explorar la plataforma de Windows Azure y se conecten con Microsoft y otros clientes mediante esta plataforma. A su vez, la empresa cuenta con una oferta de Acelerador de desarrollo, la cual les proporciona a los ISV que desean firmar acuerdos de seis meses descuentos de precios para uso de desarrolladores de la plataforma Windows Azure. También se encuentran disponibles foros, soporte telefónico y otros servicios tradicionales, lo cual refleja la compresión de Microsoft sobre la función esencial que cumplen los ISV al lograr el éxito de Windows Azure. UTILIZACIÓN DE WINDOWS AZURE: ALGUNAS OPCIONES PARA LOS ISV Planificar si una plataforma cloud puede mejorar su empresa requiere que considere la forma en que podría utilizarla. De este modo, esta sección menciona algunas de las formas principales en que los ISV pueden utilizar Windows Azure. UTILIZAR EL ALMACENAMIENTO CLOUD DESDE SU APLICACIÓN INTERNA Tal vez la forma más sencilla en que una aplicación de ISV puede utilizar Windows Azure es almacenar datos. Según lo mencionado previamente, se puede acceder al almacenamiento de Windows Azure desde aplicaciones internas, así como desde aplicaciones de Windows Azure. Por ejemplo, una aplicación que actualmente realiza copias de seguridad a un sistema de almacenamiento interno puede elegir utilizar los blobs de Windows Azure. Esto puede mejorar la confiabilidad de las copias de seguridad, pues los blobs se replican al menos tres veces, como todo lo demás en Windows Azure. También puede reducir costos, dada la economía de escala que proporcionan los grandes centros de datos de Microsoft. O imagine una aplicación que ofrezca grandes cantidades de datos a sus usuarios: videos, archivos de audio, entre otros. En lugar de almacenar estos datos de forma local, la aplicación nuevamente puede elegir utilizar los blobs de almacenamiento de Windows Azure para obtener mayor disponibilidad, disminuir costos, o ambos. Y el almacenamiento de Windows Azure no es la única opción. Al utilizar SQL Azure Database, una aplicación también puede almacenar datos relacionales en el cloud. Por ejemplo, una aplicación que 7
necesita compartir un conjunto de tablas relacionales en varias instancias ejecutándose en distintas ubicaciones puede traer beneficios, pues los datos se encuentran accesibles en una sola ubicación. Existen algunas limitaciones (una sola base de datos en SQL Azure Database no puede exceder los diez gigabytes, por ejemplo), por lo cual este servicio no es exactamente como ejecutar SQL Server en el cloud. No obstante, existen algunas posibles ventajas. Gran parte del trabajo que se requiere para administrar una base de datos ya no es necesario con SQL Azure Database, pues Microsoft lo hace por usted. También aumenta la disponibilidad de sus datos porque, al igual que el almacenamiento de Windows Azure, SQL Azure Database almacena tres copias de todos los datos para proteger contra fallas de hardware. El costo de este almacenamiento incluso podría ser más accesible que el almacenamiento interno, en especial para las más pequeñas empresas. Utilizar la plataforma cloud de Microsoft para almacenar sus datos requiere que confíe en ella. La mejor forma de generar confianza es empezar de a poco; luego, si está seguro, puede expandirse desde esa base. Un ISV que considera utilizar Windows Azure o SQL Azure Database puede advertir que utilizar sus servicios de almacenamiento desde una aplicación interna le permite obtener experiencia con este nuevo enfoque antes de llegar a un mayor compromiso. Puede resultar una forma eficaz de tantear el terreno de la informática cloud. COMBINAR LA INFORMÁTICA CLOUD CON SU APLICACIÓN INTERNA Si puede resultar conveniente ubicar los datos de una aplicación en el cloud, también lo puede ser utilizar el cloud para ejecutar algún código de su aplicación. Por ejemplo, imagine un ISV con una aplicación que pudiera beneficiarse al crear un mercado en línea entre todas las empresas que utilizan esta solución. Crear esta función en una plataforma cloud como Windows Azure debería resultar mucho más rápido y más accesible que crearla desde el principio. O suponga que una aplicación interna podría a veces traer beneficios a partir de más núcleos de procesador para ejecutar cargas intensivas de la CPU. Esta aplicación podría crear varias instancias de rol de trabajo de Windows Azure para realizar este trabajo, luego las cerraría cuando ya no se necesitan. Como siempre, el cliente debería pagar solo los recursos que utiliza; es decir, las horas en que estas VM con rol de trabajo se ejecutaron. Existen muchas situaciones en las que no resulta práctico migrar por completo una aplicación existente al cloud. Transportar millones de líneas de código en una plataforma cloud puede resultar demasiado riesgoso, muy costoso e inútil. En estos casos, agregar nuevas funciones que se ejecuten en el cloud puede resultar más útil. Debido a que Windows Azure ofrece una plataforma preintegrada para ejecutar aplicaciones cloud, puede simplificar la creación de este tipo de código. CREAR UNA VERSIÓN SAAS DE SU APLICACIÓN Ser un ISV siempre ha implicado instalar software directamente en las PC de sus clientes. Con las aplicaciones SaaS, esto ya no sucede. A diferencia del paquete de software convencional, una aplicación SaaS se ejecuta en un centro de datos con acceso a Internet y, por lo general, se proporciona a los clientes a través de la Web. Las aplicaciones SaaS pueden ofrecer beneficios reales a los clientes, incluso: Menor riesgo: a diferencia del paquete de software convencional, las aplicaciones SaaS no requieren una gran inversión inicial. Por el contrario, los clientes en general prueban la aplicación de forma 8
gratuita antes de adquirirla, lo cual les permite confiar aún más en que la aplicación proporcionará valor comercial. Una estructura de precios más atractiva: las aplicaciones SaaS comúnmente ofrecen precios basados en el uso, como costo por usuario por mes. Esto permite que los clientes comiencen con lo mínimo y luego agreguen usuarios según sea necesario. También permite reemplazar un gasto de capital (compra de software) por un gasto operativo, lo cual puede resultar atractivo para algunas organizaciones. Implementación más rápida y accesible: en lugar de instalar software en PC locales, los usuarios de una aplicación SaaS por lo general acceden a la aplicación a través de un explorador web convencional. Actualizaciones más sencillas: en lugar de actualizar sus propias copias de un paquete de software adquirido, el cliente de una aplicación SaaS puede acudir al proveedor de SaaS para actualizar la aplicación de forma central. Las ventajas de SaaS son con certeza atractivas para algunos clientes y algunos tipos de aplicaciones. No obstante, este enfoque también presenta desventajas, por lo que no es adecuado para todas las aplicaciones. Los más importantes desafíos que enfrentan los clientes SaaS incluyen: Confiabilidad: Un cliente realmente puede confiar en el proveedor de una aplicación SaaS? La aplicación siempre se encontrará disponible? Se le puede confiar al proveedor de aplicaciones datos corporativos confidenciales? Confiar en el proveedor es el más importante obstáculo que enfrentan los clientes con aplicaciones SaaS. Vale la pena destacar que esta confiabilidad también debe extenderse a la plataforma cloud en la que se crea la aplicación SaaS. Problemas reglamentarios y de cumplimiento: los gobiernos requieren que muchas empresas cumplan con varios estándares, como Sarbanes-Oxley, Basel II y otros. En caso de que una aplicación SaaS (y la plataforma cloud en la que se crea) no cumpla con estas obligaciones, la empresa no puede utilizarla. Personalización: los paquetes de software internos tradicionales por lo general pueden personalizarse de varias formas. Las aplicaciones SaaS, por el contrario, en general son de múltiples usuarios, lo cual significa que todos los usuarios comparten una sola copia del software. Mientras que la personalización aún es posible, por lo general es más limitada que el paquete de software tradicional. Integración con aplicaciones internas: una aplicación SaaS debe ofrecer alguna forma de integrar sus códigos y datos a la aplicación interna. Esto incluye integración de identidades, pues en general los clientes desean un solo inicio de sesión. Administración: en la actualidad, muchas herramientas internas para administrar y monitorear aplicaciones no trabajan con eficacia con las aplicaciones SaaS. Mientras que es posible que esto cambie, la situación actual es desmoralizadora para algunos clientes. Al igual que las aplicaciones SaaS presentan ventajas y desventajas para las organizaciones que adquieren software, también ofrecen ventajas y desventajas para aquellas que lo venden. Entre los beneficios que ofrecen las aplicaciones SaaS para los ISV se incluyen: 9
La posibilidad de realizar más ventas: ya que los clientes enfrentan menor riesgo y una menor inversión financiera inicial, realizar ventas iniciales puede resultar más rápido y menos costoso. Las aplicaciones SaaS también pueden ser atractivas para nuevas categorías de clientes, como las empresas más pequeñas, debido a que requieren menos conocimiento de TI interno. Actualizaciones de clientes más sencillas: en lugar de convencer a cada cliente a reemplazar un paquete interno, un ISV puede realizar actualizaciones de su aplicación SaaS a todos los clientes en una sola vez. Esto puede reducir enormemente los costos de soporte de un ISV, pues ya no existe la necesidad de admitir muchas versiones antiguas de una aplicación. No obstante, nada es gratuito y, por lo tanto, la migración al entorno SaaS también presenta algunas desventajas para los ISV. Algunas de las desventajas más evidentes son: Un modelo de ventas e ingresos diferente: el dinero comienza a entrar de a poco en lugar aparecer costos de licencia iniciales. Al menos al principio, esto puede implicar menos margen. Menor capacidad de mantener al cliente: sin los costos inesperados de una aplicación interna adquirida y, tal vez, ampliamente personalizada, los clientes pueden considerar más sencillo cambiar a un competidor. Menor ingreso de servicios de la personalización: los ISV que derivan una importante porción de sus ingresos de los servicios de personalización pueden advertir una reducción de estos ingresos en las aplicaciones SaaS. Desafíos técnicos: crear una aplicación SaaS requiere una habilidad técnica diferente de aquella que ya tienen muchos ISV. En lugar de crear software interno conocido, su organización de desarrollo ahora debe crear una aplicación compartida altamente escalable y confiable. A su vez, debido a que Windows Azure no siempre funciona de forma idéntica al entorno de Windows Server, es posible que se requieran algunas modificaciones del código existente. Por ejemplo, mientras que Windows Azure realiza balanceo de carga de pedidos en las instancias de rol web de una aplicación, no admite afinidad de sesiones. Esto permite una mejor escalabilidad, pero es probable que no sea la forma para la que se encuentra diseñada su aplicación. La verdad es evidente: las aplicaciones SaaS tienen una importante función a desempeñar, pero no eliminarán el software interno. Todos los ISV que ofrecen un paquete de la aplicación deben observar sus ofertas y tomar una decisión: Qué es lo que tiene sentido al ofrecer SaaS? Especialmente si sus competidores se encuentran por este camino, crear una versión SaaS de una aplicación interna actual podría ser la opción adecuada. Según lo mencionado anteriormente, un objetivo importante de Windows Azure es admitir aplicaciones SaaS. Muchos aspectos de su diseño reflejan este objetivo. Por ejemplo, una aplicación SaaS debe ser más escalable que una aplicación interna, pues admitirá varios clientes de forma simultánea. La división de rol web/rol de trabajo en Windows Azure permite crear aplicaciones de escalabilidad masiva al dividir el trabajo entre la interfaz web y el back-end de trabajo. De manera similar, las tablas de almacenamiento de Windows Azure se encuentran especialmente diseñadas para incluir grandes cantidades de datos, mucho más de lo que puede administrar un solo sistema de administración de base de datos relacional. 10
Una aplicación SaaS también debe ser más confiable que una aplicación interna, ya que una falla afecta a todos los clientes, no solo a uno. La estructura de Windows Azure permite lograr esto al monitorear cada instancia en funcionamiento de una aplicación. Si falla una instancia, una VM o incluso la totalidad de una PC, el controlador de estructura reiniciará otra para que la reemplace. El controlador de estructura también permite actualizar una aplicación en funcionamiento sin cerrarla, un servicio importante para una aplicación SaaS que debe encontrarse continuamente disponible. Un atributo más importante para una aplicación SaaS efectiva es la elasticidad, es decir, la capacidad para manejar picos a pedido. Con una aplicación convencional, un centro de datos debe poder admitir la carga máxima que esta aplicación nunca más verá. Esto es posible con certeza, pero resulta costoso y poco útil: es probable que gran parte de la capacidad de los centros de datos permanezca sin uso la mayor parte del tiempo. No obstante, gracias a Windows Azure, abordar este problema resulta más sencillo. Recuerde que el dueño de una aplicación puede cambiar la cantidad de instancias en funcionamiento al instante, por lo que puede acudir al controlador de estructura para crear o cerrar las VM según sea necesario. Ya que los clientes de Windows Azure pagan solo por los recursos que utilizan, esto les permite pagar por una gran cantidad de recursos informáticos solo cuando esos recursos realmente se necesitan. Cuando disminuye la carga, la aplicación puede reducirse a su tamaño normal. Las aplicaciones SaaS realmente cuentan con requisitos distintos a los de las aplicaciones internas tradicionales. Estas diferencias son la mayor razón por la que Windows Azure se encuentra diseñado como tal. Un ISV que crea una aplicación SaaS puede generar su propia plataforma, y algunos lo hicieron: no había otra alternativa. Pero con el aumento de las plataformas cloud, los ISV que crean aplicaciones SaaS ahora pueden enfocarse en su lógica comercial en lugar de la infraestructura. Al avanzar, es posible que una gran parte de las aplicaciones SaaS se cree en una plataforma cloud como Windows Azure. OFRECER SERVICIOS DE SOPORTE PARA LAS PLATAFORMAS CLOUD En la actualidad, muchos ISV ofrecen servicios de administración e infraestructura para entornos internos. Muchos otros ofrecen software que simplifica la vida de los desarrolladores. Mientras algunas de estas soluciones no son relevantes en el cloud, otras lo son. Y también existen nuevas oportunidades, lugares donde los ISV pueden obtener dinero al agregar valor a Windows Azure. Por ejemplo, Windows Azure ofrece acceso a los datos de rendimiento sobre aplicaciones en funcionamiento. Una herramienta que agregaba estos datos y luego los presentaba a través de una interfaz de usuario eficaz podía permitir que los clientes de Windows Azure administraran sus aplicaciones cloud. Windows Azure también proporciona API, las cuales permiten que una aplicación modifique la cantidad de instancias de rol web y de rol de trabajo en funcionamiento al instante, en lugar de acudir a una persona para que lo realice. No obstante, la plataforma no ofrece software que monitoree la carga de la aplicación, por lo que utiliza estas API para ajustar la cantidad de instancias en funcionamiento. Un ISV puede cubrir este vacío al ofrecer un código que permita a los desarrolladores agregar con facilidad este comportamiento a sus aplicaciones. La aparición de las plataformas cloud es un gran cambio para los ISV. Debido a cualquier cambio importante, por lo general es conveniente empezar de a poco, como utilizar el almacenamiento cloud de Windows Azure o descargar una parte de su aplicación en el cloud. Si esto resulta exitoso, y tiene sentido financiero, entonces podrá realizar mayores trabajos cuando se justifiquen, como crear una versión completa de SaaS de su aplicación. 11
COMPARACIÓN DE WINDOWS AZURE CON ALTERNATIVAS Windows Azure no es el único enfoque; existen otras alternativas. Esta sección compara a Windows Azure con dos de las alternativas más evidentes: hosting tradicional y plataformas cloud que ofrecen VM a pedido. HOSTING TRADICIONAL La primera opción de muchas personas que desean subcontratar la ejecución de sus aplicaciones es un proveedor de hosting. En el hosting tradicional, un cliente solicita un conjunto determinado de recursos y acuerda pagar por esos recursos por un tiempo determinado. Por ejemplo, un ISV que desea ejecutar una aplicación SaaS puede contratar a un hoster para que proporcione seis servidores de Windows por un año, pagando un monto predefinido por este servicio. El hosting presenta muchas ventajas. Utilizar un hoster es con frecuencia más accesible que ejecutar un centro de datos interno, en especial para las más pequeñas empresas. También permite que el cliente evite la complejidad de ejecutar su propio centro de datos mientras que conserva el control total de las PC que utiliza. Mientras que es probable que la aparición de las plataformas cloud afecte el negocio de hosting tradicional, este modelo no desaparecerá: aún resulta conveniente en muchas situaciones. Al menos para algunas aplicaciones, una plataforma cloud como Windows Azure es una mejor opción. Entre las ventajas se incluyen: La capacidad de aumentar con rapidez la cantidad de servidores en uso: mientras que un hoster puede ocupar días para hacer que una nueva PC se encuentre disponible, una aplicación de Windows Azure puede hacer que una nueva VM funcione en minutos. La capacidad de reducir con rapidez la cantidad de servidores en uso: por lo general, los hosters requieren un acuerdo por una cantidad fija de servidores provista solo para usted. Gracias a Windows Azure, una aplicación puede reducir la cantidad de VM que utiliza y, por consiguiente, el costo que implica ejecutar esta aplicación, al reducir la cantidad de instancias de rol web y/o rol de trabajo. No existe un acuerdo inicial por una cantidad mínima de servidores. Capacidad de ofrecer servicios especialmente diseñados para aplicaciones altamente escalables y disponibles: los hosters por lo general ofrecen sistemas de Windows estándar y dejan que sus clientes decidan hacer lo que sea necesario para ejecutar sus aplicaciones con éxito. Según lo descripto anteriormente, una plataforma cloud como Windows Azure puede diseñarse especialmente para admitir aplicaciones de muy alta escalabilidad y disponibilidad. Menor costo general administrativo: a diferencia de Windows Azure, por lo general los hosters otorgan a los clientes un completo acceso administrativo a sus PC. La compensación es que se requiere más trabajo administrativo, desde revisiones del sistema operativo hasta la gestión de los sistemas de administración de bases de datos. Con Windows Azure (y SQL Azure Database), gran parte de este trabajo se realiza para usted, lo cual le permite ahorrar tiempo y dinero. 12
VM A PEDIDO Varios proveedores, incluso Amazon, Mosso, GoGrid y otros, ofrecen PC virtuales a pedido. A diferencia de los hosters tradicionales, estos proveedores por lo general ofrecen costos basados en el uso, sin la necesidad de un acuerdo, y VM disponibles con rapidez. En otras palabras, ofrecen plataformas cloud. Windows Azure también es una plataforma cloud, pero aunque utilice (y cobre a través de) VM, difiere de muchas formas de las plataformas que ofrecen VM a pedido. Con una plataforma basada puramente en VM, de alguna forma la situación es similar a la del hosting: usted cuenta con control completo, incluso el acceso administrativo a sus VM, pero también tiene la total responsabilidad de configurar y administrar esas VM y el software que contienen. Con Windows Azure, usted suministra solo una aplicación de Windows, junto con instrucciones sobre cuántas instancias ejecutar. La plataforma en sí se encarga del resto, incluso de la actualización del software de sistema según sea necesario. Otra importante diferencia es la forma en que se manejan los datos relacionales. Con plataformas basadas en VM típicas, puede ejecutar una base de datos relacionales en una VM, de la misma forma en que usted ejecutaría la misma base de datos de forma interna o a través de un hoster. Esto funciona con certeza, pero usted necesita instalar, mantener y administrar esta base de datos. Garantizar la confiabilidad también puede ser desafiante, pues los típicos agrupamientos que comparten discos por lo general no son probables. En el entorno de Azure, una aplicación puede utilizar SQL Azure Database. Según lo descripto anteriormente, esta tecnología proporciona un almacenamiento relacional administrado por Microsoft que escribe todos los datos varias veces para lograr la confiabilidad. Una vez más, usted pierde la capacidad de tener el control total, pero obtiene simplicidad y confiabilidad integrada. CONCLUSIONES Al igual que todas las nuevas plataformas, Windows Azure será exitosa solo si los ISV eligen crear aplicaciones en ella. Microsoft lo comprende y considera una prioridad hacer que su nueva plataforma cloud sea atractiva para este público. Entre las principales atracciones se incluyen: Debido a que Windows Azure permite que los ISV ejecuten aplicaciones y almacenen datos en un centro de datos muy grande mientras que solo pagan por los recursos utilizados, puede ofrecer precios atractivos. Al proporcionar una plataforma lista y diseñada para admitir aplicaciones cloud escalables y confiables, Windows Azure reduce el tiempo y el dinero requeridos para crear y ejecutar aplicaciones SaaS y otros códigos basados en cloud. La informática cloud parece ser la próxima innovación de nuestra industria. De la misma forma en que los ISV han tenido que adaptarse a los cambios que introdujeron las PC, los dispositivos móviles y otras nuevas plataformas, ahora necesitan decidir cómo aprovechar las plataformas cloud. Y de la misma manera en que Windows fue una parte importante en esos cambios iniciales, Windows Azure tiene como objetivo desempeñar una función esencial en este nuevo entorno. Si usted es el responsable de planificar el futuro de su empresa, es conveniente que comprenda y evalúe el entorno de Azure. 13
ACERCA DEL AUTOR David Chappell es el director de Chappell & Associates (www.davidchappell.com) en San Francisco, California. A través de sus conferencias, escritos y consultoría, permite que las personas de todo el mundo comprendan, utilicen y tomen mejores decisiones sobre nuevas tecnologías. 14