Syntax Highlighter

lunes, 19 de agosto de 2013

[Event] CloudBurst 2013: the Sweden Windows Azure Group Developer Conference

CloudBurst2013CloudBurst is a Windows Azure developer conference run by the Sweden Windows Azure Group (SWAG). The event features two days of sessions from Windows Azure community and industry leaders and provides real-world content for Windows Azure developers and those wanting to explore the platform. The focus will be on developing Windows Azure applications and real-world cloud-based solutions.

The event will run for two days on September 19 - 20, 2013 at the headquarters of Microsoft in Stockholm, where the "top" Azure MVPs will share sessions around the Windows Azure platform. Organizers for SWAG are the two Swedish Windows Azure MVPs Alan Smith and Magnus Mårtensson.

The event is free to attend and if can’t go to Stockholm for the date don’t worry, the event will be streamed via Microsoft World Wide Events. You have all the information on the CloudBurst 2013 website:

CloudBurst 2013 event information

And don’t loose the “DNN Cloud Services – Under the Hood” session!

ReadySetGoIt is my pleasure to participate as a speaker in a session to discuss how we implemented DNN Cloud Services on the Windows Azure platform. For an hour I will be showing some details of the most interesting subsystems as the DNN Verification Extension Service created using Azure cloud services and messaging queues; how we have deployed about 20,000 instances of product trials with Windows Azure Pack for Windows Server on Virtual Machines and all fully automated; or how we have built a backend system using a CQRS pattern and able to deploy DNN instances on any infrastructure, from web Sites to Cloud Services.

See you in Stockholm!

Un saludo y “Happy Kodning”!!

PS: Did I tell you that you can still get an Aston Martin? Smile

[Evento] CloudBurst 2013: estos suecos se han vuelto locos!!

CloudBurst2013CloudBurst es una evento para desarrolladores de Windows Azure organizada por el grupo de usuarios de Windows Azure de Suecia (SWAG). El evento transcurre durante dos días llenos de sesiones de líderes de la comunidad e industria de Windows Azure, ofreciendo contenido de mundo real para desarrolladores de Windows Azure y también para aquellos que deseen explorar la plataforma.

El evento se desarrollará durante dos días, entre el 19 y 20 de septiembre de 2013 en la sede de Microsoft de Estocolmo, donde los “top” Azure MVPs compartirán sesiones alrededor de la plataforma. Los organizadores del grupo de usuarios SWAG son los dos Windows Azure MVPs Alan Smith y Magnus Mårtensson.

La asistencia al evento es totalmente gratuita y si te queda algo lejos no te preocupes, que también habrá streaming en directo a través de Microsoft World Wide Events. Tienes toda la información en el sitio web de CloudBurst 2013:

Información y registro de CloudBurst 2013

¡Y esta vez la lío con ellos!

ReadySetGoEs para mí un placer poder participar como ponente en una de las sesiones para hablar de cómo hemos implementado DNN Cloud Services sobre la plataforma Windows Azure –en este en post de MSDN Spain puedes encontrar información relativa al tema. Durante una hora mostraré los detalles de los subsistemas más interesantes como el DNN Extension Verification Service creado usando Azure cloud services y colas de mensajería; cómo hemos creado cerca de 20.000 instancias de pruebas de producto con Windows Azure Pack para Windows Server sobre Virtual Machines y todo de forma totalmente automatizada; o cómo hemos construido un sistema de backend mediante un patrón CQRS capaz de desplegar DNN sobre cualquier infraestructura, desde Web Sites hasta Cloud Services.

Nos vemos en septiembre.

Un saludo y “Happy Kodning”!!

P.D. ¿Te había dicho que todavía puedes conseguir un Aston Martin? Smile

martes, 18 de junio de 2013

“Path too long” when using local storage in an Azure Cloud Service

imageIt is insane that in 2013 we still try to workaround the 260 character limit in a file path, more when the conversations are centered on services, scaling and other meta-cloud philosophies.

But this problem is still here and working with VMs hosted in the cloud is no different, on-premise problems will appear in the same way when online. I would recommend the “Long Paths in .NET” series from Kim Hamilton where this matter is deeply discussed. The post is from more than 6 years ago…and this is not solved yet.

