Este artículo proviene de un motor de traducción automática.

Windows Azure

Sugerencias para la migración de sus aplicaciones a la nube

George Huey

Uno de nuestros aspectos favoritos de la tecnología es que está en constante evolución y cambiando constantemente, siempre hay mucho más para obtener más información. Como los alumnos y followers de nube de informática, estamos muy satisfechos de la plataforma Windows Azure. Como expertos técnicos de Microsoft, tenemos la fortuna excelente para trabajar con los clientes en la adopción de tecnología de nueva. Como resultado, hemos visto un host de diferentes maneras en que se va a aplicar Azure de Windows.

En tiempo de compilación, George tenía una razón personal para que se desean utilizar Azure de Windows. George está involucrado en muchas de las actividades de la Comunidad, y la capacidad de giran temporales de las aplicaciones de forma rápida y su desactivación cuando ya no necesite demostrado ser muy útil. Para los desarrolladores con experiencia que escribir código de Microsoft .NET Framework, no hay apenas ninguna curva de aprendizaje: genera la aplicación, implementarla y ejecutarla.

Debido a los intereses de muchos de nuestros clientes corporativos expresan ­ ed en Windows Azure, decidimos que contenga un conjunto de prácticas de migración de Windows Azure en los centros de tecnología de Microsoft. La intención era a los clientes que sus aplicaciones en el laboratorio y realmente migrarlas a Windows Azure. Mediante este proceso, todos los clientes no pueden migrar correctamente sus aplicaciones Web y bases de datos SQL para la plataforma Windows Azure.

No se sorprenda, ya tenía una gran cantidad de experiencia con Windows Azure y eran seguros de nuestros clientes cumple con éxito. Pero, en el curso de ayudar a los asistentes de laboratorio migrar sus aplicaciones distintas, hemos aprendido algunos trucos que le ayudan a las migraciones fluida. En este artículo, compartiremos algunas de las sugerencias y trucos, descubrimos cómo trabajar con los clientes en las migraciones del mundo real.

Conceptos básicos de migración

Al tomar la decisión de migra una aplicación de en locales para la nube (o para crear una nueva aplicación en un servicio de la nube), existen varios aspectos de la arquitectura de aplicaciones que deben tenerse en cuenta:

  • Administración de aplicaciones
  • Seguridad de las aplicaciones
  • Compatibilidad con la aplicación
  • Compatibilidad de base de datos

Las preguntas y problemas que hemos oído hablar con más frecuencia durante las prácticas de migración solían giran en torno a estas cuatro áreas. Por tanto, nos centraremos nuestra explicación alrededor de estos temas.

Errónea muy extendida de un a menudo encontró era la idea de que, al utilizar Azure de Windows, los programadores no tienen que preocuparse de patrones de arquitectura común con respecto a problemas tales como disponibilidad, escalabilidad, confiabilidad y seguridad al pasar a o la creación de aplicaciones en la nube. La verdad es que los patrones de arquitectura en el contexto de la informática distribuida son igualmente válidos para la implementación de instalaciones o implementación de Windows Azure la arquitectura de aplicaciones.

Administración de aplicaciones

Independientemente de si la aplicación ejecuta en los locales o en la nube, el equipo de administración de operaciones necesita que los datos que se puedan tomar decisiones eficaces. Los problemas que se debe considerar la posibilidad de incluyen los acuerdos de nivel de servicio, planificación de capacidad, cliente facturación, la auditoría, la aplicación de supervisión, análisis de tráfico y administrar los costos (saber cuándo se debe escalar hacia arriba o hacia abajo). Es necesario resolver antes de que la aplicación se implementa para producción: ­ y para obtener mejores resultados, con frecuencia, antes de crea la aplicación.

Éstos son sólo algunos de los problemas que se consideraron durante las prácticas de migración de Windows Azure. Al utilizar la API de diagnósticos de Windows Azure siempre en el SDK de Azure (Microsoft.WindowsAzure.Diagnostics) de Windows, los clientes podían exponer los volcados de sucesos de aplicación, no se pudo realizar un seguimiento, registros de sucesos de Windows, los registros IIS, los registros de Azure de Windows y los contadores de rendimiento de solicitud.

