VENTAS: 1-800-867-1389

Consideraciones sobre el desarrollo para los Servicios en la nube de Azure

Actualizado: junio de 2014

Autores: Selcin Turkarslan

Revisores: Tim Wieman, Valery Mizonov, Avilay Parekh, Paolo Salvatori, Steve Howard

Antes de migrar las aplicaciones a los Servicios en la nube de Microsoft Azure, recomendamos que primero revise los detalles del servicio. El artículo, "Presentación de Azure" proporciona información sobre:

  • los componentes de Azure;

  • los modelos de ejecución;

  • la administración de datos;

  • las redes;

  • los kits de desarrollo de software (SDK) de programación compatibles, etc.

Este artículo ofrece información introductoria sobre la implementación de una aplicación de Microsoft Azure con los Servicios en la nube de Microsoft Azure. Hay una infinidad de escenarios de migración. Por lo tanto, recomendamos que los desarrolladores elijan las técnicas y las soluciones más apropiadas para sus aplicaciones y usuarios.

La migración de una aplicación existente a Azure incluye lo siguiente:

  • La decisión del modelo de ejecución de cálculo que mejor se adapta a su aplicación (por ejemplo, servicios en la nube, sitios web, máquinas virtuales (VM), etc.). Consulte "Presentación de Azure: modelos de ejecución".

  • La adición de configuración y código personalizado específico de Azure.

  • El almacenamiento y la administración de datos en Azure.

  • El reempaquetado de la aplicación existente como aplicación de Azure.

  • La implementación de la aplicación en Azure.

Una aplicación implementada en los Servicios en la nube de Microsoft Azure incluye el código de la aplicación, la administración de datos y su configuración. Al desarrollar una aplicación para la nube, se siguen aplicando los patrones arquitectónicos generales. Por ejemplo, los desarrolladores deben diseñar sus aplicaciones para administrar la disponibilidad, la escalabilidad, la confiabilidad y la seguridad en un entorno distribuido. Además, los desarrolladores deben tener en cuenta lo siguiente:

  • los contratos de nivel de servicio (SLA);

  • la planificación de la capacidad;

  • la facturación al cliente;

  • la auditoría;

  • la supervisión de las aplicaciones;

  • el análisis del tráfico;

  • la administración de costes;

  • el escalado: cuando y cómo se debe ampliar, reducir, escalar horizontalmente y escalar en las aplicaciones en la nube.

En un entorno tradicional de centro de datos privado, usted es el responsable de adquirir, configurar y mantener el hardware para ejecutar los servicios que ofrece. Con Azure, puede diseñar y compilar aplicaciones que se escalan a petición mediante la asignación de recursos virtualizados. Algunas aplicaciones locales se pueden ejecutar en Azure con muy pocos cambios o sin cambiar nada. Sin embargo, la mayoría de aplicaciones pueden aprovechar realmente el diseño y la arquitectura para la nube. Para sacar el máximo partido de Azure, recomendamos que modifique la aplicación para usar varios roles antes de migrar a Azure.

Por ejemplo, los servicios y aplicaciones web hospedados en centros de datos heredados suelen combinar varias funciones en una sola aplicación. En este caso, algunas veces no se puede escalar bien. Muchas aplicaciones web también almacenan el estado de la aplicación persistente en una unidad de disco local, que no funciona en el entorno de Servicios en la nube de Azure. Al migrar desde una aplicación web existente a Azure, para aprovechar completamente la escalabilidad y elasticidad informática de la nube, tiene dos opciones:

Los Servicios en la nube de Azure implementan todas las aplicaciones como uno o varios roles. Cada rol contiene el código y la información de configuración necesarios para alguna parte de la función de la aplicación. Los servicios front-end y el código que interactúa directamente con exploradores web o con otros clientes HTTP son roles web. Los roles web se ejecutan en Internet Information Services (IIS), el servidor web de Microsoft. Un rol de trabajo realiza las tareas de procesamiento y de soporte en segundo plano. Los servicios de nivel medio son normalmente roles de trabajo.

