WebCast: Catálogo de servicios en la nube

Desde el grupo de usuarios de Cloud Computing de España (CLOUDES) os proponemos una sesión en la que tres de las más importantes empresas de servicios en la nube en España nos expondrán los servicios que ofrecen en IaaS, PaaS y SaaS. Entre las empresas asistentes contaremos con la colaboración de Arsys, Microsoft y VMWare.

Fecha:

3 de noviembre 12:00h

Zona horaria: (GMT+01:00) Madrid, París Duración: 1 hora.

Agenda:
Servicios en la nube
Mesa redonda

Ponentes:

Juanjo García Cabrera – Director grandes cuentas en Arsys.
Juanjo Carmena – Windows Azure Sales, Western Europe.
Alejandro Solana – Director técnico de VMWare.

Registro

https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032497884&Culture=es-ES

SQL Azure Federation

Una de las nuevas funcionalidades que estarán disponibles en SQL Azure para finales de 2011 es la característica de federación.

Uno de los grandes beneficios de la plataforma Windows Azure es la capacidad que ofrece a la hora de escalar aplicaciones. De manera muy sencilla y dinámica un usuario puede modificar el número de instancias de una aplicación.

Hablando de instancias de Windows Azure este punto es cierto, pero la base de datos podría convertirse en un cuello de botella, ya que ésta no tiene la capacidad de escalado que tienen las instancias de Azure. El usuario no dispone de la posibilidad de realizar un escalado horizontal y aumentar o disminuir las bases de datos SQL Azure en función de las necesidades de la aplicación.

Por ejemplo, este es un escenario típico en aplicaciones multi-tenant, dónde con un mismo despliegue se quiere ofrece el servicio a diferentes clientes.

Al implementar soluciones de este tipo la primera aproximación es usar una única base de datos capaz de contener la información de todos los clientes.

Esta solución es perfectamente viable, pero en algunos escenarios surgen problemas de escalabilidad en caso de que la aplicación crezca en el número de clientes.

federation2

Otra de las soluciones aportadas, buscando un alto grado de escalabilidad ha sido utilizar múltiples base de datos, en lugar de una única que contenga todos los datos de la aplicación.

La aplicación es capaz de gestionar múltiples clientes diferentes, cada uno con su información, pero a nivel de base de datos cada uno tiene su base de datos propia.

Este escenario es perfectamente viable, pero implica que si existen 1000 clientes existirán 1000 base de datos, lo que aumente la complejidad de administración de la aplicación y claro está, los costes de despliegue.

SQL Azure Federation viene a cubrir este tipo de escenario, ya que esta característica simplificará enormemente el escalado horizontal, posibilitando que el usuario pueda aumentar o disminuir las bases de datos de la aplicación de forma dinámica y sin que este hecho provoque una parada del servicio.

Es el usuario quién decide los miembros de la federación, es quién decide cuándo añadir o disminuir miembros y es quién decide en base a qué criterio debe realizarse la partición de la información (en la primera versión sólo soportará la partición por rangos, por ejemplo, por cierto valor de un determinado campo).

La sintaxis de la sentencia para crear una federación es la siguiente:

CREATE FEDERATION federation_name { <federation_distribution_scheme> }

<federation_distribution_scheme> ::= <federation_distribution>

<federation_distribution> ::=

(distribution_name <data_type> <distribution_type>)

<data_type> ::=

[ system_type_name . ] type_name

Dentro de la federación existe un elemento que se conoce como “Federation Root”. Este elemento representa el nombre lógica de la base de datos y es quién conoce todos los miembros de la federación y qué información tiene cada uno de ellos.

federation

Las aplicaciones siempre debe conectarse al “root”, y éste quién dirige las peticiones a la base de datos correspondiente.

SQL Azure Data Sync

SQL Azure Data Sync es una de las funcionalidades de SQL Azure accesible desde el portal de administración de Windows Azure, aunque esté todavía en CTP.

Básicamente, como se puede entender de su nombre, es un servicio de sincronización de datos, que permite sincronizar base de datos de SQL Azure que estén en el mismo o diferente datacenter o based de datos que se encuentren on-premise con base de datos que se encuentren hosteadas en Windows Azure.

La sincronización entre las base de datos se podrá hacer de forma bidireccional.

Como paso adicional que se verá posteriormente, la sincronización con una base de datos on-premise requiere la instalación de un agente de sincronización en el servidor on-premise. Este paso no es necesario en el caso de realizar el proceso entre base de datos que estén en Windows Azure.

image

Como se ha comentado anteriormente toda la funcionalidad está accesible desde el portal de administración de Windows Azure.

image