Esto es mucho más sencillo que es de esperar. Indicar qué tipos de información de diagnóstico para recopilar (consulte del 1 de la figura para obtener un ejemplo) y establecer la programación de transferencia de datos de la información que se transferirán a una ubicación central de almacenamiento de Windows Azure el monitor de diagnóstico.

Figura 1 de configuración de diagnósticos

public class WebRole : RoleEntryPoint {
  public override bool OnStart() {
    DiagnosticMonitorConfiguration config = 
      DiagnosticMonitor.GetDefaultInitialConfiguration();

    // To see which counters you can capture, type
    // "typeperf.exe /q" in a command window.

    // Capture CPU utilization.
    PerformanceCounterConfiguration procUtilization = 
      new PerformanceCounterConfiguration();
    procUtilization.CounterSpecifier = 
      @"Processor(*)\% Processor Time";
    procUtilization.SampleRate = 
      System.TimeSpan.FromSeconds(30.0);  
    config.PerformanceCounters.DataSources.Add(procUtilization);

    // Monitor available memory.
    PerformanceCounterConfiguration procAvailMemory = 
      new PerformanceCounterConfiguration();
    procAvailMemory.CounterSpecifier = @"\Memory\Avail MBytes";
    procAvailMemory.SampleRate = 
      System.TimeSpan.FromSeconds(30.0);  
    config.PerformanceCounters.DataSources.Add(procAvailMemory);

    // Add event collection from Windows Event Log 
    // (System and Application event logs).
    config.WindowsEventLog.DataSources.Add("System!*");
    config.WindowsEventLog.DataSources.Add("Application!*");

    // All of the information monitored so far is being stored locally. 
    // Tell diagnostic monitor what schedule period should be used when 
    // transfering the events. 
    config.Directories.ScheduledTransferPeriod = 
      TimeSpan.FromMinutes(1);
    config.Logs.ScheduledTransferPeriod = 
      TimeSpan.FromMinutes(1);

    // Start the diagnostics monitor.
    DiagnosticMonitor.Start("DiagnosticsConnectionString", config);

    // True gives full crash dumps. False gives small crash dumps.
    CrashDumps.EnableCollection(false); 

    System.Diagnostics.Trace.TraceInformation("OnStart Completed");

    RoleEnvironment.Changing += RoleEnvironmentChanging;

    return base.OnStart();
  }
...

Para obtener más información acerca de diagnósticos de Azure de Windows, consulte el artículo “ Diagnósticos de nube: Tomar control del registro y seguimiento en Windows Azure ” Mike Kelley, en el de 2010 de junio de MSDN Magazine.

Seguridad de las aplicaciones

Una de las principales preocupaciones de cualquier organización que se mueve a la nube es la seguridad. La mayoría de las empresas han invertido una cantidad considerable de tiempo, dinero y de ingeniería en diseñar y desarrollar un modelo de seguridad y es importante que son capaces de aprovechar las inversiones existentes, como almacenes de identidades, las soluciones de inicio de sesión única y los servidores de seguridad.

Aunque existen muchas formas de una compañía de seguridad de las aplicaciones basadas en la nube, un modelo cada vez más popular es un enfoque basado en notificaciones.

Este proceso se muestra en la figura 2. En el orden de una aplicación para que sea capaz de procesar los tokens de seguridad de un servicio de tokens de seguridad (STS), debe establecerse una relación de confianza entre el STS y la aplicación.

image: Claims-Based Identity in an Application Context

La figura 2 de identidades basadas en reclamaciones en un contexto de la aplicación

Las reglas de control de acceso (paso 1) se definen para cumplir los requisitos de negocio (que pueden iniciar sesión en la aplicación). Estas reglas se almacenan con el STS. Cuando un usuario intenta tener acceso a la aplicación, se redirige el STS, de modo que puede recibir un token válido (paso 2). El usuario proporciona un conjunto de entrada solicitudes (por ejemplo, un Live ID o una cuenta de dominio) para el STS para la autenticación. El STS asignarán a un conjunto de solicitudes de salida de estas solicitudes una vez autenticado el usuario (paso 3). En el paso 4, las solicitudes de salida se empaquetan en un símbolo (token) de lenguaje de marcado de aserciones de seguridad (SAML), firmadas por el STS y devuelve al usuario para el reenvío de la aplicación (el asociado de confiar en el paso 5). La aplicación confirma que el token SAML es válida y del confianza STS (paso 6). Una vez que se valida el símbolo (token), la aplicación comprueba las solicitudes en el símbolo (token) y devuelve la respuesta apropiada (paso 7). Muy sencillo. La belleza de este enfoque es que se ajuste a muy bien en el modelo de proveedor ASP.NET. El proceso de notificaciones de creación de aplicaciones ASP.NET es realmente bastante sencillo.

A fin de facilitar el trabajo para los desarrolladores, Microsoft introdujo el SDK de Windows Identity Foundation (WIF). Esto lleva a cabo el trabajo pesado de analizar los tokens SAML 2.0, lo que permite al programador centrarse en su aplicación sin tener que preocuparse por la tecnología de seguridad subyacente.

Lo primero que debe hacer es Descargar WIF de y el SDK de WIF . Una vez que están instalados, deberá hacer lo que necesita para que la aplicación de notificaciones.

En la solución de Visual Studio con la aplicación ASP.NET Web, con el botón secundario y seleccione Agregar | Agregar nuevo sitio Web. Seleccione la plantilla de sitio de Web de servicio de token de seguridad de ASP.NET. Esto permitirá configurar un STS para su entorno de desarrollo.

Una vez que tenga su STS creados, puede agregar una referencia a la STS haciendo doble clic en la aplicación y haga clic en “ Agregar referencia de STS. ” Se iniciará a un asistente que le guiará a través del proceso de establecer una relación entre la aplicación y el STS. Seleccione el archivo web.config de la aplicación para su sitio y especificar el identificador URI de la aplicación (vea de figura 3).

image: Starting the Federation Utility Wizard

La figura 3 de Iniciar al Asistente para la utilidad de la federación

En el siguiente paso, elija “ usar un STS existente ” y, a continuación, especifique la ubicación del archivo FederationMetadata.xml en el proyecto de STS (consulte de figura 4). Elija los valores predeterminados para el resto del proceso.

Figure 4 Configuring the STS

La figura 4 de configurar el STS

Eche un vistazo a su archivo web.config. Verá que el Asistente de hojas ­ Util.exe cambiado una cantidad considerable de código. Se realizaron los cambios más importantes para el nodo microsoft.identityModel del archivo web.config. Aquí podrá ver las referencias al proyecto STS, junto con los tipos de solicitud que se espera la aplicación. Para asegurarse de que la aplicación está recibiendo adecuadamente las solicitudes de su STS, coloque el código siguiente en la página default.aspx (tenga en cuenta que tendrá que agregar una referencia a la Microsoft.IdentityModel desde el SDK de WIF):

IClaimsIdentity ici = 
  (IClaimsIdentity)Thread.CurrentPrincipal.Identity;

foreach (Claim c in ici.Claims) {
  Response.Write(c.ClaimType + " - " + c.Value + "<br/>");
}

Cuando se vuelva a ejecutar la aplicación, se redirigirá automáticamente a su STS. De forma predeterminada, el STS permite que se autentique como “ Adam Carter. ” Haga clic en el botón de inicio de sesión (no se necesita una contraseña).

Después de que el STS autentica el inicio de sesión, será redirigido a la aplicación Web, junto con un token SAML que sea necesario para la autenticación. La aplicación va a aceptar el símbolo (token) y que la página default.aspx para que se ejecute. Debido a que los módulos WIF interceptan las credenciales de seguridad, podrá convertir la entidad de seguridad de la identidad como un IClaimsIdentity y, por lo tanto, puede extraer las solicitudes tipo y valor de la identidad del objeto (vea de figura 5).

image: The Claims Type and Value of an Identity Object

La figura 5 de afirmaciones de las de tipos y el valor de un objeto de identidad

Ahora que la aplicación Web es notificaciones, es fácil adaptarlos a su modelo de identidad existentes. Simplemente actualizar el archivo de configuración para que señale a la producción de STS y asegúrese de que ha configurado la aplicación una entidad que confía. Además, puede utilizar esta información para crear un proveedor de funciones personalizado, de modo que se pueden traducir los tipos de solicitudes en funciones.

Esto es una técnica muy eficaz y le permitirá mover sus aplicaciones a casi cualquier entorno, en los locales, la nube o incluso un centro de datos asociado y sigue sin validar con respecto a los almacenes de identidades a través de un STS expuesto públicamente.

Compatibilidad de aplicaciones

Azure de Windows es una plataforma de aplicaciones, por lo que es importante comprender los tipos de aplicaciones adecuadas para la plataforma Windows Azure. Aunque tiene la posibilidad de ejecutar el código nativo y se pueden ejecutar aplicaciones con confianza total, se debe empaquetar la aplicación antes de implementarlo en la nube, que significa que es importante evaluar la aplicación para ver si es un buen ajuste.

A continuación, se muestra un ejemplo. Uno de nuestros clientes en los laboratorios de migración de Windows Azure tenía una aplicación existente que consta de un back-end de SQL Server 2005, un LINQ a nivel de acceso a datos SQL y un front-end mediante MVC Framework 1.0 y ASP.NET 3.5 SP1 que se ejecutan en IIS.

La aplicación sentado en un conjunto de servidores Web con un equilibrador de carga del tráfico de enrutamiento. La propia aplicación fue sin estado, por lo que no son importantes para el servidor que el usuario se ha indicado en última instancia.

Un detalle interesante acerca de esta aplicación fue que la aplicación de MVC administra sitios Web independientes de más de 220. La compañía utiliza una combinación de enrutamiento de MVC y la información almacenada en la base de datos de SQL Server para determinar el contenido que se debe cargar para cada sitio Web. Hay cinco servidores Web detrás de los equilibradores de carga para más de 4 millones de visitas de página por mes de la colección de sitios Web.

El reto principal de la empresa que se enfrentan era la cantidad de tiempo que tardó en provisionar un nuevo servidor Web para su entorno: meses. Cuando la compañía considera que la migración de la aplicación para Windows Azure, su principal motivación al guardar una gran cantidad de tiempo. El escalado se convierta en un detalle de la configuración en lugar de en una pesadilla de trimestre de duración.

El proceso de migración a Windows Azure es realmente bastante sencillo. Éste es el proceso genérico que se utiliza:

