Implementación de una aplicación que se escala en toda la nube con Azure y Azure Stack Hub
Aprenda a crear una solución en toda la nube que proporcione un proceso desencadenado manualmente para cambiar de una aplicación web hospedada en Azure Stack Hub a una aplicación web hospedada en Azure con escalabilidad automática mediante Traffic Manager. Este proceso garantiza la utilidad en la nube flexible y escalable con carga.
Con este patrón, puede que el inquilino no esté preparado para ejecutar la aplicación en la nube pública. Sin embargo, puede que no sea económicamente viable para la empresa mantener la capacidad necesaria en el entorno local para controlar los picos en la demanda de la aplicación. El inquilino puede aprovechar la elasticidad de la nube pública en su solución local.
En esta solución, creará un entorno de ejemplo para:
- Crear una aplicación web de varios nodos.
- Configurar y administrar el proceso de implementación continua (CD).
- Publicar la aplicación web en Azure Stack Hub.
- Crear una versión.
- Supervisar y realizar un seguimiento de las implementaciones.
Sugerencia

Microsoft Azure Stack Hub es una extensión de Azure. Azure Stack Hub aporta la agilidad e innovación de la informática en la nube a su entorno local, ya que habilita la única nube híbrida que permite crear e implementar aplicaciones híbridas en cualquier parte.
En el artículo Consideraciones de diseño de aplicaciones híbridas se examinan los fundamentos de calidad del software (selección de ubicación, escalabilidad, disponibilidad, resistencia, manejabilidad y seguridad) para diseñar, implementar y usar aplicaciones híbridas. Las consideraciones de diseño ayudan a optimizar el diseño de aplicaciones híbridas y reducen los desafíos en los entornos de producción.
Prerrequisitos
- Suscripción de Azure. Si es necesario, cree una cuenta gratuita antes de comenzar.
- Un sistema integrado de Azure Stack Hub o la implementación del Kit de desarrollo de Azure Stack (ASDK).
- Para obtener instrucciones para la instalación de Azure Stack Hub, consulte Instalación del Kit de desarrollo de Azure Stack.
- Para ver un script de automatización posterior a la implementación de ASDK, vaya a: https://github.com/mattmcspirit/azurestack
- Esta instalación puede tardar algunas horas en completarse.
- Implemente los servicios PaaS de App Service en Azure Stack Hub.
- Cree planes u ofertas en el entorno de Azure Stack Hub.
- Cree una suscripción de inquilino dentro del entorno de Azure Stack Hub.
- Cree una aplicación web dentro de la suscripción de inquilino. Anote la nueva dirección URL de aplicación web, ya que la usará más adelante.
- Implemente la máquina virtual (VM) de Azure Pipelines en la suscripción del inquilino.
- Se requiere una máquina virtual Windows Server 2016 con .NET 3.5. Esta máquina virtual se compilará en la suscripción del inquilino en Azure Stack Hub como agente de compilación privado.
- Windows Server 2016 con la imagen de máquina virtual de SQL 2017 está disponible en Marketplace de Azure Stack Hub. Si esta imagen no está disponible, trabaje con un operador de Azure Stack Hub para garantizar que se agrega al entorno.
Problemas y consideraciones
Escalabilidad
El componente clave del escalado de toda la nube es la posibilidad de proporcionar un escalado inmediato a petición entre la infraestructura en la nube pública y local que ofrezca unos servicios coherentes y confiables.
Disponibilidad
Asegúrese de que las aplicaciones implementadas localmente están configuradas para una alta disponibilidad mediante la configuración del hardware local y la implementación de software.
Facilidad de uso
La solución para toda la nube garantiza una administración sin problemas y una interfaz familiar entre entornos. Se recomienda usar PowerShell para la administración multiplataforma.
Escalado de toda la nube
Obtención de un dominio personalizado y configuración de DNS
Actualice el archivo de zona DNS para el dominio. Azure AD comprobará la propiedad del nombre de dominio personalizado. Use Azure DNS para los registros DNS de Azure/Microsoft 365/externo dentro de Azure, o bien agregue la entrada DNS a un registrador DNS diferente.
- Registre un dominio personalizado con un registrador público.
- Inicie sesión en el registrador de nombres de dominio para el dominio. Puede que se requiera un administrador autorizado para realizar las actualizaciones de DNS.
- Actualice el archivo de zona DNS para el dominio. Para ello, agregue la entrada DNS que Azure AD proporcione (la entrada del DNS no afectará al enrutamiento de correo electrónico ni a los comportamientos de hospedaje web).
Creación de una aplicación web predeterminada de varios nodos en Azure Stack Hub
Configure la canalización híbrida de integración continua e implementación continua (CI/CD) para implementar aplicaciones web en Azure y Azure Stack Hub e insertar automáticamente los cambios en ambas nubes.
Nota
Se requiere Azure Stack Hub con las imágenes adecuadas sindicadas para ejecutarse (Windows Server y SQL) y la implementación de App Service. Para más información, revise en la documentación de App Service Requisitos previos para implementar App Service en Azure Stack Hub.
Adición de código a Azure Repos
Azure Repos
Inicie sesión en Azure Repos con una cuenta que tenga derechos de creación de proyectos en Azure Repos.
La canalización de CI/CD híbrida se puede aplicar al código de aplicación y al código de infraestructura. Use plantillas de Azure Resource Manager tanto para el desarrollo en la nube hospedado como para el privado.