Cada rol puede tener varias instancias. Cada instancia ejecuta el mismo código que se ha escrito para el rol. Sin embargo, cada instancia de rol reside en una máquina virtual diferente del centro de datos de Azure. Para cada rol, puede indicar el tamaño de máquina virtual deseado que las instancias de ese rol deben usar. Para obtener más información, vea “Configurar los tamaños de los Servicios en la nube”.

Además de las diferencias funcionales entre los roles, cada rol actúa como una unidad de escala de la aplicación. Por ejemplo, puede tener 20 instancias del rol web para atender más tráfico. Y puede tener solo 5 instancias del rol de trabajo para procesar las solicitudes del rol web de forma asincrónica. Si desea crear una sencilla aplicación o servicio web ASP.NET, PHP o Node.js, puede usar solo un rol web. Recomendamos realizar pruebas funcionales y de rendimiento exhaustivas en el servicio en la nube. Estas pruebas le ayudarán a determinar el numero óptimo de instancias de rol y los tamaños de máquinas virtuales antes de implementar la aplicación en producción. Para obtener más información sobre los conceptos de servicio en la nube, vaya al Centro para desarrolladores de Azure y al Centro de documentación de Azure.

Considere la posibilidad de aprovechar las opciones de almacenamiento disponibles que ofrece Azure. Con ello simplifica la lógica de la aplicación y mejora el rendimiento de su servicio en la nube. Es muy importante comprender las limitaciones de cada opción de almacenamiento de datos al planificar la migración de la aplicación. También debe saber cómo identificar la opción de datos apropiada para su servicio en la nube. Para obtener más información sobre las opciones de almacenamiento disponibles en Azure, vea “Información general sobre los servicios de administración de datos de Azure”.

Puede que quiera usar el servicio Azure Caching para proporcionar almacenamiento de alta velocidad basado en memoria para aplicaciones de Azure. El almacenamiento en caché aumenta el rendimiento ya que almacena temporalmente información de orígenes back-end. El almacenamiento en caché puede reducir los costes asociados a las transacciones de acceso a almacenamiento de base de datos en la nube. Para lograr el máximo rendimiento, implemente la aplicación en centros de datos que satisfagan estos dos criterios:

  • estén más cerca de la mayoría de sus clientes;

  • estén más cerca del centro de datos que hospeda la cuenta de almacenamiento o las instancias de Base de datos SQL de Azure.

Sin embargo, puede tener algunos problemas jurisdiccionales o legales sobre los datos y sobre dónde residen. En este caso, elija el centro de datos más cercano a la compañía o a sus datos. Para más información, vea “Consideraciones sobre el rendimiento con Base de datos SQL de Azure”.

Antes de empezar a implementar el servicio en la nube de Azure, primero debe adquirir una suscripción de Microsoft Azure. Para más información, vaya al sitio de Microsoft Azure. Después debe preparar el entorno de desarrollo. Microsoft proporciona SDK específicos del lenguaje para .NET, Java, PHP, Node.js, Python y Ruby. Para obtener la información más reciente sobre los lenguajes y las plataformas de programación admitidos, vaya al Centro de documentación de Microsoft Azure. Además, puede usar el Centro de descargas de SDK y herramientas de Azure para acceder a todas las bibliotecas de cliente, SDK y herramientas de línea de comandos de Azure.

Microsoft Azure también proporciona el servicio Sitios web de Azure para hospedar sitios web y aplicaciones web. Los Sitios web de Azure son una oferta de plataforma como servicio (PaaS) completamente administrada que permite implementar y escalar aplicaciones web en segundos. Para más información, vaya a Sitios web de Azure.

Para permitir que las aplicaciones cliente que se ejecutan en otras plataformas se conecten a los orígenes de datos relacionales, Microsoft ha elegido ODBC. Es la API de conectividad de cliente estándar para aplicaciones cliente nativas que se conectan a la Base de datos SQL de Azure (Base de datos SQL). El proveedor OLE DB de SQL Server Native Client se incluirá por última vez en SQL Server 2012. La Base de datos SQL no lo admitirá.

