Cloud computing, windows azure
Para empezar hay que encuadrar a que nos referimos cuando se habla de cloud computing. Hay bastantes definiciones para cloud computing desde quienes consideran como un paso más en servidores virtuales que están disponibles por toda internet, a concepciones más amplias que lo entienden como cualquier servicio que consumes más allá de tu red local es considerado como «la nube» (cloud compunting). Sin embargo prefiero una definición más funcional, lo que nos permite la nube, una manera de incrementar prestaciones o capacidad al momento, sin tener que invertir en nuevas infraestructuras y/o licencias de software. Además esta definición se concreta en tres ventajas que nos ofrece el cloud computing, escalabilidad (se puede variar la potencia de cpu al momento, basta variar las instancias contratadas), disponibilidad (un fallo en el nodo que está tu instancia se resuelve con una migración a otro nodo u otro cluster si es necesario) optimización de recursos (no es necesario que pienses en el máximo de computación que necesites a la hora de contratar, pueden asignarse recursos a medida que se necesitan pagando únicamente por los que se usan en un momento).
Para probar las posibilidades que ofrece una plataforma cloud computing, hay un par de opciones que ofrecen servicios gratuitos con ciertas limitaciones. Así por ejemplo tenemos Amazon EC2 puede obtenerse una cuenta gratuita para plataforma unix/linux. En mi caso me interesa más la opcíon que ofrece Microsoft, windows azure y su oferta «introductory special» en resumen ofrece 25 horas de una instancia «small compute», 500 MB de «windows storage» 1 base datos sql azure web edition de 1 GB (durante 3 meses) y 500 MB de transferencia de datos (500 MB in y 500 MB out). Para ello debes tener un usuario windows live e introducir tus datos en el portal. Será necesaria una tarjeta de crédito para el caso que se sobrepasen los límites de la oferta. Si leídas las condiciones te interesan y ya tienes tu usuario puedes usar el portal del cliente donde pueden seguirse los consumos diarios (hay que tener en cuenta que el tiempo de consumo se cuenta como tiempo que tienes tu aplicación «deploy» y no corresponde con lo que en principio se prodría pensar de tiempo de uso de cpu). Otra opción interesante es utilizar la calculadora coste, permite saber que tipo de instancia/alojamiento de datos no es más atractivo y el coste para compararlo con un hospedaje convencional.
Si ya te ha convencido, bien usar la oferta gratuita o usar una configuración más alta, deberás empezar por instalar la herramientas para desarrollar en windows azure. Para ello deben conseguirse azure tools para visual studio, los requisitos mínimos para instalarlas son vs 2008, .net 3.5 sp1, sql express 2005/2008, iis 7.0. Sql express es necesario para la simulación local del windows azure storage, ya que la aplicación en tu máquina se ejecuta sobre un entorno que simula la nube. Una vez que tu aplicación se ejecuta correctamente en el entorno local puedes pasar a la opción de alojarla en la nube a través del azure portal, se recomienda hacerlo en dos pasos si usas algún tipo de almacenamiento de datos, azure storage o sql azure, primero testear la aplicación con datos en azure y una vez que funciona correctamente publicar totalmente la aplicación. Hay dos opciones de publicación, hacerlo directamente desde visual studio o publicar el windows azure package y fichero de configuración. Entonces desde el portal elegir este package y su fichero de configuración como los que contienen la aplicación, desde el propio portal se instalarán como fuentes de la aplicación. Queda entonces pasar al estado en ejecución de la aplicación y se te muestra la url desde la que es accesible.
Por último recordar que el tiempo «compute» que se ofrece cuenta tiempo que tienes la aplicación subida en la nube, aunque esté en estado parada. De igual modo sino tienes la última edición de sql server 2008 R2 puedes usarse la herramienta sql azureMW que permite migrar en t-sql la base de datos local a sql azure.