Clone el repositorio; para ello, cree y abra la aplicación web predeterminada.

Creación de una implementación de aplicación web autocontenida para App Services en ambas nubes
Edite el archivo WebApplication.csproj. Seleccione
Runtimeidentifiery agreguewin10-x64(consulte el documento acerca de las implementaciones autocontenidas).
Inserte el código en Azure Repos mediante Team Explorer.
Confirme que el código de la aplicación se ha insertado en el repositorio en Azure Repos.
Creación de la definición de compilación
Inicie sesión en Azure Pipelines para confirmar la posibilidad de crear definiciones de compilación.
Agregue el código -r win10-x64. Esta adición es necesaria para activar una implementación autocontenida con .Net Core.

Ejecute la compilación. El proceso de compilación de implementación autocontenida publicará los artefactos que se pueden ejecutar en Azure y Azure Stack Hub.
Uso de un agente hospedado de Azure
El uso de un agente de compilación hospedado en Azure Pipelines es una opción adecuada para compilar e implementar aplicaciones web. Microsoft Azure realiza automáticamente el mantenimiento y las actualizaciones, lo que permite un ciclo de desarrollo ininterrumpido y continuo.
Administración y configuración del proceso de CD
Azure Pipelines y Azure DevOps Services proporcionan una canalización con una gran capacidad de configuración y administración para versiones para varios entornos, como desarrollo, almacenamiento provisional, control de calidad y producción, lo que incluye la solicitud de aprobaciones en etapas concretas.
Creación de la definición de versión
Seleccione el botón con el signo más para agregar una versión nueva en la pestaña Releases (Versiones) de la sección Build and Release (Compilación y versión) de Azure DevOps Services.

Aplique la plantilla Implementación de Azure App Service.

En Agregar artefacto, agregue el artefacto para la aplicación de compilación de nube de Azure.

En la pestaña Canalización, seleccione el vínculo Fase, Tarea del entorno y establezca los valores del entorno de nube de Azure.

Establezca el nombre del entorno y seleccione la suscripción de Azure como el punto de conexión de la nube de Azure.

En Nombre de App Service, establezca el nombre del servicio de aplicación de Azure necesario.

Escriba "Hospedado VS2017" en Cola de agentes para el entorno hospedado en la nube de Azure.

En el menú de implementación de Azure App Service, seleccione el paquete o carpeta válidos para el entorno. Seleccione Aceptar para la ubicación de carpeta.