Al escribir aplicaciones en Windows o Azure, use el proveedor de datos .NET para SQL Server. O bien, puede usar el controlador ODBC de SQL Server Native Client incluido con SQL Server 2008 R2 o una versión posterior. Recomendamos adoptar ODBC en el desarrollo de las versiones nuevas y futuras de su aplicación. Para las aplicaciones existentes que usan OLE DB, recomendamos migrarlas a ODBC en el futuro. Para obtener más información sobre cómo convertir una aplicación OLE DB en una aplicación ODBC, vea "Conversión de aplicaciones de SQL Server de OLE DB a ODBC". Para obtener información del equipo de ADO.NET sobre la degradación de OLE DB, vea “Anuncio de degradación del probeedor OLEDB de Microsoft SQL Server”.

Como en cualquier otra aplicación, debe diseñarla para administrar la disponibilidad, la recuperación ante desastres y la seguridad en un entorno de nube multiempresa distribuido. Para obtener más información, lea “Consideraciones sobre alta disponibilidad y recuperación ante desastres con Base de datos SQL de Azure” e Instrucciones sobre la seguridad de Azure. Recomendamos abordar los requisitos de seguridad al principio del ciclo de vida de desarrollo de software antes de incorporar una aplicación a Azure.

Para obtener más información sobre el desarrollo de aplicaciones en Azure, lea “Desarrollar aplicaciones de Azure” y “Failsafe: instrucciones para crear arquitecturas de nube resistentes”.

Azure es una plataforma de varios inquilinos, dinámica y escalable en la nube. Por lo tanto, debe considerar las técnicas de supervisión y diagnóstico específicas de la nube a la hora de diseñar la aplicación. Recomendamos que tenga en cuenta la supervisión y el diagnóstico al principio del ciclo de vida de desarrollo de software. Evalúe si las técnicas de supervisión y diagnóstico que emplea actualmente ofrecerán un servicio suficiente después de implementar la aplicación en la nube. Por ejemplo, puede ser necesario optimizar la configuración de diagnóstico y registro en el caso de una aplicación que genera archivos de registro grandes. El ajuste le permitirá producir archivos de registro más pequeños que se pueden inspeccionar o descargar rápidamente en el entorno local para su análisis posterior.

En la lista siguiente se muestran algunas herramientas y técnicas de solución de problemas disponibles para Azure:

  • Diagnósticos de Azure (WAD): Recopila operaciones y datos de diagnósticos del servicio Azure. Diagnósticos de Azure registra datos de diagnóstico de varios orígenes de datos, como:

      • registros IIS,

      • registros de infraestructura de Diagnósticos de Windows,

      • registros de eventos de Windows,

      • contadores de rendimiento,

      • volcados de memoria,

      • registros de errores personalizados.

      Puede configurar los intervalos de registro para Diagnósticos de Azure. La información recopilada persiste en la Tabla de Azure y el almacenamiento de blobs para el análisis. Para obtener más información, lea “Recopilar datos de registro mediante Diagnósticos de Azure”.

  • Módulo de administración (MP) de System Center de Azure: El Módulo de administración de supervisión de Azure permite supervisar la disponibilidad y el rendimiento de aplicaciones que se ejecutan en Azure. Para obtener más información, lea “Guía de módulos de administración para aplicaciones de Azure”. Recomendamos usar los Diagnósticos de Azure y el Módulo de administración de System Center de Azure. Para obtener información adicional, vea el vídeo en la página web System Center 2012: administrar aplicaciones entre nubes privadas y públicas.

  • Análisis de almacenamiento de Azure: Realiza el registro y proporciona datos de métricas para una cuenta de almacenamiento de Azure. Puede usar estos datos para hacer un seguimiento de solicitudes, analizas tendencias de uso y diagnosticar problemas con la cuenta de almacenamiento. Para obtener más información, lea “Análisis de almacenamiento”.

  • Administración de la conexión de la Base de datos SQL: Gestiona los códigos de error implementando lógica de reintento en la aplicación. Para obtener más información, lea “Administración de recursos de Base de datos SQL de Azure”.

  • Cmdlets de Azure PowerShell: Permiten examinar, configurar y administrar servicios en la nube y de administración de datos de Azure directamente desde PowerShell. Estas herramientas pueden ser útiles a la hora de desarrollar y probar aplicaciones que usan servicios de Azure. Para obtener más información, lea “Referencia de cmdlets de Azure”.

  • Solución de referencia Fundamentos de servicio de nube: Esta aplicación muestra cómo construir servicios de Azure con copia de seguridad en base de datos. Esta demostración se basa en lecciones que el Equipo de asesoramiento al cliente (CAT) de Microsoft Azure ha aprendido al trabajar con clientes reales. Conozca los bloques de construcción fundamentales para escalar horizontalmente las aplicaciones de Azure, entre los que se incluyen la recopilación y el uso de datos de telemetría en la aplicación. La solución de referencia se encuentra en la página web Fundamentos de servicio de nube en Microsoft Azure. La guía incluye una wiki de TechNet (Wiki de Fundamentos de servicio de nube) con artículos detallados.

