Evaluación de una aplicación web con Migration Assistant de Azure App Service

Completado

En esta unidad revisaremos los posibles retos a los que se puede enfrentar al migrar aplicaciones web hospedadas en el entorno local en el propio servidor en un nivel alto. Se proporciona contexto sobre los tipos de dependencias que tienen las aplicaciones web en características de Internet Information Services (IIS) y por qué esto supone un problema. Esta información de fondo crítica proporciona el contexto que puede necesitar para comprender mejor la necesidad de una evaluación.

Motivo para migrar una aplicación web a Azure App Service

Azure App Service es una plataforma totalmente administrada para aplicaciones web. Puede usarla para ejecutar y escalar sus aplicaciones web con la configuración mínima. Microsoft administra la infraestructura, las actualizaciones del sistema operativo, el equilibrio de carga, y la lógica de escalado vertical y horizontal, según sea necesario.

Puede configurar los valores en una interfaz de usuario simplificada y examinar el rendimiento de la aplicación mientras se ejecuta, pero no tendrá que hacer mucho más. Esto hace que Azure App Service sea una alternativa atractiva a la ejecución de aplicaciones en un entorno de servidor propio. En su propio entorno de servidor, debe lidiar con los costos de hardware, la configuración, la instalación del sistema operativo, la actualización y configuración, la instalación del software de servidor, las actualizaciones y la configuración, etc.

Hay varias características que hacen que el trabajo con Azure App Service sea eficaz.

La característica de escalabilidad automática permite que un administrador establezca el número máximo de instancias para el escalado de la aplicación web, y los umbrales de tráfico. Luego, la lógica de toma de decisiones de App Service decide si se va a escalar verticalmente u horizontalmente.

Las ranuras de implementación permiten a los servicios de Operaciones o DevOps implementar una nueva versión de la aplicación web en un entorno de pruebas o ensayo en directo, donde se puedan realizar pruebas de integración manuales o automatizadas. Una vez que la nueva versión pasa todas las pruebas, las operaciones pueden intercambiar las ranuras para mover la aplicación de ensayo a producción. Si surgen problemas después de la implementación, las operaciones pueden volver a intercambiar las ranuras para mover la versión anterior de nuevo a producción.

Los diagnósticos de App Service proporcionan una interfaz interactiva en la que el solucionador de problemas puede responder a algunas preguntas. La interfaz genera un informe de diagnóstico completo específico para el tipo de problema que se está produciendo en la aplicación. Además, herramientas como la comprobación de estado, Application Insights y Navegador (el diagrama de dependencias interactivo) ayudan a entender dónde se encuentran los problemas.

Descripción de Migration Assistant de Azure App Service

Migration Assistant de Azure App Service forma parte de un conjunto más amplio de aplicaciones que ayudan a las organizaciones en su transición a la nube. Migration Assistant proporciona una experiencia de usuario guiada parecida a un asistente que realiza dos tareas:

  1. Realiza una evaluación de una aplicación web específica instalada en Windows Server. Evalúa las dependencias de la aplicación web para determinar si una migración a Azure App Service es posible sin modificaciones de la aplicación web.
  2. Si la evaluación demuestra que se puede migrar la aplicación web, Migration Assistant realizará la migración. Tiene que proporcionar a Migration Assistant acceso a la cuenta de Azure, seleccionar el grupo de recursos que quiere usar y seleccionar un nombre para la aplicación web, entre otros detalles.

Como alternativa, Migration Assistant de Azure App Service genera una plantilla de Azure Resource Manager que puede usar para migrar la aplicación web de manera más automatizada y repetible.

Motivo para realizar una evaluación

En algunas organizaciones, las aplicaciones web se han compilado originalmente dando por hecho que siempre tendrían acceso a características de bajo nivel de IIS. Por ejemplo, algunos desarrolladores compilaron características como la supervisión, el registro y la seguridad sobre filtros ISAPI. Los filtros proporcionaron acceso a las solicitudes entrantes antes de que se pasaran a la aplicación ASP.NET. También proporcionan acceso a las respuestas salientes generadas por la aplicación ASP.NET.

Pero una de las ventajas de usar una oferta de plataforma como servicio (PaaS) como Azure App Service es que el proveedor de nube (Microsoft, en este caso) administra el hardware y el software, por lo que usted no tiene que hacerlo. Este es el ahorro, tanto en costos como en tiempo. Pero esto significa que las aplicaciones tienen acceso a menos características de nivel inferior de Windows Server e IIS. Si las aplicaciones dependen de estas características de nivel inferior, es posible que no pueda aprovechar Azure App Service sin modificaciones.

Tipos de problemas que busca la evaluación

Migration Assistant busca características específicas de una aplicación web para asegurarse de que Azure App Service pueda acomodar esa característica o que Migration Assistant sea capaz de migrar automáticamente esa característica. En la tabla siguiente se proporciona información sobre las comprobaciones que realiza Migration Assistant:

Comprobación de preparación Explicación
Enlaces de puertos Dado que Azure App Service solo permite el tráfico web estándar, esta comprobación de preparación garantiza que la aplicación web solo escuche en los puertos 80 (para tráfico HTTP) y 443 (para tráfico HTTPS).
Protocolos Como Azure App Service solo funciona con los protocolos HTTP y HTTPS, esta comprobación de preparación garantiza que la aplicación web solo controle los protocolos basados en HTTP. Por ejemplo, si la aplicación web depende de Windows Communication Foundation, no supera esta comprobación de preparación.
Certificados Azure App Service puede controlar certificados de seguridad, pero esta comprobación de preparación le advierte de que Migration Assistant no migra el certificado de manera automática.
Etiquetas de ubicación Las etiquetas de ubicación permiten mantener la configuración de todas las aplicaciones web hospedadas en un servidor en un solo archivo en lugar de en archivos web.config individuales para cada aplicación web. Las aplicaciones de Azure App Service usan un archivo applicationhost.config de IIS preconfigurado y no admiten la característica de etiquetas de ubicación. La configuración de cada aplicación web que vaya a migrar se debe mover a archivos web.config individuales. Esta comprobación de preparación identifica el uso de etiquetas de ubicación.
Filtros ISAPI Azure App Service proporciona compatibilidad con los filtros ISAPI, pero dependerá de cómo se haya implementado el filtro ISAPI. Migration Assistant no migra una aplicación que depende de un filtro ISAPI. Primero deberá quitar el filtro ISAPI de la aplicación, realizar la migración y, luego, agregar el filtro ISAPI de forma manual en Azure App Service.
Grupos de aplicaciones Dado que Azure App Service admite un grupo de aplicaciones por aplicación, esta comprobación de preparación garantiza que la aplicación web solo se base en un grupo de aplicaciones.
Identidad del grupo de aplicaciones Las aplicaciones de Azure App Service se hospedan en un proceso de trabajo de IIS que se ejecuta en una cuenta administrada por el sistema asociada al grupo de aplicaciones. Esta es también la identidad predeterminada usada por las instalaciones locales de IIS. Esta comprobación de preparación garantiza que la aplicación web esté configurada para ejecutarse en la identidad predeterminada.
Tipo de autenticación Las aplicaciones de Azure App Service admiten un conjunto diferente de tipos de autenticación al de las aplicaciones hospedadas en IIS que se ejecutan en local. Esta comprobación de preparación garantiza que la aplicación web esté configurada para usar autenticación anónima. Tras la migración, puede configurar manualmente el tipo de autenticación en Azure App Service.
Configuración de la aplicación Esta comprobación de preparación advierte de que la configuración de la aplicación personalizada del archivo web.config se debe mover a Azure App Service>Configuración>Configuración de la aplicación.
Cadenas de conexión Esta comprobación de preparación determina si las cadenas de conexión de base de datos almacenadas en el archivo web.config apuntan a las bases de datos locales. Si es así, Migration Assistant le ofrece la opción de configurar conexiones híbridas.
Marcos Migration Assistant solo admite ASP.NET y PHP. Si la aplicación usa otro marco, no puede realizar la migración automática.
Error de configuración Migration Assistant garantiza que la instancia de IIS local esté configurada correctamente y no devuelva un error cuando se examine. Esta comprobación de preparación garantiza que no haya problemas subyacentes con la aplicación web antes de la migración.
Directorios virtuales Azure App Service almacena todos los archivos en una estructura de directorios fija. Migration Assistant mueve los archivos a los subdirectorios correspondientes. Pero no puede migrar aplicaciones con directorios virtuales respaldados por recursos compartidos de UNC.

La información de esta tabla se ha resumido a partir de la wiki de Migration Assistant de Azure App Service.

Consecuencias si la evaluación detecta un problema

Si Migration Assistant de Azure App Service encuentra problemas al evaluar la aplicación web, puede llevar a cabo las siguientes acciones:

  • Actualizar la aplicación para reemplazar las características que dependen de características de extensibilidad de nivel inferior de IIS. Esta tarea puede ser relativamente sencilla según la funcionalidad en cuestión. Por ejemplo, puede reemplazar las características de registro personalizadas que dependen de un filtro ISAPI con Azure Application Insights. Application Insights solo requiere que se agreguen unas cuantas líneas de código a una aplicación y proporciona una gran cantidad de informes accionables.
  • Actualizar la aplicación deshabilitando temporalmente la característica que está bloqueando la migración. Migration Assistant puede guiarle para hacer esto.
  • Implementar la aplicación tal cual en una máquina virtual de Azure. Aunque no obtendría las ventajas de usar Azure App Service y tendría que mantener el sistema operativo, ya no sería necesario mantener el hardware. Asimismo, contaría con un único punto de administración para todos los servicios web.

La wiki de Migration Assistant de Azure App Service contiene pasos de corrección potenciales para muchos de los problemas detectados durante una evaluación.

Resumen

Estas son las enseñanzas más importantes de esta unidad:

  • Migration Assistant de Azure App Service busca incompatibilidades entre las aplicaciones web locales y lo que se admite en Azure App Service. Si hay un problema, normalmente hay una manera de corregir el problema de forma local (o de deshabilitar la característica que lo está causando). A continuación, puede volver a usar Migration Assistant.
  • Si no hay ningún problema de bloqueo, Migration Assistant migra la aplicación web a Azure App Service de forma automática.