Descripción de los conceptos básicos de Azure CycleCloud

Completado

Muchas organizaciones quieren realizar la transición de sus cargas de trabajo de HPC locales a Azure para beneficiarse de sus funcionalidades de hiperescala. También les interesa minimizar la curva de aprendizaje asociada a dicha transición y aprovechar la experiencia asociada a las implementaciones existentes; por ejemplo, un programador de HPC específico. Por último, quieren obtener información sobre el rendimiento y el costo de los recursos de clúster basados en la nube, de una manera comparable a cómo lo hacen en sus entornos locales.

La implementación de una solución personalizada que aborde estas necesidades es todo un desafío. Requiere un conocimiento exhaustivo de los recursos de proceso, redes y almacenamiento de Azure que sirven como bloques de creación de clústeres de HPC basados en la nube. Además, sin una interfaz de administración correspondiente, si se gestiona una solución de este tipo mediante el uso de herramientas de administración estándar de Azure, se produciría una sobrecarga administrativa considerable.

Azure CycleCloud soluciona estos problemas, ya que proporciona una manera sencilla, segura y escalable de implementar programadores de HPC en Azure. En esta unidad, obtendrá más información sobre su funcionalidad básica.

Nota:

Azure CycleCloud está destinado a escenarios de implementación que requieren el uso de un programador de HPC específico. Esto complementa a Azure Batch, que proporciona un programador como servicio en Azure.

Qué es Azure CycleCloud

Azure CycleCloud es una herramienta para implementar clústeres de HPC en Azure y administrar sus cargas de trabajo. Ofrece una amplia gama de funcionalidades de HPC, entre las que se incluyen las siguientes:

  • Implementación basada en plantillas de clústeres de HPC. Azure CycleCloud proporciona plantillas personalizables integradas para implementar los programadores de clúster más comunes, incluidos Slurm, OpenPBS, LSF, Grid Engine y HTCondor. En el repositorio de GitHub de CycleCloud están disponibles muchas otras plantillas predefinidas, que puede importar en la instancia de Azure CycleCloud.

    Nota:

    Las plantillas son archivos con formato INI que usan la sintaxis declarativa para describir cómo se organizan los nodos en un clúster de CycleCloud, incluidas sus respectivas relaciones. Las plantillas contienen referencias a proyectos, que definen la configuración del nodo.

  • Escalado manual y automatizado de nodos de clúster. Azure CycleCloud permite el escalado horizontal manual y automatizado de clústeres administrados según la longitud de las colas de trabajos y las directivas de gobernanza. También ofrece una API REST para desarrollar adaptadores de escalado automático para programadores personalizados.

  • Configuración del nodo a través de scripts cloud-init. Azure CycleCloud admite la administración de configuración basada en scripts personalizados que se ejecutan en nodos de clúster administrados antes de cualquier otra tarea de configuración específica de CycleCloud.

  • Administración del almacenamiento de clúster interno y externo. Azure CycleCloud permite configurar el almacenamiento del clúster mediante el aprovisionamiento, el montaje y el formato de discos administrados de Azure y del almacenamiento conectado a la red, como servidores NFS o clústeres BeeGFS.

  • Supervisión, registro y alertas. Azure CycleCloud ofrece supervisión incorporada de los clústeres y se integra con Azure Monitor. También es posible almacenar datos de registro de clústeres de CycleCloud en Log Analytics y crear paneles de métricas personalizados. Además, puede crear alertas personalizadas y notificaciones por correo electrónico desencadenadas por datos de telemetría. Todas las actividades de Azure CycleCloud se registran.

  • Autenticación y autorización. Azure CycleCloud admite la autenticación local integrada. Como alternativa, puede integrarlo con Active Directory Domain Services o con otros proveedores de identidades basados en el protocolo ligero de acceso a directorios (LDAP). De forma predeterminada, los usuarios definidos localmente tienen acceso al sistema operativo en los nodos de clúster administrados, pero es posible administrar los usuarios del clúster por separado. Para administrar los recursos en una suscripción de Azure, puede usar una entidad de servicio o una identidad administrada de Microsoft Entra.

  • Controles e informes de costos casi en tiempo real. Azure CycleCloud realiza un seguimiento del uso del clúster y calcula el costo correspondiente. Esta característica le permite configurar alertas de presupuesto que se desencadenen cuando el costo del clúster supere el importe monetario que haya especificado. Azure CycleCloud también se integra con Microsoft Cost Management.

¿Cómo se implementa y se usa Azure CycleCloud?

CycleCloud se implementa como una aplicación web basada en Linux y puede instalarse en cualquier ubicación desde la que se pueda acceder al entorno de Azure. La manera más sencilla de configurarlo consiste en implementar una máquina virtual de Azure mediante la imagen de Azure Marketplace correspondiente, con la opción de automatizar la implementación con una plantilla de Azure Resource Manager (ARM). Como alternativa, puede usar paquetes yum o apt, o bien una imagen de contenedor disponible en la página de Microsoft Container Registry.