Una vez se accede a la característica de sincronización, el primer paso será realizar un aprovisionamiento del servicio. El proceso de aprovisionamiento pedirá que aceptar los términos de licencia e indicar en qué datacenter se quiere realizar dicho aprovisionamiento.

image

Una vez realizado el proceso se habilitarán las opciones de sincronización. En proceso de sincronización es un asistente en el cuál se guiará paso a paso sobre todas las acciones necesarias para configurar un proceso de sincronización.

image

Sincronización entre base de datos SQL Azure

Si se selecciona la opción de sincronización entre base de datos SQL Azure, el primer paso será dar un nombre a dicho proceso.

image

El siguiente paso será añadir una de las base de datos a sincronizar, indicando la ubicación de la misma y las credenciales de acceso.

image

image

El siguiente paso será elegir la base de datos con la cuál se realizar la sincronización.

En este paso, como se puede apreciar en la figura, se debe elegir la dirección del proceso de sincronización.

image

Una vez indicados los dos puntos de la sincronización el siguiente paso será indicar la periodicidad del proceso y el método de resolución detección de conflictos que quiere aplicarse.

image

Y en el último paso puede definirse con más detalle qué información es la que se desea sincronizar; qué tablas, qué columas etc…

image

image

Y por último, el asistente pedirá guardar los cambios seleccionando la opción de “deploy”.

image

Una vez configurado todo el proceso desde el portal de administración podrá verse toda la información del proceso y claro está, modificar cualquiera de los elementos configurados en el asistente.

image

Así mismo también el portal de administración nos ofrece la posibilidad de consultar un log con todas las operaciones que se realizan en los procesos de sincronización.

image

Comentar por último que aunque en este apartado el proceso de creación del grupo de sincronización se ha hecho a través de un asistente, existe también la posibilidad de no usarlo y de crear el proceso de sincronización de forma “manual” consiguiendo, claro está, el mismo resultado.

Sincronización con un servidor on-premise

El proceso de sincronización con un servidor on-premise es prácticamente igual al realizado entre servidores SQL Azure, salvo por el hecho que implica la instalación de un agente de sincronización en el servidor on-premise.

Aunque para realizar un proceso de este tipo se podría utilizar un asistente similar al visto anteriormente, en este ejemplo lo que se va a realizar es añadir un servidor on-premise al grupo creado anteriormente.

Para ello, sobre el diagrama de la Figura anterior puede seleccionarse la opción de añadir un servidor on-premise.

Dicha opción permite añadir un servidor que ya disponga del agente de sincronización o un nuevo servidor que no lo tenga. En este caso se optará por la segunda opción.

image

image

image

Después de este paso será necesario descargarse el agente de sincronización (msi) e instalarlo en el servidor on-premise. Una vez instalado hay que arrancar el agente (desde el menú inicio) e indicarle la clave de acceso generada en el paso 3.

image

Una vez hayamos configurado la clave, el siguiente paso será registrar la base de datos local que queremos sincronizar.

image

Una vez hecho este paso, se podrá ver cómo la base de datos registrada se muestra en el servidor y podemos seleccionarla para ser usada en el proceso de sincronización.

image

Una vez añadido el servidor, para que la modificación tenga efecto será necesario volver a realizar un despliegue, seleccionado la acción “deploy”.

image

Novedades para SQL Azure

Durante estos días Microsoft está celebrando el SQL PASS Summit 2011, evento en el cuál se están anunciando entre otras muchas cosas un montón de novedades para SQL Azure, algunas de las cuáles ya podemos empezar a disfrutar y otras que llegarán de aquí a finales de año.

En los próximos días espero poder  mostraros con mayor detalle algunas de las características. Aunque seguro que algo más se anunciará, de momento el resumen de lo que se ha comentado hasta el momento:

  • Se multiplicará por 3 el tamaño máximo de una base de datos SQL Azure, pasando de 50 GB a 150 Gb

 

  • Llegará SQL Federation, que simplificará el escalado horizontal usando el patrón de “sharding” basado en el tamaño de la base de datos o la carga de ésta. Simplificará enormemente la posibilidad de crear y administrar un sistema de base de datos que hagan de sharding.

 

  • Se añadirán más funcionalidades en el portal de administración para mejorar las capacidades de monitorización, navegar por los schemas de la base de datos, ver los planes de ejecución, datos espaciales, índices, keys u obtener estadísticas para conocer el rendimiento de las querys que se ejecuten contra la base de datos.

 

  • Nueva CTP de SQL Azure DataSync

SQLAzure5

Esta CTP ya se encuentra integrada dentro del portal de administración y puede ser usada por todos los usuarios.

SQLAzure

SQLAzure2

 

  • Nueva CTP de SQL Azure Reporting Service