Guarde todos los cambios y vuelva a la canalización de versión.

Agregue un nuevo artefacto mediante la selección de la compilación para la aplicación de Azure Stack Hub.

Agregue un entorno más; para ello, aplique Implementación de Azure App Service.

Asigne al nuevo entorno el nombre "Azure Stack".

Busque el entorno de Azure Stack en la pestaña Tarea.

Seleccione la suscripción para el punto de conexión de Azure Stack.

Establezca el nombre de la aplicación web de Azure Stack como el nombre del servicio de aplicación.

Seleccione el agente de Azure Stack.

En la sección de implementación de Azure App Service, seleccione el paquete o carpeta válidos para el entorno. Seleccione Aceptar para la ubicación de carpeta.


En la pestaña Variable, agregue una variable denominada
VSTS\_ARM\_REST\_IGNORE\_SSL\_ERRORS, establezca su valor como true y defina el ámbito en Azure Stack.
Seleccione el icono del desencadenador de implementación Continuo en ambos artefactos y habilite el desencadenador de implementación Continua.

Seleccione el icono de condiciones previas a la implementación en el entorno de Azure Stack y establezca el desencadenador en After release (Tras el lanzamiento).

Guarde todos los cambios.
Nota
Algunos valores de configuración de las tareas se han definido automáticamente como variables de entorno cuando se creó una definición de versión desde una plantilla. Estos valores de configuración no se pueden modificar en la configuración de tareas; para hacerlo, debe seleccionar el elemento del entorno principal.
Publicación en Azure Stack Hub mediante Visual Studio
Mediante la creación de puntos de conexión, una compilación de Azure DevOps Services puede implementar aplicaciones de Azure Service en Azure Stack Hub. Azure Pipelines se conecta con el agente de compilación, que, a su vez, se conecta con Azure Stack Hub.
Inicie sesión en Azure DevOps Services y vaya a la página de configuración de la aplicación.
En Configuración, seleccione Seguridad.
En Grupos de VSTS, seleccione Creadores de puntos de conexión.
En la pestaña Miembros, seleccione Agregar.
En Agregar usuarios y grupos, escriba un nombre de usuario y seleccione ese usuario en la lista de usuarios.
Seleccione Save changes (Guardar los cambios).
En la lista Grupos de VSTS, seleccione Administradores de puntos de conexión.
En la pestaña Miembros, seleccione Agregar.
En Agregar usuarios y grupos, escriba un nombre de usuario y seleccione ese usuario en la lista de usuarios.
Seleccione Save changes (Guardar los cambios).
Ahora que existe la información del punto de conexión, la conexión de Azure Pipelines con Azure Stack Hub está lista para su uso. El agente de compilación de Azure Stack Hub obtiene instrucciones de Azure Pipelines y, luego, transmite la información del punto de conexión para la comunicación con Azure Stack Hub.
Desarrollo de la compilación de la aplicación
Nota
Se requiere Azure Stack Hub con las imágenes adecuadas sindicadas para ejecutarse (Windows Server y SQL) y la implementación de App Service. Para más información, consulte Requisitos previos para implementar App Service en Azure Stack Hub.
Use plantillas de Azure Resource Manager como código de aplicación web de Azure Repos para implementar en ambas nubes.
Incorporación de código a un proyecto de Azure Repos
Inicie sesión en Azure Repos con una cuenta que tenga derechos de creación de proyectos en Azure Stack Hub.
Clone el repositorio; para ello, cree y abra la aplicación web predeterminada.
Creación de una implementación de aplicación web autocontenida para App Services en ambas nubes
Edite el archivo WebApplication.csproj: Seleccione
Runtimeidentifiery, después, agreguewin10-x64. Para más información, consulte la documentación de la implementación independiente.Compruebe el código en Azure Repos mediante Team Explorer.
Confirme que el código de la aplicación se ha insertado en Azure Repos.
Creación de la definición de compilación
Inicie sesión en Azure Pipelines con una cuenta que pueda crear una definición de compilación.
Vaya a la página Build Web Application (Compilar aplicación web) del proyecto.
En Argumentos, agregue el código -r win10-x64. Esta adición es necesaria para desencadenar una implementación independiente con .NET Core.
Ejecute la compilación. El proceso de compilación de implementación autocontenida publicará los artefactos que se pueden ejecutar en Azure y Azure Stack Hub.
Uso de un agente de compilación hospedado en Azure
El uso de un agente de compilación hospedado en Azure Pipelines es una opción adecuada para compilar e implementar aplicaciones web. Microsoft Azure realiza automáticamente el mantenimiento y las actualizaciones, lo que permite un ciclo de desarrollo ininterrumpido y continuo.
Configuración del proceso de implementación continua (CD)
Azure Pipelines y Azure DevOps Services proporcionan una canalización con gran capacidad de configuración y administración para diferentes versiones de varios entornos, como desarrollo, almacenamiento provisional, control de calidad (QA) y producción. Este proceso puede incluir la solicitud de aprobaciones en determinadas fases del ciclo de vida de la aplicación.
Creación de la definición de versión
La creación de una definición de versión es el último paso en el proceso de compilación de la aplicación. Esta definición de versión se usa para crear una versión e implementar una compilación.
Inicie sesión en Azure Pipelines y vaya a Build and Release (Compilación y versión) en el proyecto.
En la pestaña Versiones, seleccione [ + ] y, a continuación, elija Crear definición de versión.
En Seleccionar una plantilla, elija Implementación de Azure App Service y, a continuación, seleccione Aplicar.
En Agregar artefacto, en Origen (definición de compilación) , seleccione la aplicación de compilación en la nube de Azure.
En la pestaña Canalización, seleccione el vínculo 1 fase, 1 tarea para Ver tareas de entorno.
En la pestaña Tareas, escriba Azure como Nombre del entorno y seleccione AzureCloud Traders-Web EP en la lista Suscripción de Azure.
Escriba el nombre de la instancia de Azure App Service, que es
northwindtradersen la siguiente captura de pantalla.Para la fase de agente, seleccione VS2017 hospedado en la lista Cola de agentes.
En Implementar Azure App Service, seleccione el valor de Paquete o carpeta válido para el entorno.
En Seleccionar archivo o carpeta, seleccione Aceptar para Ubicación.
Guarde todos los cambios y vuelva a Canalización.
En la pestaña Canalización, seleccione Agregar artefacto y elija NorthwindCloud Traders-Vessel en la lista Origen (definición de compilación) .
En Seleccionar una plantilla, agregue otro entorno. Elija Implementación de Azure App Service y, a continuación, seleccione Aplicar.
Escriba
Azure Stack Hubcomo Nombre del entorno.En la pestaña Tasks (Tareas), busque y seleccione Azure Stack Hub.
En la lista Azure subscription (Suscripción de Azure), seleccione AzureStack Traders-Vessel EP como el punto de conexión de Azure Stack Hub.
Establezca el nombre de la aplicación web de Azure Stack Hub como nombre del servicio de aplicación.
En Selección de agente, elija AzureStack - b Douglas Fir en la lista Cola de agentes.
En Implementar Azure App Service, seleccione el valor de Paquete o carpeta válido para el entorno. En Seleccionar archivo o carpeta, seleccione Aceptar para la Ubicación de la carpeta.
En la pestaña Variables, busque la variable denominada
VSTS\_ARM\_REST\_IGNORE\_SSL\_ERRORS. Establezca el valor de la variable en true y establezca su ámbito en Azure Stack Hub.En la pestaña Canalización, seleccione el icono del Desencadenador de implementación continua para el artefacto NorthwindCloud Traders-Web y establezca Desencadenador de implementación continua en Habilitado. Lo mismo para el artefacto NorthwindCloud Traders-Vessel.
En el entorno de Azure Stack Hub, seleccione el icono de condiciones previas a la implementación y establezca el desencadenador en After release (Tras el lanzamiento).
Guarde todos los cambios.
Nota
Algunos valores de configuración de las tareas se han definido automáticamente como variables de entorno cuando se creó una definición de versión desde una plantilla. Esta configuración no puede modificarse en la configuración de la tarea, pero sí en los elementos del entorno primario.
Creación de una versión
En la pestaña Canalización, abra la lista Versión y seleccione Crear versión.
Escriba la descripción de la versión, compruebe que se han seleccionado los artefactos correctos y seleccione Create (Crear). Transcurridos unos instantes, aparece un mensaje emergente que indica que se ha creado la nueva versión y el nombre de la versión se muestra como un vínculo. Seleccione el vínculo para ver la página de resumen de la versión.
La página de resumen de la versión muestra detalles acerca de la versión. En la siguiente captura de pantalla de "Release-2", en la sección Environments (Entornos), en la columna Deployment status (Estado de implementación) de Azure aparece el valor "IN PROGRESS" (EN CURSO) y el estado de Azure Stack Hub es "SUCCEEDED" (CORRECTO). Cuando el estado de implementación para el entorno de Azure cambie a "Correcto", aparece un mensaje emergente que indica que la versión está lista para su aprobación. Cuando una implementación está pendiente o se ha producido un error, se muestra un icono de información (i) azul. Desplácese sobre el icono para ver un elemento emergente que contiene la razón del retraso o los errores.
Otras vistas, como la lista de versiones, también muestran un icono que indica que está pendiente la aprobación. El elemento emergente para este icono muestra el nombre del entorno y más detalles relacionados con la implementación. Los administradores pueden ver fácilmente el progreso general de las versiones, así como qué versiones están pendientes de aprobación.
Supervisión y seguimiento de implementaciones
En la página de resumen Release-2, seleccione Registros. Durante una implementación, esta página muestra el registro en directo del agente. El panel izquierdo muestra el estado de cada operación de la implementación para cada entorno.
Seleccione el icono de persona en la columna Acción correspondiente a una aprobación previa o posterior a la implementación para ver quién aprobó (o rechazó) la implementación y el mensaje que especificó.
Una vez finalizada la implementación, se muestra el archivo de registro completo en el panel derecho. Seleccione cualquier paso en el panel izquierdo para ver el archivo de registro de un paso individual, como Initialize Job (Inicializar trabajo). La posibilidad de ver registros individuales facilita realizar el seguimiento y la depuración de partes individuales de la implementación general. Guarde el archivo de registro de un paso, o bien seleccione Download all logs as zip (Descargar todos los registros como zip).
Abra la pestaña Resumen para ver información general sobre la versión. Esta vista muestra detalles de la compilación, los entornos en los que se implementó, el estado de implementación y otra información sobre la versión.
Seleccione un vínculo de entorno (Azure o Azure Stack Hub) para ver información sobre las implementaciones existentes y pendientes en un entorno específico. Use estas vistas como una forma rápida de comprobar que la misma compilación se ha implementado en ambos entornos.
Abra la aplicación de producción implementada en un explorador. Por ejemplo, para el sitio web de Azure App Services, abra la dirección URL
https://[your-app-name\].azurewebsites.net.
La integración de Azure y Azure Stack Hub proporciona una solución escalable entre nubes
Un servicio de nube múltiple flexible y sólido proporciona seguridad de los datos, copia de seguridad y redundancia, disponibilidad coherente y rápida, almacenamiento y distribución escalables, y compatibilidad con el enrutamiento con replicación geográfica. Este proceso desencadenado manualmente garantiza una conmutación confiable y eficaz entre las aplicaciones web hospedadas y una disponibilidad inmediata de los datos más importantes.
Pasos siguientes
- Para más información sobre los patrones de nube de Azure, consulte Patrones de diseño en la nube.