So let’s talk about the problem I had. When using local storage on an Azure web or worker role, the root location for this storage while running on Azure starts with a path that can “eat” almost the half of the MAX_PATH -note that I’m not referring to the problem when playing on DevFabric in your local environment, whose solution is commented on this MSDN blog post. This will be something like:

C:\Resources\Directory\<RoleDeploymentId>.<RoleName>.<LocalStorageName>

As example:

C:\Resources\Directory\5bfa990c7fe730f3a1c7c7b40d249462.MyWebRole.MyLocalStorage

The problem is that the RoleDeploymentId is 32 char length, and if you want to keep some sanity on your role names and storage names you will use something that has some meaning. In my case, the path was “eating” 108 chars, almost the half of the max path. While creating some recursive folders inside that temp path the “Path too long” error will appear sooner than later.

Techniques from the past to solve problems from the past

After playing a little bit with Subst.exe, didn’t convince me because I was trying to keep distance from mounting and managing drives between different user sessions. But then César Abreu give an interesting idea: why not use old style DOS format for the paths?

Interesting approach, so after some reading on the Fsutil.exe documentation on TechNet, I did some tests on a running instance:

1) Enable the short name behavior for volume C:

image

2) Add a short name to the local storage folder

image

3) Verify

image

I finally created a simple two line startup task to be executed with elevated privileges and that would give me an additional 83 characters.

REM Enable short names on volume C:
fsutil.exe 8dot3name set c: 0

REM Add a short name to the local storage folder
fsutil.exe file setshortname "C:\Resources\Directory\%RoleDeploymentID%.MyWebRole.MyLocalStorage" S



 


The first line enables the short name behavior for volume C:. I noticed that this is enabled for other volumes on an Azure role, but is not enabled by default on C: drive. The second line simply sets the folder short name as “S”. With this I can use then the path “C:\Resources\Directory\S” instead of the long one, and worked like a charm. Note that you can’t do the same for “Resources” and “Directory” folder names, since they are in use during the role startup, and would give you an error while trying to do the operation.


Hope this helps!

martes, 16 de abril de 2013

Windows Azure: disponibilidad general de Infraestructura como Servicio (IaaS)

imageUno de los acrónimos que más está de moda en nuestros mundos de Azure es del de “GA”, que significa el cambio de un servicio en modo “Preview” a disponibilidad general (del inglés General Availability), pasando de ser un servicio con soporte limitado a un producto totalmente soportado, con sus SLAs, precios definitivos, etc. Pues hoy es uno de esos días en los que oyes por ahí: ¡Hey, que Windows Azure IaaS es ahora GA!

Y es que también es normal encontrarnos con alguna sorpresa cuando un producto pasa a ser GA, normalmente como “regalito” que acompaña el lanzamiento. Lo que era menos de esperar era que esos anuncios incluyeran co-lateralmente mejoras en precios en otros servicios como cloud services. ¿Más barato? Oh yeah!

Aquí podéis ver en detalle el anuncio de Scott Guthrie en su blog con todo lujo de detalles. No voy a copiar aquí todos ellos, sino que voy a hacer incidencia en lo que me parecen los 3 grandes noticiones de esta puesta en marcha de IaaS en Windows Azure.

Nuevas plantillas de VM

Una de las grandes novedades es que a partir de ahora ya puedes desplegar una máquina con SQL Server, BizTalk Server o Sharepoint sin tener que hacer frente al pago de la licencia completa del software de servidor, sino que continuando con el modelo de pago por uso, existe la modalidad del pago de un sobrecoste adicional al precio de hora estándar de computación. Hora que usas, hora que pagas. No lo usas, no lo pagas. Fácil.

En el caso de SQL Server, nos encontraremos con plantillas de SQL Server 2012 Standard y Enterprise desplegados sobre Windows Server 2008. Si bien ya hay precio para la edición Web, no hay plantilla para desplegarlo.

Para BizTalk también encontraremos plantillas para las ediciones de evaluación, la Standard y Enterprise. Para el caso de Sharepoint, aún no están disponibles los precios, aunque sí que está la plantilla de Sharepoint Server 2003 Trial.

image