Como ocurre con cualquier otra aplicación, el servicio en la nube de Azure también necesita unas pruebas detalladas antes de cargarse en producción. Debe probar la funcionalidad, la ejecución de un extremo a otro, el rendimiento, la escalabilidad, la seguridad, etc.

Para obtener instrucciones descriptivas detalladas, lea “Prácticas recomendadas para desarrollar aplicaciones de Azure”. Para obtener información adicional, lea “Recopilar datos de registro mediante Diagnósticos de Azure y “Probar, administrar, supervisar y optimizar aplicaciones de Azure”.

Azure ofrece diversas capacidades de red para ayudarle a integrar aplicaciones existentes con la nube y administrar el tráfico de red. Los principales componentes de red y conectividad de Azure son:

  • Colas de almacenamiento de Azure: Las colas de almacenamiento de Azure se pueden usar para almacenar mensajes a los que los clientes pueden acceder y pueden proporcionar mensajería entre las instancias de rol. Para obtener más información, lea “How to use Queue Storage from .NET” y “Almacenamiento”.

  • Bus de servicio de Azure: Recomendamos usar el bus de servicio de Azure para cualquier comunicación entre servicios dentro de Azure. Además, use el bus de servicio de Azure para mantener la integración entre los servidores locales y Azure. El bus de servicio proporciona capacidades seguras de mensajería y retransmisión en el nivel de aplicación. El bus de servicio de Azure ofrece una infraestructura de comunicación basada en la nube que admite un servicio de mensajería segura común en una red pública. Proporciona un espacio de nombres unificado simple como https://myhostname.servicebus.windows.net. El bus de servicio admite los siguientes modelos de programación: API de .NET, API de REST y WCF. Para obtener más información, vaya a la página web de ladocumentación del bus de servicio y lea “Colas de Azure y colas de Service Bus: comparación y diferencias”.

  • Azure Active Directory: Recomendamos usar Azure Active Directory (AD) para proporcionar control de acceso basado en notificaciones, escalado horizontalmente para servicios web y aplicaciones de usuario final hospedados en la nube. Azure Active Directory es una completa solución en la nube de administración de acceso e identidades. Combina los servicios de directorio principales, el gobierno avanzado de identidades, la seguridad y la administración de acceso de aplicaciones. Azure Active Directory también ofrece a los desarrolladores una plataforma de administración de identidades para entregar control de acceso a sus aplicaciones basado en una directiva centralizada y reglas. El servicio también proporciona integración con Windows Identity Foundation (WIF). Para obtener más información, lea “How to Authenticate Web Users with Azure Active Directory Access Control” y vaya a la página web de la documentación de Azure Active Directory.

  • Administrador de tráfico de Azure: El administrador de tráfico permite equilibrar la carga del tráfico entrante entre varios servicios de Azure hospedados independientemente. Puede equilibrar la carga de tráfico para servicios que se ejecutan en el mismo centro de datos o en diferentes centros de datos del mundo. Al administrar el tráfico de manera eficiente, puede asegurar el alto rendimiento, la disponibilidad y la resistencia de sus aplicaciones. Para obtener más información, vaya a la página web de la documentación del administrador de tráfico.

  • Red de entrega de contenido de Azure: La Red de entrega de contenido (CDN) de Azure ofrece a los desarrolladores una solución global para entregar contenido del almacenamiento en caché. Puede almacenar contenido en memoria caché en ubicaciones más cercanas a sus clientes para proporcionar la mejor experiencia para su aplicación. CDN almacena en memoria caché los blobs de Azure y el contenido estático resultante de instancias de proceso en ubicaciones situadas estratégicamente. Al hacerlo, CDN proporciona el ancho de banda máximo para la entrega de contenido a los usuarios. Puede activar la entrega de CDN para sus proveedores de contenido a través del Portal de administración de la plataforma Azure. Para obtener más información, vaya a la página web de la documentación de CDN de Azure.

  • Red virtual de Azure: La red virtual de Azure permite crear una sección aislada de forma lógica en Azure. A continuación puede conectarla con seguridad al centro de datos local o a una máquina de un solo cliente usando una conexión IPsec. La red virtual facilita el aprovechamiento de la infraestructura escalable y a petición de Azure. También proporciona conectividad con los datos y aplicaciones locales, incluidos los sistemas que se ejecutan en Windows Server, grandes sistemas y UNIX Para obtener más información, vaya a la página web de la documentación de la red virtual.

  • Azure ExpressRoute: Azure ExpressRoute permite crear conexiones privadas entre los centros de datos de Azure y la infraestructura local o en un entorno de ubicación compartida. Las conexiones ExpressRoute no atraviesan la red pública Internet. Ofrecen más confiabilidad, velocidades más rápidas, latencias más bajas y mayor seguridad que las típicas conexiones a través de Internet. ExpressRoute permite establecer conexiones a Azure en una ubicación de ExpressRoute (instalación de proveedor de Exchange). Como alternativa, permite conectar directamente a Azure desde la red WAN existente (como una VPN de MPLS). Para obtener más información, vaya a las páginas web ExpressRoute Overview y de la documentación de ExpressRoute.