Durante la configuración inicial, tiene la opción de proporcionar una clave SSH para proteger el acceso al sistema operativo que hospeda la aplicación CycleCloud y a los nodos de clúster implementados posteriormente. Para permitir que la aplicación CycleCloud interactúe con Azure Resource Manager, debe elegir una identidad de Microsoft Entra que proporcione contexto de seguridad para esta interacción y asignarle permisos suficientes en la suscripción de Azure de destino mediante el control de acceso basado en rol (RBAC) de Azure. Esta identidad puede adoptar la forma de una entidad de servicio o de una identidad administrada si la aplicación Azure CycleCloud se hospeda en una máquina virtual de Azure.

Una instancia de Azure CycleCloud también requiere una cuenta de almacenamiento de Azure y un contenedor de blobs adjunto. Este contenedor, conocido como almacén, proporciona el área de almacenamiento provisional para la implementación de proyectos en nodos de clúster.

Una vez instalada, la aplicación Azure CycleCloud proporciona una interfaz gráfica de usuario que permite a un usuario administrar y supervisar sistemas de HPC, así como una interfaz de la línea de comandos (CLI) que facilita la automatización y la integración de CycleCloud en los flujos de trabajo existentes. También puede usar la CLI para importar plantillas, automatizar el aprovisionamiento de clústeres y realizar tareas de administración más avanzadas.

Captura de pantalla de la interfaz gráfica de la aplicación web Azure CycleCloud.

¿Cuál es la arquitectura de Azure CycleCloud?

Azure CycleCloud proporciona una capa adicional de abstracción en comparación con Azure Resource Manager, lo que minimiza la necesidad de que los usuarios se ocupen directamente de los recursos de proceso y almacenamiento de Azure. Su rol consiste en traducir las configuraciones de nivel de programador a las que se puede acceder mediante su interfaz gráfica o su CLI en llamadas API de ARM que interactúan con máquinas virtuales de Azure y Azure VM Scale Sets en redes virtuales y subredes definidas por el usuario. Estas llamadas también tienen en cuenta las cuotas de vCPU regionales, los límites de tamaño del clúster y las restricciones de la topología de red InfiniBand. También facilitan el proceso de optimizar el rendimiento del clúster mediante el uso de construcciones como grupos con ubicación por proximidad o la conexión de nodos de clúster al mismo conmutador InfiniBand.

Nota:

Un grupo con ubicación por proximidad permite colocar máquinas virtuales de Azure cerca unas de otras, pero no tiene en cuenta las redes InfiniBand. Azure CycleCloud permite usar su propia construcción específica, denominada PlacementGroupId, para agrupar nodos de clúster en una única instancia de Azure VM Scale Set conectada al mismo conmutador de red. Puede combinar estas dos características, pero esto podría reducir el número de nodos que puede aprovisionar dentro de la misma instancia de Azure VM Scale Set.

Azure CycleCloud orquesta el ciclo de vida de los clústeres de HPC, que suelen constar de uno o varios nodos principales y nodos de ejecución del programador de HPC, pero también podría incluir almacenamiento conectado a la red, como un servidor NFS o un clúster BeeGFS, Azure NetApp Files, Azure HPC Cache y Microsoft Entra Domain Services. Incluye un almacén de datos NoSQL interno que almacena en caché los estados de los clústeres y de los nodos. Su sistema de supervisión de nodos permite alertas. Su funcionalidad de administración se expone mediante la API REST y es accesible a través de la web y la CLI.

El escalado automático del clúster administrado se basa en la calculadora de demanda y la biblioteca de escalabilidad automática. Obtendrá más información sobre sus características en la siguiente unidad de este curso.

Diagrama de la arquitectura de alto nivel de Azure CycleCloud.

¿Qué es el ciclo de vida del clúster de Azure CycleCloud?

El ciclo de vida de un clúster comienza cuando se selecciona una plantilla que contiene su definición. Puede usar una de las plantillas integradas, o bien crear una personalizada e importarla en la aplicación CycleCloud. La plantilla suele incluir varios parámetros, que permiten personalizar la configuración del clúster durante su creación. Los detalles del proceso de creación del clúster dependen de si usa la web o la CLI.

Después de crear un clúster, puede iniciarlo. Al iniciar un clúster se desencadena una secuencia de tareas para cada nodo que forma parte de la definición basada en plantillas de clúster. Esta secuencia consta de una llamada a Azure Resource Manager que solicita el aprovisionamiento de una máquina virtual de Azure, lo que se conoce como el estado Adquiriendo. Esto va seguido de la configuración de la máquina virtual, lo que incluye la ejecución de su inicialización definida en el proyecto correspondiente, la ejecución de scripts para instalar y configurar el software de programación, y el aprovisionamiento y el montaje de volúmenes del sistema de archivos. Cuando se completa la secuencia, el nodo alcanza el estado Iniciado. Cualquier error desconocido o no controlado da como resultado el estado Error.

Una vez que se ejecutan los nodos del clúster, se puede acceder a ellos de forma remota a través de SSH o RDP, en función de su sistema operativo. Puede usar estas conexiones para enviar trabajos de clúster. Esto podría desencadenar el escalado del clúster, en función de cómo esté configurado.

Puede finalizar un clúster cuando haya completado todos los trabajos enviados. Al finalizar el clúster, se detienen y se quitan sus nodos, se eliminan los volúmenes no persistentes y el clúster queda en estado Desactivado.