Nuevos tamaños de máquina XXL y XXXL (A6 y A7)

Otra de las grandes novedades es la posibilidad de desplegar instancias de uso intensivo de memoria, viniendo a duplicar el tamaño ExtraLarge que teníamos hasta ahora en lo que a memoria RAM se refiere. De este modo, los tamaños de instancias irán desde A0 hasta A7, cada una duplicando en memoria a la anterior. OJO: no me preguntéis dónde se dejaron A5 (esto trataré de averiguarlo):

image

image

Nuevos precios reducidos, ¡y no sólo para IaaS, también para PaaS!

Por último, una de las terceras grandes novedades es el anuncio de una reducción de precios de un 21% sobre Windows Azure Virtual Machines (IaaS) y de un 33% de reducción de precios en soluciones desplegadas bajo modelo PaaS (toma ya! un 12% de rebaja adicional si despliegas DNN en modelo PaaS con el Accelerator!!!). Estos nuevos precios casan con la oferta actual bajo demanda de Amazon, tanto para máquinas Windows como Linux.

Cabe recalcar que si bien Windows Azure Virtual Machines (IaaS) está disponible generalmente desde hoy 16 de abril, se continuará ofreciendo el precio con descuento de la Preview hasta el 31 de Mayo. Los nuevos precios de GA tendrán efecto a partir del 1 de junio.

Precios para modelo IaaS

image

Precios para modelo PaaS

image

Toda la información de los nuevos tamaños de máquina y sus precios los puedes encontrar en este enlace: https://www.windowsazure.com/en-us/pricing/details/virtual-machines/

Conclusión

En este post he comentado las que me parecieron las tres principales novedades incluidas en este lanzamiento, pero hay muchas otras y otros pequeños huevos de pascua –¿comenté que ahora los VHD de S.O. son de 127Gb, o que puedes cambiar el nombre del usuario “Administrator”?-, así que no olvides visitar el post original de Scott Guthrie.

Por lo que he podido experimentar después de haber desplegado cerca de 100 servidores en modo IaaS desde su salida en modo Preview en Junio de 2012, el servicio de Windows Azure Virtual Machines ha ido mejorando en rendimiento, confiabilidad y disponibilidad. De hecho, el principal problema que podíamos encontrarnos a fecha de hoy era que al estar en modo Preview, no era un producto totalmente soportado con sus acuerdos de niveles de servicio. Con el lanzamiento de hoy, esto lo cambia todo, ya que todas los despliegues que tuvieras pasan a tener soporte y por lo tanto, pasa a ser un lugar donde puedes poner tus despliegues de producción.

Veremos qué más sorpresas nos traen nuestros amiguetes de Microsoft en los próximos meses. Están que lo petan con tanto anuncio.

¡Un saludo y happy coding!

sábado, 30 de marzo de 2013

Pidiendo una de camarones mientras tu sitio autoescala en Azure

CamaronesAzureDespués de la salida de la última versión 6.4 del DotNetNuke Azure Accelerator que, recordemos, añade soporte para alta disponibilidad de tus sitios web con DotNetNuke en Azure, llega el momento de probar opciones de autoescalabilidad para ajustar la capacidad a la demanda y como no, ahorrar en costes.

No sé si todos sabréis de una de las últimas adquisiciones de Microsoft. Se trata de la startup MetricsHub, cuyo principal foco es la monitorización y automatización de escalado de despliegues realizados sobre Windows Azure, para sacar el mayor partido posible a la flexibilidad y valor a nuestras soluciones en la nube. Lo mejor de esta adquisición es que como resultado final todos los clientes de Windows Azure pueden activar la versión preliminar de estos servicios a través de la Store de forma…GRATUITA!!!

Las características más destacables de estos servicios serían las siguientes:

MetricsHub Dashboard ActiveScale desde MetricsHub Notificaciones
Completo cuadro de mandos con un resumen de los datos más importantes de tu servicio en la nube ActiveScale mantiene tu servicio en condiciones cuando la carga aumenta, del mismo modo que decrementa los costes Envío de alertas a través de correo electrónico e integración con PagerDuty

MetricsHub
Ver video

AutoScale
Ver video

Notifications
Ver video