  1. Compruebe que la aplicación se está ejecutando correctamente en el entorno de desarrollo.
  2. Migrar el back-end de SQL Server a Azure de SQL mediante el Asistente de migración de SQL Azure (trataremos los detalles más adelante en este artículo).
  3. Actualizar la aplicación local para trabajar con la base de datos de SQL Azure. Esto fue tan sencillo como cambiar la cadena de conexión.
  4. Convertir la aplicación en un proyecto de la función de la Web.
  5. Validar que la aplicación que se ejecuta en el equipo local desarrollar la estructura de administración de ­.
  6. El paquete de la función de la Web y se implementa en Windows Azure.
  7. Validar que la aplicación se ejecuta desde Windows Azure.

Para reducir el tamaño del paquete de funciones Web, hemos terminado extraer todos los archivos de la CSS de sus carpetas de contenido y las imágenes y los coloca en el almacenamiento de objetos binarios de Windows Azure.

Todo el contenido se encontraba en el almacenamiento de objetos binarios de Windows Azure, GGP no pueden aprovechar la red de entrega de contenido (CDN) de Windows Azure. Esto permite que las cachés de datos que se encuentran junto a los usuarios finales.

Para obtener una descripción general de desarrollo, prueba e implementación de Windows Azure, consulte el artículo “ Windows Azure: Emiten en el desarrollo e implementación Azure aplicaciones de Windows en Visual Studio de 2010 ” en el de 2010 de abril de MSDN Magazine. Para obtener una visión más profunda en problemas de almacenamiento de información, vea “ almacenamiento nube: Emite en el motor de la aplicación con el almacenamiento de Windows Azure alimentando ” en enero de 2010.

Compatibilidad de base de datos

Cuando SQL Azure en primer lugar, hemos migrado un par de nuestras bases de datos de SQL Server a la misma. Junto con nuestra experiencia con los laboratorios de migración de Windows Azure, nos dimos cuenta unas cuantas cosas importantes que debe tener en cuenta antes de embarcarse en el proceso de migración.

En primer lugar, es importante comprobar el tamaño de la base de datos y cómo encaja dentro de las deducciones de la base de datos utilizadas por SQL Azure. Actualmente, Azure SQL ofrece las ediciones de Web en tamaños de 1 GB y 5 GB y Business Edition en el tamaño de 10, 20, 30, 40 y 50 GB. Debe comprobar la base de datos y asegúrese de que no es mayor que 50 GB. Si la base de datos es mayor que 50 GB, a continuación, debe examinar la base de datos y vea si se puede dividirse en bases de datos de menor tamaño (en otras palabras, sharding la base de datos) o mover datos de gran tamaño para los objetos binarios.

Azure SQL admite únicamente la autenticación de SQL, por lo que debe tener en cuenta si los cambios necesarios en el esquema de autenticación utilizado por la aplicación. Por encima de ese, Azure SQL tiene un límite de recursos que limita el tiempo de conexión. Trataremos estos problemas más adelante en el artículo.

La versión de la base de datos de SQL Server es otro elemento que tiene que tener en cuenta antes de migrar la base de datos a SQL Azure. Azure de SQL se basa en SQL Server 2008. Esto significa que si desea migrar las bases de datos de SQL Server 2000 o SQL Server 2005 a SQL Azure, deberá asegurarse de que las bases de datos son compatibles con SQL Server 2008. Por ejemplo, las versiones anteriores de SQL Server admiten las combinaciones TSQL de estilo anteriores como * = y = * operadores en la cláusula WHERE. SQL Server 2008 sólo es compatible con las combinaciones de estilo ANSI. Por ejemplo:

SELECT ProcessClassTypeName
       , bpa.PropertyMetadata AS PropertyMetadataOverride
       , act.PropertyMetadata AS PropertyMetadataDefault
  FROM dbo.BusinessProcessActivities bpa
  LEFT JOIN dbo.Activities act ON act.Activity_ID = bpa.Activity_ID

Cuando se establece el nivel de compatibilidad de la base de datos a SQL Server 2005 o SQL Server 2008, el antiguo de estilo de las combinaciones TSQL (* = y = *) no son compatibles.Esto es sólo un ejemplo de problemas de compatibilidad que se encuentran al migrar a SQL Server 2008.

Queda fuera del alcance de este artículo para explicar detalladamente el proceso de migración a SQL Server 2008.Si está interesado en las prácticas recomendadas para la migración de base de datos, compruebe si el “ de Ultimate guía para la actualización a SQL Server 2008 ”.También hay una gran cantidad de recursos disponibles en el Centro de desarrolladores de MSDN de SQL Server .

Puede encontrar que la mejor ruta de acceso es migrar desde una base compatible de ­ SQL Server 2008 - a Azure de SQL.Esto significa que si desea migrar su SQL Server 2000 o 2005 base de datos a SQL Azure, puede ir a través de una actualización en las instalaciones de SQL Server 2008 antes de migrar a SQL Azure.

Microsoft ofrece una herramienta muy útil llamada del Asesor de actualizaciones de SQL Server que analiza las instancias de SQL Server 2000 y SQL Server 2005 para identificar las características y cambios de configuración que puedan afectar a la actualización.Proporciona vínculos a documentación que describa cada problema y cómo solucionarlo.Una vez que haya comprobado que la base de datos es compatible con SQL Server 2008, puede avanzar rápidamente a la migración de la base de datos a SQL Azure.

No obstante, también deberá tener en cuenta que Azure SQL no admite el 100 por ciento de la nueva funcionalidad de SQL Server 2008.Por ejemplo, filestream no se admite actualmente en Azure de SQL.Hay varias maneras de comprobar si hay problemas de compatibilidad cuando va a Azure de SQL.

El enfoque de fuerza obvio es simplemente moverse con la parte salvaje, ejecutarán las secuencias de comandos TSQL contra SQL Azure y busque errores.Corrija los errores que se produzcan y vuelva a ejecutan.Repita hasta que se realizó correctamente.Tal vez se utiliza no es la mejor parte del tiempo, pero que es la adecuada decidir.

Puede utilizar al asistente Generador de secuencias de comandos de SQL Server Management Studio para generar la secuencia de comandos TSQL.Tenga en cuenta que al recorrer el asistente, asegúrese de seleccionar las secuencias de comandos con opciones avanzadas y seleccione la base de datos de SQL Azure para la propiedad “ secuencias de comandos para el tipo de motor de base de datos ”.Si se salta este paso, SQL Server generará TSQL que no es compatible con SQL Azure.

Otra opción es para descargar el Asistente para migración de SQL Azure (SQLAzureMW) de sqlazuremw.codeplex.com de .SQLAzureMW hará la mejor manera de identificar problemas de compatibilidad, corríjalos cuando sea posible y proporcionarle información acerca de todos los problemas que conoce.

Para comprender mejor las pautas generales y limitaciones para Azure de SQL, vea msdn.microsoft.com/library/ee336245 de .

Una vez que el esquema de base de datos (tablas, vistas, procedimientos almacenados y así sucesivamente) en SQL Azure, es necesario cargar los datos.Éstas son las formas más comunes:

  • SQL Server Integration Services
  • Programa de copia masiva (BCP)
  • SqlBulkCopy para la migración de datos
  • Asistente para migración de SQL Azure (que utiliza BCP en segundo plano)

Utilizar SQLAzureMW

George creado SQLAzureMW para ayudar a nuestros clientes con el proceso de migración de la base de datos SQL.La figura 6 muestra SQLAzureMW en acción.

image: Using SQLAzureMW

La figura 6 mediante SQLAzureMW

SQLAzureMW analiza las bases de datos de SQL Server para los problemas de compatibilidad con SQL Azure.También permite migrar objetos de base de datos y los datos de la base de datos de origen para Azure de SQL.

Mediante el uso de SQLAzureMW, los desarrolladores de la base de datos pueden obtener una idea de cuánto trabajo se requerirá la migración de sus bases de datos a SQL Azure.Si SQLAzureMW indicadores una gran cantidad de problemas de compatibilidad con SQL Server 2000 o 2005 base de datos, le recomendamos que actualice la base de datos a SQL Server 2008 en primer lugar, a continuación, migrar a SQL Azure.El proceso de migración a SQL Server 2008 está bien documentado y hay mucho de orientación y la experiencia que puede aprovechar.Para obtener más información sobre cómo migrar a SQL Server 2008, consulte el SQL Server 2008 actualización Technical Reference Guide (microsoft.com/ de ­downloads/details.aspx?FamilyID=66d3e6f5-6902-4fdd-af75-9975aea5bea7 ).También hay una gran cantidad de recursos desde el centro de desarrolladores de MSDN de SQL Server (msdn.microsoft.com/sqlserver ).

Tenga en cuenta que si no dispone de SQL Server 2008 R2, esto no le impidan pasar por el proceso de actualización.Basta con descargar Express Edition de SQL Server 2008 R2 y realizar el proceso de actualización de forma simultánea.

Otras buenas fuentes de la base de datos a los desarrolladores entiendan las diferencias entre SQL Server y SQL Azure, lo que es compatible y no y orientación general y limitaciones, la referencia de Transact-SQL (base de datos de SQL Azure) se incluyen en msdn.microsoft.com/library/ee336281 de generales de las directrices y limitaciones (base de datos de SQL Azure) en msdn.microsoft.com/library/ee336245 de .

Independientemente de si decide actualizar a SQL Server 2008 en primer lugar, o simplemente migrar directamente desde SQL Server 2000 o 2005, todavía tendrá una forma de analizar los problemas de compatibilidad de la base de datos y generar código SQL de SQL compatible Azure.Esto es donde SQL ­ AzureMW realmente ayuda a.No sólo SQLAzureMW puede analizar la base de datos, también analizará los archivos de traza del analizador de SQL al que desea comprobar SQL dinámico para problemas de compatibilidad.

Durante las prácticas de migración, hemos podido migrar todas las bases de datos SQL (SQL Server 2000 y SQL Server 2005) para SQL Azure con poca o ninguna modificación.Los dos problemas restantes que deben tenerse en cuenta son la autenticación y la limitación de recursos de SQL Azure.

El problema de autenticación no debido al hecho de que SQL Azure admite sólo autenticación de SQL, no la autenticación de Windows.En el caso de un cliente, tuvieron que modifique su cadena de conexión para reflejar el nombre de usuario y contraseña en lugar de una conexión de confianza.Por ejemplo, hemos empezado con algo parecido a esto:

<add key="ConStr" 
  value="server=DbSvr;database=CRMDB;Trusted_Connection=yes" />
We simply changed the connection string to something like this:
<add key="ConStr" 
  value="Server=avl6qnn22s.database.windows.net;Database=CRMDB;User ID=WebSvrAdmin@avl6qnn22s;Password=password;Trusted_Connection=False;" />
To get more information on connecting to SQL Azure using ADO.NET, see msdn.microsoft.com/library/ee336243.

Límite de recursos

Direccionamiento de limitación de recursos de SQL Azure había tarda un poco más trabajo para algunas aplicaciones.Para las aplicaciones que siguen las prácticas recomendadas para obtener una conexión a una base de datos SQL sólo cuando sea necesario y, en el último segundo posible, realiza todas las transacciones de forma rápida y eficaz y soltarlo de la conexión tan pronto como sea posible, el límite de Azure de SQL no era un problema.Por otro lado, las aplicaciones que obtienen una conexión a una base de datos SQL en el inicio y se mantienen en la conexión durante la vida útil del programa, o durante largos períodos de tiempo, se había modificado para implementar la lógica de reintento o va a refactorizar para seguir las prácticas recomendadas y no contener los recursos.

Un concepto erróneo que se ha ejecutado en un lote no que SQL Azure sólo se desconecta la conexión si la conexión sat inactiva durante cinco minutos.SQL Azure tiene en cuenta varios factores para determinar cuándo desconectar una aplicación, incluido el uso de recursos excesiva, las consultas de larga ejecución, las transacciones de larga ejecución única y las conexiones inactivas.

El equipo de SQL Azure seguirá el recurso de la limitación de los parámetros de ajuste, pero el resultado final es que la aplicación debe tener la lógica de reintento integrado porque Azure SQL obligará a una desconexión de todas las aplicaciones que supera los parámetros de la utilización de recursos.

En general, SQL Azure proporcionará los mensajes de error específico si alguna vez acelera la conexión.Para obtener una lista completa de errores, consulte msdn.microsoft.com/library/ff394106 de .

Si tiene un gran volumen de transacciones pequeñas, debe utilizar el modelo siguiente:

  1. Utilizar la agrupación de conexiones.El administrador del grupo de conexión mantendrá las conexiones abiertas para usted y habrá muy poco a ningún impacto sobre el rendimiento de la aplicación abrir y cerrar las conexiones.
  2. Mantener la conexión para duración tan pequeña como sea posible.Abrir la conexión, ejecutar la transacción y cerrar la conexión.
  3. Utilice el modelo de try-catch alrededor de la actividad de la base de datos.
  4. Detectar las excepciones y vuelva a intentar la transacción, si es necesario.
  5. Inicie una sesión de los errores y excepciones que ayudan a facilitar la resolución de problemas.Asegúrese de que obtener una marca de hora UTC (o proporcionar la hora y zona horaria), el identificador de contexto de conexión y el número de excepción.

SQLAzureMW es un buen ejemplo de una aplicación que se tuvo que tratar con recursos de SQL Azure el límite.Como mencionamos anteriormente, SQLAzureMW puede migrar una base de datos en instalaciones SQL a SQL Azure.Si va a migrar una base de datos con tablas de más de 1.000, 1.500 procedimientos almacenados y millones de filas de datos, no se puede fácilmente tener más de cinco horas según la cantidad real de los datos que se debe a que se van a cargar.

En este escenario, SQLAzureMW tiene más de 2.500 de TSQL de las instrucciones que se ejecuta en SQL Azure, así como los datos para migrar a través de BCP.Ejecutar TSQL en más de 2.500 las instrucciones en una sola instrucción (o transacción) excedería más probable es que los parámetros, por tanto, lo que una conexión ha terminado el límite de recursos de SQL Azure.

Como solución, los saltos de SQLAzureMW hacia abajo de las transacciones en manojos más pequeños y se ejecuta hasta que SQL Azure termina la conexión.Cuando SQL ­ AzureMW se encuentra el error de conexión, se restablece una conexión nueva con SQL Azure y recoge el procesamiento tras el último comando que se realizó correctamente.Del mismo modo, cuando se utiliza BCP para cargar los datos a SQL Azure, SQLAzureMW fragmenta los datos en secciones más pequeñas y usos vuelva a intentar la lógica para determinar el último registro correcto cargado antes de que se ha cerrado la conexión.A continuación, tiene BCP reiniciar la carga de datos con el siguiente conjunto de registros.

El equipo del producto SQL Azure ha realizado grandes mejoras a SQL Azure Azure SQL se lanzó por primera vez.Por ejemplo, ha desaparecido un lote de los problemas límites que se ha ejecutado en durante las prácticas de migración, aunque aún se recomienda que las aplicaciones utilizan la lógica de reintento para controlar termina las conexiones correctamente.

Pasos siguientes

Como puede ver, aunque hay varias cuestiones que debe tener en cuenta en la planificación para una migración fluida a Windows Azure, en la práctica, que encontramos que la cantidad de trabajo necesarios para migrar una aplicación de en las instalaciones de Windows Azure es a menudo mínima.Por supuesto, esto va a ser diferente para cada aplicación.

Es necesario realizar su propio análisis para determinar si tiene sentido migrar a Windows Azure y qué problemas se debe a la dirección.Durante las prácticas de migración de Windows Azure, nuestros clientes encuentran pudieron migrar sus aplicaciones con poca o ninguna modificación, y que fueron capaces de utilizar la plataforma Windows Azure con muy poco curva de aprendizaje y la inversión.La información aquí, junto con herramientas como SQLAzureMW, debería ayudarle a alcanzar un resultado correcto del mismo modo.

George Huey es un arquitecto principal para el desarrollador y el grupo de evangelización de plataforma de Microsoft. Huey funciona con las empresas para ayudarles a comprender las tecnologías nuevas y emergentes y cómo se pueden aplicar estas tecnologías para solucionar sus problemas empresariales. También es autor del Asistente para migración de SQL Azure (SQLAzureMW).

Wade Wegner funciona con Microsoft y es el departamento de formación técnica para la plataforma Windows Azure. blog.wade­wegner.com o en Twitter entwitter.com/wadewegner.

*Gracias al siguiente experto técnico para este artículo:*Jim Nakashimi