Para obtener más información, vaya a la página web Servicios de red

Una vez completado el desarrollo del servicio o la aplicación en la nube, puede empaquetarlo, cargarlo e implementarlo en Azure. Hay cuatro escenarios de implementación diferentes:

  • Implementación nueva

  • Cambio de configuración

  • Actualización incremental del código

  • Actualización importante

Para obtener más información, lea “Administrar Servicios en la nube”, “Administrar implementaciones en Azure” y “Administrar los servicios”.

Puede configurar varias implementaciones usando una suscripción de Azure para admitir el desarrollo, la prueba, el control de calidad, el ensayo, etc. Azure también permite configurar una cuenta de Azure para acceder a varias suscripciones. Por lo tanto, puede crear entornos diferentes de desarrollo y pruebas, con sus propias suscripciones, para su servicio. En este caso, considere la posibilidad de implementar primero el servicio en una suscripción de prueba y, después, en una suscripción de producción. Cuando esté preparado para que el servicio esté activo, puede moverlo al entorno de producción. Después de implementar el servicio en la nube en una suscripción de producción, puede usar el entorno de ensayo para realizar pruebas continuadas.

Azure permite configurar la aplicación para escalar vertical u horizontalmente de forma automática para que coincida con las demandas actuales y minimizar los costes. Para activar esta característica, use las reglas y programaciones de “escalado automático”. Para obtener más información, lea “Escalar una aplicación”.

Vea también

¿Te ha resultado útil?
(Caracteres restantes: 1500)
Gracias por sus comentarios
Mostrar:
© 2014 Microsoft