metrics_hubSi quieres saber más sobre esta adquisición sigue este anuncio en los blogs de MSDN: “Microsoft Acquires MetricsHub”.

En este artículo veremos un paso a paso sobre cómo activar la monitorización de nuestro sitio DotNetNuke desplegado sobre Windows Azure, así como habilitar las opciones de autoescalado y notificaciones para poder irnos a tomar tranquilamente una tapa de camarones a la playa mientras las máquinas trabajan por nosotros.

IMPORTANTE: para que las funciones de autoescalado funcionen correctamente, debes haber desplegado tu sitio web al menos con la versión 6.4 del DotNetNuke Azure Accelerator.

Activando MetricsHub en nuestra suscripción

Para comenzar a examinar las opciones de autoescalado de nuestra instancia DotNetNuke sobre Windows Azure en modo PaaS (una instancia desplegada como un “cloud service” con el Accelerator, no como un Azure Website), lo primero que tenemos que hacer es habilitar las opciones de monitorización en nuestra suscripción. Para ello realizaremos los siguientes pasos:

  1. Iniciar sesión en la consola de administración de Windows Azure en https://manage.windowsazure.com
  2. En la barra de comandos inferior, pulsamos sobre “Nuevo” y luego en “Store”
    AzureStore
  3. En la pantalla de selección de Add-ons, buscar “Active Cloud Monitoring” (ahora mismo aparece como el primero de la lista)
    ActiveCloudMonitoring
  4. Al pulsar siguiente, nos congratula ver que efectivamente el servicio es GRATUITO. Pero OJO: en la región, indica la misma localización donde tienes ubicados tus servicios cloud, ya que de lo contrario puede incurrir en gastos de tráfico saliente desde tus cuentas de almacenamiento donde se está guardando la información de diagnóstico.
    PersonalizaAddon
  5. Al pulsar siguiente, podemos volver a ver cómo el servicio es gratuito. Aún no se han ofrecido detalles de cómo evolucionará este servicio. Por ahora, el límite que he podido constatar es de que no admite monitorización de más de 150 servidores, límite más que aceptable.
    Review
  6. Al pulsar sobre finalizar, se comienza a desplegar nuestro servicio “Active Cloud Monitoring”, y al cabo de unos segundos ya está todo listo para comenzar a configurar la monitorización
    ActiveCloudMonitoringEnabled
  7. Al pulsar sobre el Add-on, nos lleva al Dashboard del servicio en Azure, aunque no será desde este portal donde accedamos a toda la información. Para hacer esto último, pulsamos sobre el enlace de visitar la web de “MetricsHub, Inc” para los pasos siguientes:
    VisitMetricsHub
  8. Una vez en el sitio de MetricsHub, el primer paso es configurar qué subscripciones y/o servicios queremos monitorizar. Para ello es necesario que subamos el fichero “.publishsettings” generado por nuestro portal (que contendrá un certificado de administración serializado y los ids de suscripción que puede administrar). Este proceso se realiza en dos pasos automáticos siguiendo las instrucciones en pantalla
    GetStarted2
    GetStarted3
  9. Llegó la hora de indicar qué suscripciones y/o servicios queremos monitorizar. Seleccionamos los que queremos –más tarde podremos añadir o quitar desde las opciones de administración de la cuenta- y le damos al botón de comenzar, proceso que tarda unos minutos en finalizar.
    GetStartedFinish
    Por el momento el servicio monitorizará cloud services (PaaS), Windows Azure Websites, espacio en cuentas de almacenamiento y máquinas virtuales (IaaS). Para estas últimas, tendrás que hacer el paso adicional de instalar un agente local que envíe los datos de monitorización. Como el DNN Azure Accelerator funciona sobre PaaS, no tendrás que realizar ninguna operación adicional de este tipo.

Jugueteando con la monitorización

Una vez que está todo configurado, es el momento de permitirle unos minutos al servicio para que comience a obtener los datos de diagnóstico. Una de las cosas que me llama la atención es que toda la interfaz de usuario se ha implementado mediante “Responsive design”, con lo que puedes acceder desde cualquier dispositivo móvil sin problemas ya que éstas se ajustan dinámicamente al tamaño de pantalla en cada dispositivo.