Se ha anunciado una nueva versión CTP de SQL Azure Reporting Services, versión que está disponible ya mismo desde el portal de administración. Esta versión ya a su vez también está disponible en todos los datacenters de Windows Azure, lo que hace que podamos desplegarlo en aquel que nos interese para nuestra aplicación.

SQLAzure3

SQLAzure4

Profiling de aplicaciones Windows Azure

Hace poco me preguntaba un compañero sobre cómo usar un profiler en aplicaciones desplegadas en Windows Azure. La verdad es que es muy fácil, ya que desde el Sdk 1.4 esta característica está incluida dentro de la funcionalidad ofrecida por la plataforma.

En funcionamiento y configuración es exactamente igual que el profiler que podríamos emplear en nuestras aplicaciones on-premise, lo único que cambia es debemos indicar que queremos que hacer profiling de la aplicación que estamos desplegando.

En menú de publicación de Visual Studio podemos ver cómo está disponible dicha opción. Una vez seleccionada también deberemos elegir entre los tipos de profiling que existen.

image

image

Antes de obtener la información generada, debemos indicar que queremos usar los símbolos de depuración.

image

Una vez desplegada la aplicación se puede acceder a la información a través del “server explorer” de Visual Studio. En este momento dónde se solicita la información al agente de profiling instalando en la instancia desplegada para que éste deje la información en el storage, para poder descargarla desde ahí.

image

image

Y una vez tenemos la información, sólo queda analizarla y buscar los puntos de mejora, tal y como haríamos con cualquier otra aplicación no desplegada en Windows Azure.

image

[Artalde.NET] – ESCALANDO EL DENALI: NOVEDADES EN SQL SERVER 2012

El 18 de octubre, martes, tendrá lugar la siguiente sesión presencial organizada por el grupo de usuarios Artalde, dónde Pablo Alvarez Doval (Plain Concepts) nos contará las novedades de SQL Server 2011 para desarrolladores.

El evento empezará a las 19:00h y el lugar el de siempre, la universidad de Deusto.

PlainLogo_white

Descripción:
Durante esta sesión vamos a darle un repaso a las novedades del motor relacional de la próxima versión de SQL Server (Denali), desde los cambios en la instalación hasta las novedades del lenguaje TSQL, pasando por las novedades en Alta Disponibilidad, almacenamiento de datos y, como no, las características de versiones anteriores que pasan a estar obsoletas.

Se pretende tocar las siguientes áreas:

· Novedades en:

  • Actualización/Instalación:
    • Migración, etc.
  • Administración:
    • Bases de datos contenidas
    • FileTables
    • Parámetros de arranque
  • Disponibilidad:
    • Always-On
    • Cluster en múltiples subredes
  • Programabilidad:
    • Mejoras en SSMS
    • Juneau
    • Secuencias, THROW, EXECUTE AS .. WITH RESULT SETS y descubrimiento de metadatos, etc.
  • Rendimiento:
    • Almacenamiento basado en columnas
  • Testing/Torubleshooting:
    • Reproducción de Trazas distribuida
    • Eventos Extendidos

Dirección del evento:

Universidad de Deusto

Avda. de las Universidades, 24
Aula de videoconferencia (2º piso) Edificio ESIDE Bilbao Vizcaya 48007

Registro:

https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032496591&Culture=es-ES

Windows Azure Geo-replication

Una de las últimas novedades de la plataforma es la característica de geo-replicación. Con esta característica la información almacenada en los blob y tablas del storage se almacenarán de forma transparente y sin coste adicional en otro datacenter de la misma región.

Aunque a nivel del propio datacenter Windows Azure Storage ya dispone de mecanismos para evitar la pérdida de información, con esta característica ganamos todavía mucho más desde el punto de vista de recuperación ante desastres, ya que la información se duplicará en un datacenter diferente al que hayamos elegido en la creación del storage.

Cuando creamos el storage elegimos la ubicación para el storage, siendo Windows Azure de forma automática el que elegirá la ubicación del datacenter de respaldo. En esta primera versión hay una relación 1 a 1 entre el datacenter primario y el secundario, el que hace de respaldo. En un futuro se podrá elegir cuál será el que haga de secundario e incluso se podrá forzar un intercambio de roles.

En la siguiente tabla podéis ver la relación 1 a 1 que os comento:

North Central US South Central US
South Central US North Central US
North Europe West Europe
West Europe North Europe
South East Asia East Asia
East Asia South East Asia

La operación de sincronización es un proceso asíncrono, transparente para nosotros y que no implica una pérdida de rendimiento en las operaciones que hagamos con el storage. Si ocurrise un fallo el primer punto de restauración sería la que se encuentra el mismo datacenter, si el datacenter principal se viese comprometido de forma transparente el secundario pasaría a darnos el servicio.

