Compartir a través de


Flujo de trabajo de la arquitectura clásica de máquina virtual (VM) de Microsoft Azure

Importante

Cloud Services (clásico) ahora está en desuso para todos los clientes a partir del 1 de septiembre de 2024. Microsoft detendrá y cerrará todas las implementaciones en curso y los datos se perderán de forma permanente a partir de octubre de 2024. Las nuevas implementaciones deben utilizar el nuevo modelo de implementación basado en Azure Resource Manager Azure Cloud Services (soporte extendido) .

En este artículo se proporciona información general de los procesos de flujo de trabajo que se producen al implementar o actualizar un recurso de Azure, como una máquina virtual.

Nota:

Azure tiene dos modelos de implementación diferentes para crear recursos y trabajar con ellos: el de Resource Manager y el clásico. Este artículo trata del modelo de implementación clásico.

El diagrama siguiente presenta la arquitectura de los recursos de Azure.

<alt La imagen sobre el flujo de trabajo de Azure>

Conceptos básicos del flujo de trabajo

R. RDFE/FFE es la ruta de comunicación desde el usuario hasta el tejido. RDFE (RedDog Front End) es la API expuesta públicamente que funciona como el front-end para el Portal de administración y la API del modelo de implementación clásica, tal como Visual Studio, Azure MMC, etc. Todas las solicitudes del usuario se realizan a través de RDFE. FFE (Fabric Front End) es la capa que convierte las solicitudes de RDFE en comandos de la infraestructura de red. Todas las solicitudes de RDFE pasan por FFE para llegar hasta los controladores de red.

B. El controlador de infraestructura es el responsable del mantenimiento y la supervisión de todos los recursos del centro de datos. Se comunica con los agentes del host de la infraestructura en el sistema operativo de la infraestructura enviando información, como la versión del SO invitado, el paquete de servicio, la configuración del servicio y el estado del servicio.

C. El agente host reside en el sistema operativo host y es responsable de configurar el sistema operativo invitado. También se encarga de la comunicación con el Guest Agent (WindowsAzureGuestAgent) para actualizar el rol hacia un estado deseado y realizar comprobaciones de latido con el Guest Agent. Si el Agente de Host no recibe señal de latido durante diez minutos, el Agente de Host reinicia el SO Invitado.

C2. WaAppAgent es el responsable de instalar, configurar y actualizar WindowsAzureGuestAgent.exe.

D. WindowsAzureGuestAgent es responsable de las siguientes tareas:

  • Configurar el SO invitado, lo que incluye el firewall, las ACL, los recursos LocalStorage, la configuración y el paquete de servicio, y los certificados.
  • Configurar el SID de la cuenta de usuario en la que se ejecuta el rol.
  • Comunicar el estado del rol al entorno.
  • Iniciar WaHostBootstrapper y supervisarlo para asegurarse de que el rol alcance el estado previsto.

E. WaHostBootstrapper es el responsable de:

  • Leer la configuración del rol e iniciar todas las tareas y procesos apropiados para configurar y ejecutar dicho rol.
  • Supervisar todos sus procesos hijo.
  • Activar el evento StatusCheck en el proceso de host del rol.

F. IISConfigurator se ejecuta si el rol se configura como un rol web de IIS completo. Es responsable de:

  • Iniciar los servicios de IIS estándar
  • Configurar el módulo de reescritura en la configuración web
  • Configurar AppPool para el rol configurado en el modelo de servicio
  • Configurar la configuración de registro de IIS para que apunte a la carpeta de almacenamiento local de DiagnosticStore
  • Configurar los permisos y las ACL
  • El sitio web reside en %roleroot%:\sitesroot\0 y AppPool apunta a esta ubicación para ejecutar IIS.

G. El modelo de roles define las tareas de inicio y WaHostBootstrapper las inicia. Las tareas de inicio pueden configurarse para ejecutarse de forma asincrónica en segundo plano, y el gestor de arranque del host inicia la tarea de inicio y luego continúa con otras tareas de inicio. Las tareas de inicio también se pueden configurar para ejecutarse en modo Simple (predeterminado). En el modo Simple, el programa de arranque del host espera a que la tarea de inicio termine de ejecutarse y devuelva un código de salida de éxito (0) antes de continuar con la siguiente tarea de inicio.

H. Estas tareas forman parte del SDK y se definen como complementos en la definición del servicio del rol (.csdef). Cuando se expande en las tareas de inicio, DiagnosticsAgent y RemoteAccessAgent son únicos en que cada uno de ellos define dos tareas de inicio, una normal y otra que tiene un parámetro /blockStartup. La tarea de inicio normal se define como una tarea de inicio en segundo plano para que pueda ejecutarse en segundo plano mientras se está ejecutando el propio rol. La tarea de inicio /blockStartup se define como una tarea de inicio simple para que WaHostBootstrapper espere a que termine antes de continuar. La tarea /blockStartup espera a que la tarea normal termine de inicializarse y luego se cierra y permite que el arranque del host continúe. Este proceso se lleva a cabo para que los diagnósticos y el acceso RDP se puedan configurar antes de que los procesos de rol se inicien, lo cual se realiza mediante la tarea /blockStartup. Este proceso también permite que los diagnósticos y el acceso RDP continúen ejecutándose después de que el bootstrapper del host finaliza las tareas de inicio, lo cual se realiza a través de la tarea Normal.

I. WaWorkerHost es el proceso de anfitrión estándar para los roles de trabajo normales. Este proceso de host aloja todas las DLL del rol y el código de punto de entrada, como OnStart y Run.

