¿Por qué usar Powershell con azure?


La pregunta es sencilla, así como sencilla es la respuesta, algunos lo hacen por gusto, yo personalmente necesite un par de dolores de cabeza para dar ese pequeño paso, y no es que no me guste la consola (No tanto como otros), pero sin duda hay una razón muy poderosa, para utilizar los scripts de powershell, básicamente “Automatizarlo Todo”, puede sonar un poco extraño, pero es cierto, cuando estás en un organización, y tienes que realizar determinada tarea, quizás repetitiva  puede depender de pequeñas configuraciones que la tarea salga bien, personalmente me paso con las bases de datos de azure, el portal es excelente pero cuando tienes 25 Bases de Datos la administración se vuelve un poco compleja, crear una base de datos no es difícil, pero cuando debes tener presente varias características que implican hacer un par de clicks más, se te podría olvidar alguno y quizás sin darte cuenta puedes estar afectando el precio o inclusive el rendimiento de los componentes que dependen de la base de datos.

Al crear el script no es que la tarea sea infalible, pero ciertamente el proceso de programación del script puede darte ciertas herramientas para verificar cada paso del proceso, minimizando las fallas, posteriormente correr el script en otros momentos no requerirá de pensar demasiado.

En resumen, el portal es genial (y más el nuevo), pero Powershell puede ser tu mejor amigo en esas tareas repetitivas.

No termino el post, sin dejarte los siguientes enlaces de Azure PowerShell que me han ayudado en la tarea.

http://azure.microsoft.com/en-us/documentation/articles/powershell-install-configure/

https://msdn.microsoft.com/en-us/library/dn546726.aspx?f=255&MSPPError=-2147217396

¿Cuando va al Storage? (1/?) #WindowsAzure


Una de las preguntas mas frecuentes cuando se muestra el tema de Almacenamiento de Windows Azure es ¿Cuando usarlo? y poner en contexto nuestra aplicación para usarlo; es más cuando una aplicación que ya se encuentra desarrollada y se quiere migrar a Windows Azure como aprovechar estas ventajas; ¿Cual es la razón de cambio real para afrontar este escenario?.

Con este articulo quisiera poner en contexto estas situaciones; lo primero a tener en cuenta con respecto al Almacenamiento de Windows Azure es el costo, que es sustancialmente mas barato almacenar en Blobs, Tablas y Colas que en SQL Azure, pero esto no demerita al último (SQL Azure); pues los esquemas relacionales para nuestra aplicación siguen siendo de vital importancia; dicho esto, el desarrollador o arquitecto NO debe verse en una encrucijada entre cual elegir, la encrucijada está en saber como combinar estas dos tecnologías para obtener el mejor rendimiento de la aplicación al menor costo posible.

Costo de SQL Azure ($USD).

Peso Mínimo Peso Máximo Costo
0 MB 100 MB $5 (Fijo)
100 MB 1 GB $ 9.99 (Fijo)
1 GB 10 GB $ 9.99 USD (Primera GB), $ 3.996(Por cada GB adicional).
10 GB 50 GB $ 45.954 (Primera GB), $1.998 (Por cada GB Adicional).
50 150 GB $125.874 (Primer GB), $0.999 (Por cada GB Adicional).

(Tabla 1)

Como pueden ver SQL Azure cobrará el valor por cada GB según sea el almacenamiento; así si tenemos una Base de Datos de SQL Azure de 7 GB esto nos costará mensualmente: $33.966 USD (Treinta y tres dólares con novecientos sesenta y seis centavos) es decir menos de $ 34 USD.

33.996 USD = (1 * 9.99 USD) + ( 6 * 3.966 USD)

Costo del Almacenamiento en Windows Azure Storage.

El costo del almacenamiento de Windows Azure se realiza bajo la siguiente forma:

$0.125 USD por GB almacenada (Mensualmente sobre promedio diario.) *

$0.01 USD por 10.000 Transacciones. **

* ¿Promedio Diario?

Si señores y aquí nos llama la atención pues se hace aclaración explicita de este hecho, pero con SQL Azure el Promedio Diario también existe.

Tenemos el siguiente caso:

Tengo una base de datos de 7 GB, según el cálculo que hicimos arriba esto nos cuesta $33.996 USD si dividimos esto por 31 (o los días del mes) tendremos el costo por día, es decir que si tenemos la mitad del mes una Base de datos de 7 GB, y la otra mitad esa misma BD alcanza las 10 GB nuestro cobro se realizar por día es decir:

15 Días a 7GB = (((1 * 9.99 USD) + ( 6 * 3.966 USD)) / 31) * 15 => $16.45 USD (Aprox.)

15 Días a 10 GB = (((1*9.99 USD) + (9 * 3.966 USD)) /31) * 15 => $22.10 USD (Aprox.)

Lo que da un costo mensual de: $38.55 USD.

Es posible que estos valores por GB cambien según el rango (ver Tabla 1); por ejemplo si la mitad del mes teníamos 7 GB y la otra mitad 15 GB el valor por la primera GB y las siguientes será distinto en amabas formulas.

Estos cálculos entonces aplicarían así para el Storage.

Si tengo la primera mitad del mes 10 GB almacenadas y la otra mitad del mes 20 GB almacenada entonces el cobro se realiza así:

15 Días – 10 GB = ((0.125 USD  * 10 GB) * 15) / 31 = $ 0.604 USD.

15 Días – 20 GB = ((0.125 USD * 20 GB) * 15) / 31 = $ 1.209 USD.

Lo que nos da un costo mensual de $ 1.803 USD a esto se le debe adicionar el valor por las transacciones.

** ¿Transacciones?

Como lo mencionaba arriba esto es un costo que hay que tener en cuenta; pero es extremadamente barato como para preocuparse por eso; el caso es que cada 10.000 transacciones cuestan un centavo, y una transacción consiste en TODA acción realizada sobre el Storage. (Consulta un BLOB, Eliminar un BLOB, Consultar una Tabla, Insertar en un Cola, Leer la Cola etc..)

Así que al calculo anterior debemos aumentarle un par de centavos para contar con unas 20.000 transacciones.

Así mensualmente el escenario antes descrito nos cuesta $ 2 USD (Aprox.)

Fuente:

http://www.windowsazure.com/en-us/home/features/overview/

Hasta Pronto,

Juan Manuel Lombana

La Potencia de Windows Azure


Ya se ha hablado bastante de Windows Azure en toda la red; y para aquellos que aún no estén enterados de que se trata les recomiendo la lectura de los siguientes artículos:

El objetivo de este articulo (y de otros que vendrán…) es poner en contexto esta tecnología en el mundo de las aplicaciones actuales y adentrarnos técnicamente en ciertas características.

Componentes de Windows Azure

¡La Potencia de Windows Azure!

Windows Azure como vemos en la imagen superior cuenta con una gran cantidad de componentes, los cuales podemos utilizar para mejorar en todos los aspectos (Técnicos y económicos) nuestra aplicación.

Es un buen comienzo para este tema entonces imaginarnos que clase de aplicaciones podemos implementar en Windows Azure y como sería la mejor forma de lograrlo.

Migrar una aplicación web existente: En este escenario simplemente constaría de trasladar la aplicación web que ya tienes desarrollada a las instancias de computo de Windows Azure; esto es un buen comienzo, te permite conocer la consola administrativa y empezar a ambientarte con el tema de los costos; (ya veo venir la pregunta del millón) ¿Que ventajas tiene este escenario? La primera ventaja sería el tema del despliegue y esto se ve enmarcado en la tecnología que utilizas para desarrollar tu aplicación web actual, supondremos un escenario “benigno” y es suponer que esta hecha sobre ASP.NET ó Silverlight, tecnologías que trabajarías en Visual Studio 2010, allí el tema del despliegue a Windows Azure ya se encuentra bastante automatizado y después de un par de click’s de configuración subir la aplicación al Windows Azure es bastante sencillo…, además pasamos por este tema sin mencionar que también se cuenta con un ambiente de desarrollo bastante bueno, que emula el storage y el computo, familiarizándote con el entorno “real”; el tema de los costos también es un punto a favor, pues las estrategias de computo elástico que puedes adoptar para tu aplicación te permitirán ofrecer el mejor servicio con el costo mas ajustado.

Azurificar” la aplicación existente: Cuando ya tenemos nuestra aplicación ejecutándose en un entorno de computo de Windows Azure es bueno empezar a “Azurificarla”, y este termino (rebuscadisimo) refiere concretamente a empezar a aprovechar las características de Windows Azure para nuestra aplicación como los son: Service Bus, Access Control, Cache Service, Storage, Worker Roles.

Una de las razones que nos puede llevar a empezar esta “Azurificación” es intentar tener varias instancias de nuestra aplicación, (De hecho el SLA de Windows Azure te sugiere  – casi obliga en termino de legalidad para cumplir con el SLA – tener dos instancias por lo menos de computo en donde hacer el despliegue.) ante este escenario la “Azurificación” puede comenzar por implementar el Cache Service con el fin de administrar las sesiones de nuestra aplicación web (Tema que tocaremos en un próximo post).

Después de pasar por esta pequeña “Azurificación” podríamos pensar en implementar el Storage Service con el fin de disminuir costos en BD relacionales.

Crear una aplicación web desde cero aprovechando el Potencial de Windows Azure: En este escenario contemplamos la idea de realizar una aplicación de principio a fin implementando las características de Windows Azure como nuestra “Lanza” principal y “aliado” tecnológico, esto debe ir acompañado de un buen arquitecto de software que te guie en la toma de decisiones ante este magnifico escenario; recordemos que Windows Azure es PAAS (Plataform As A Service) y es allí (en el consumo de la plataforma) en donde se encuentra lo mejor de Windows Azure, implementar sistemas transaccionales con la ayuda de los Servicios de Caché, implementar clientes remotos que consuman nuestros servicios (S+S) implementando el Service Bus, pensar en un sistema de trazabilidad de nuestra aplicación basado en el Storage para disminuir los costos, implementar clientes administrativos de nuestra plataforma para interactuar con el computo elástico.

Todas estas características tienen como único fin, ofrecer un entorno robusto, confiable, seguro y escalable para nuestras aplicaciones, características que solo podrían asegurar grandes compañías con equipos de TI gigantes a precios que un pequeña empresa pueda pagar!

Hasta Pronto.!

Juan Manuel Lombana