Home1Hom2

Una vez que le hemos dado tiempo a obtener datos, veremos como las gráficas de monitorización comienzan a funcionar dentro de cada servicio.

Como ejemplo, veamos la monitorización de un site de DNN desplegado en modo de alta disponibilidad con un mínimo de 2 instancias ExtraSmall. Veremos 3 niveles de monitorización de un servicio cloud –que podremos personalizar añadiendo más o menos datos a las gráficas y tablas de datos-.

El primer nivel de monitorización es a nivel general del servicio cloud:

SiteHA

Como vemos, el uso de memoria está bastante ajustado ya que en el ejemplo usamos máquinas ExtraSmall con sólo 768Mb de RAM.

Al pulsar sobre el role “DNNAzure” accedemos al segundo nivel de monitoración a nivel de Role, donde podemos a nivel general las estadísticas para cada uno de los roles de uso de CPU, memoria, operaciones de lectura y escritura en disco así como tráfico de red entrante y saliente, todo en una sola pantalla muy bien consolidado.

RolesHA

Por último, al pulsar sobre el nombre de una de las instancias de role, por ejemplo “DNNAzure_IN_0”, accederemos al tercer nivel de monitorización a nivel de instancia, donde podremos monitorizar hasta a nivel de proceso!!!

InstanceDetail

Habilitando el autoescalado con ActiveScale

Bueno, la tapa de camarones y la caña están servidas sobre la mesa y queremos tomárnosla tranquilamente. ¿Qué hacemos? Pues activamos el autoescalado para no tener que preocuparnos de si el rendimiento del sistema es el adecuado a la vez que reducimos los costes a la carga de cada momento.

Para ello, accedemos a la configuración de ActiveScale desde el nivel 1 (cloud service) o nivel 2 (role) de monitorización del cloud service:

ActiveScaleSettings

Y aquí las opciones más interesantes del servicio, no sólo porque permiten autoescalado automático basándose en el uso del site, sino que además permite habilitar tareas automáticas de mantenimiento de salubridad del sistema –que denominan “Automatic Healing”, como por ejemplo, reiniciar una instancia de role si se está por encima de un umbral de CPU durante un tiempo determinado, etc.

ActiveScaleDetails

Habilitando las notificaciones

Bueno, además de que el sistema se ajuste a la carga, se autorecupere, etc. queremos recibir notificaciones de alerta por correo electrónico, por SMS, iOS messages, etc. si alguno de los servicios sufre algún incidente. ¿Qué hacemos? Alegremente vemos que este servicio también está incluido dentro de MetricsHub. Para habilitarlo, accedemos al menú de notificaciones desde la página de inicio pulsando sobre el menú “All Issues”.

NotificationsMenu

Desde aquí podemos ver el histórico de incidencias en todos los servicios, tanto actuales como pasadas:

AllIssues

Pulsando sobre el botón de “Get Email Notifications…” podemos configurar cada una de las reglas para el envío de alertas por correo electrónico. Las opciones de activación de estas reglas se pueden parametrizar a través de la supervisión de umbrales de contadores, además de poder combinarlos entre ellos para la configuración de una regla:

SetupNotifications

Para acceder a la configuración de notificaciones por SMS, etc. simplemente tienes que crear una cuenta en PagerDuty. Este servicio es de pago, contando con una trial de 30 días.

Conclusión

Después de haber puesto en marcha un ejemplo de despliegue y hacer algunas pruebas de carga sobre el sistema he podido ver que efectivamente el servicio autoescala hacia arriba y abajo pasado el tiempo configurado. Las notificaciones llegan como se esperan y el detalle de las mismas es muy bueno. Acceder al interfaz de usuario desde dispositivos móviles cuando no estás delante de tu PC de sobremesa es genial, sobretodo cuando se comporta tan bien mostrando gráficas y todo tipo de detalles.

Recordando que este servicio se ofrece en modo “preview” de forma gratuita, sólo queda esperar qué se nos ofrecerá en un futuro. Yo por ahora, “lo compro” Smile

Me voy a por la tapa de camarones.

Un saludo y Happy Coding!

Related Posts Plugin for WordPress, Blogger...