Este paso es transparente para la aplicación porque únicamente se realiza una actualización del DNS para que las URLs que usan nuestra aplicación apunten al datacenter secundario en lugar de al primario.

Por último, aunque la opción es gratuita, podría deshabilitarse esta característica contactando con el soporte de Windows Azure.

Windows Azure PowerShell Cmdlets 2.0

Trabajando con aplicaciones reales en Windows Azure te das cuenta rápidamente de que necesitas automatizar ciertas tareas, ya que hacerlas de manera manual puede resultar muy pesado y poco productivo; despliegues, actualizaciones, monitorizaciones etc…

Para esta fin los CmdLets de PowerShell para Windows Azure ha sido desde su aparición un gran aliado, aliado que ahora se actualiza a la versión 2.0 que incluye nueva funcionalidad gracias a que Windows Azure ofrece cada vez más APIs de Administración que los desarrolladores podemos utilizar. Claro está, que todo lo que hacen estos CmdLets lo podríamos hacer nosotros mismo.

Tanto la descarga como la documentación sobre su utilización la podéis encontrar aquí.

Las novedades más importantes son los comandos para trabajar con SQL Azure, aquellos que exportan toda las métricas del Storage y los que permiten tratar la información de diagnóstico de las aplicaciones Azure..

Por ejemplo, algunos comandos nuevos son:

Window Azure Storage Analytics

Get-StorageAnalyticsLogs Downloads the analytics logs for the specified service.
Get-StorageAnalyticsMetrics Downloads the Windows Azure Storage Analytics metrics for the specified service.
Get-StorageServicePropertiesForAnalytics Gets Windows Azure Storage Analytics properties for a storage account.
Set-StorageServicePropertiesForAnalytics Sets Windows Azure Storage Analytics properties for a storage account.

SQL Azure Servers

Get-SqlAzureServer Enumerates SQL Azure servers that are provisioned for a subscription.
New-SqlAzureServer Adds a new SQL Azure server to a subscription.
Remove-SqlAzureServer Deletes a SQL Azure server from a subscription.
Set-SqlAzurePassword Sets the administrative password of a SQL Azure server.

SQL Azure Firewall Rules

Get-SqlAzureFirewallRules Retrieves a list of all the firewall rules for a SQL Azure server
New-SqlAzureFirewallRule Updates an existing firewall rule or adds a new firewall rule for a SQL Azure server
Remove-SqlAzureFirewallRule Deletes a firewall rule from a SQL Azure server.

SQL Azure Import/Export

Desde hace ya tiempo ya un tiempo podemos disfrutar de una nueva funcionalidad de SQL Azure, todavía en CTP, que permite exportar e importar base de datos al Windows Azure Storage.

Desde el portal de administración nos será muy fácil exportar una base de datos completa al Windows Azure Storage y volver a importarla.

Como podéis ver, si vamos al portal de administración tenemos dichas opciones en la barra superior.

ImportExport

Seleccionando la base de datos que nos interese podemos seleccionar la opción exportar, la cual nos pedirá la información necesaria para la operación.

En primer lugar nos pedirá las credenciales de nuestra base de datos y en segundo lugar le tendremos que indicar la ubicación dónde debe dejar el resultado de la operación.

La URL debe ser la URL de un blob que no exista. El contenedor sí debe existir.

Para acceder al contenedor podremos usar la clave del storage (Access Key) o una clave compartida (Shared Key).

ImportExport2

Una vez realizada la operación nos indicará que dicho proceso se iniciará. El proceso no es inmediato, depende del tamaño de la base de datos.

Por este motivo el portal también ofrece una ventana de estado dónde podemos ver el estado de todas las operaciones de exportación e importación, ya que ambas operaciones se hacen de forma asíncrona.

ImportExport3

Una vez hecha la operación podemos ver que se ha creado un nuevo blob en el contenedor especificado.

ImportExport5

Y si queremos importarla, tan fácil como seleccionar la opción importar, indicar las credenciales, el nombre de la nueva base de datos dónde se importarán los datos y el blob dónde está la base de datos.

ImportExport6

La ventana de estado mostrará el estado de todas las operaciones de importación y exportación.

ImportExport4

MVP Windows Azure

Post cortito para anunciar una noticia fantástica a nivel personal, que no es otra que Microsoft ha decidido nombrarme MVP en la categoría de Windows Azure.

mvplogohor_4840ACD1

Quería aprovechar este nombramiento para dar las gracias a todas las personas que en uno u otro momento me han dado su apoyo y a todas aquellas personas de la comunidad de las que he aprendido un montón a lo largo de los años.

Espero poder seguir contribuyendo a la comunidad como lo he estado haciendo hasta el momento ( o más! ) y que mis aportes puedan ser de utilidad para que no se arrepientan de haber dado este reconocimiento 🙂