J. WaIISHost es el proceso anfitrión para el código de punto de entrada para roles web que usan Internet Information Services (IIS) en su totalidad. Este proceso carga el primer archivo DLL que se encuentra que usa la clase RoleEntryPoint y ejecuta el código de esta clase (OnStart, Run, OnStop). Todos los eventos RoleEnvironment (como StatusCheck y Changed) que se crean en la clase RoleEntryPoint se generan en este proceso.

K. W3WP es el proceso de trabajo de IIS estándar usado si el rol está configurado para usar IIS completo. Este proceso ejecuta AppPool configurado desde IISConfigurator. Todos los eventos RoleEnvironment (como StatusCheck y Changed) que se crean aquí se generan en este proceso. Los eventos de RoleEnvironment se activan en ambas ubicaciones (WaIISHost y w3wp.exe) si se suscribe a los eventos en ambos procesos.

Procesos del flujo de trabajo

  1. Un usuario realiza una solicitud, como cargar archivos ".cspkg" y ".cscfg", indicando a un recurso que detenga o haga un cambio de configuración, etc. Las solicitudes se pueden realizar a través de Azure Portal o herramientas que usan la API del modelo de implementación clásica, como la característica Publicar de Visual Studio. La solicitud se envía a RDFE para realizar todo el trabajo relacionado con las suscripciones y luego se comunica la solicitud a FFE. El resto de estos pasos de flujo de trabajo son para implementar un nuevo paquete e iniciarlo.
  2. FFE encuentra el grupo de máquinas correcto (en función de las aportaciones del cliente, como el grupo de afinidad o la ubicación geográfica, y de la entrada del tejido, como la disponibilidad de la máquina) y se comunica con el controlador de tejido maestro de ese grupo de máquinas.
  3. El controlador de la estructura encuentra un host que tiene núcleos de CPU disponibles (o inicia un nuevo host). El paquete de servicios y la configuración se copian en el host, y el controlador de la infraestructura se comunica con el agente del host en el sistema operativo del host para desplegar el paquete (configurar DIPs, puertos, sistema operativo invitado, etc.).
  4. El agente de host inicia el SO invitado y se comunica con el agente invitado (WindowsAzureGuestAgent). El anfitrión envía latidos del corazón al invitado para asegurarse de que el rol está funcionando para alcanzar su estado objetivo.
  5. WindowsAzureGuestAgent configura el SO invitado (firewall, ACL, LocalStorage, etc.), copia un nuevo archivo de configuración XML en c:\Config y, por último, inicia el proceso WaHostBootstrapper.
  6. Para los roles web de Full IIS, WaHostBootstrapper inicia IISConfigurator y le indica que elimine cualquier AppPool existente para el rol web desde IIS.
  7. WaHostBootstrapper lee las tareas Startup de E:\RoleModel.xml y comienza a ejecutar las tareas de inicio. WaHostBootstrapper espera hasta que finalicen todas las tareas de inicio Simple y devuelvan un mensaje de éxito.
  8. Para los roles web de IIS completos, WaHostBootstrapper indica a IISConfigurator que configure el AppPool de IIS y apunta el sitio a E:\Sitesroot\<index>, donde <index> es un índice basado en cero en el número de <Sites> elementos definidos para el servicio.
  9. WaHostBootstrapper inicia el proceso de anfitrión según el tipo de rol:
    1. Rol de trabajo: WaWorkerHost.exe se inicia. WaHostBootstrapper ejecuta el método OnStart(). Después de regresar, WaHostBootstrapper comienza a ejecutar el método Run() y luego marca simultáneamente el rol como Listo y lo coloca en la rotación del equilibrador de carga (si se definen elementos InputEndpoints). Después, WaHostBootsrapper entra en un bucle de comprobación del estado del rol.
    2. Rol web completo de IIS: aIISHost se ha iniciado. WaHostBootstrapper ejecuta el método OnStart(). Después de regresar, comienza a ejecutar el método Run() y luego marca simultáneamente el rol como Listo y lo coloca en la rotación del equilibrador de carga. Después, WaHostBootsrapper entra en un bucle de comprobación del estado del rol.
  10. Las solicitudes web entrantes a un rol web de IIS completo activan IIS para iniciar el proceso W3WP y atender la solicitud, de la misma manera que lo haría en un entorno de IIS local.

Ubicaciones del archivo de registro

WindowsAzureGuestAgent

  • C:\Logs\AppAgentRuntime.Log.
    Este registro contiene los cambios realizados en el servicio, como los inicios, las detenciones y las nuevas configuraciones. Si el servicio no cambia, puede esperar ver grandes espacios de tiempo en este archivo de registro.
  • C:\Logs\WaAppAgent.Log.
    Este registro contiene las actualizaciones de estado y notificaciones de latido y se actualiza cada 2 o 3 segundos. Este registro contiene una vista histórica del estado de la instancia y le indica cuándo la instancia no estaba en estado Listo.

WaHostBootstrapper

C:\Resources\Directory\<deploymentID>.<role>.DiagnosticStore\WaHostBootstrapper.log

WaIISHost

C:\Resources\Directory\<deploymentID>.<role>\WaIISHost.log

IISConfigurator

C:\Resources\Directory\<deploymentID>.<role>\IISConfigurator.log

Registros de IIS

C:\Resources\Directory\<guid>.<role>.DiagnosticStore\LogFiles\W3SVC1

Registros de eventos de Windows

D:\Windows\System32\Winevt\Logs