Descrever as noções básicas do Azure CycleCloud

Concluído

Muitas organizações desejam fazer a transição de suas cargas de trabalho HPC locais para o Azure para se beneficiarem de seus recursos de hiperescala. Eles também querem minimizar a curva de aprendizado associada a essa transição e usar a experiência associada às implantações existentes, como um agendador de HPC específico. Por fim, eles buscam informações sobre o desempenho e o custo dos recursos de cluster baseados em nuvem, da maneira paralela aos seus ambientes locais.

Implementar uma solução personalizada que atenda a essas necessidades é um desafio. Requer um conhecimento aprofundado dos recursos de computação, rede e armazenamento do Azure que servem como blocos de construção de clusters HPC baseados na nuvem. Além disso, sem uma interface de gerenciamento correspondente, operar essa solução confiando nas ferramentas de gerenciamento padrão do Azure resultaria em uma sobrecarga administrativa significativa.

O Azure CycleCloud aborda essas preocupações, fornecendo uma maneira simples, segura e escalável de implementar agendadores HPC no Azure. Nesta unidade, você aprenderá sobre sua funcionalidade básica.

Nota

O Azure CycleCloud destina-se a cenários de implantação que exigem o uso de um agendador HPC específico. Isso complementa o Azure Batch, que fornece um agendador como um serviço no Azure.

O que é o Azure CycleCloud?

O Azure CycleCloud é uma ferramenta para implantar clusters HPC no Azure e gerenciar suas cargas de trabalho. Oferece uma vasta gama de capacidades de HPC, incluindo:

  • Implantação baseada em modelos de clusters HPC. O Azure CycleCloud fornece modelos personalizáveis incorporados para implementar os agendadores de cluster mais comuns, incluindo Slurm, OpenPBS, LSF, Grid Engine e HTCondor. Muitos outros modelos predefinidos, que você pode importar para sua instância do Azure CycleCloud, estão disponíveis no repositório GitHub do CycleCloud.

    Nota

    Os modelos são arquivos formatados em INI que usam sintaxe declarativa para descrever como os nós são organizados em um cluster do CycleCloud, incluindo seus respetivos relacionamentos. Os modelos contêm referências a projetos, que definem a configuração do nó.

  • Dimensionamento manual e automatizado de nós de cluster. O Azure CycleCloud permite o dimensionamento horizontal manual e automatizado de clusters gerenciados de acordo com o comprimento das filas de trabalho e políticas de governança. Ele também oferece uma API REST para desenvolver adaptadores de dimensionamento automático para agendadores personalizados.

  • Configuração de nó através de scripts cloud-init. O Azure CycleCloud dá suporte ao gerenciamento de configuração com base em scripts personalizados que são executados em nós de cluster gerenciados antes de qualquer outra tarefa de configuração específica do CycleCloud.

  • Gestão do armazenamento de cluster interno e externo. O Azure CycleCloud permite configurar o armazenamento de cluster provisionando, montando e formatando discos gerenciados do Azure e armazenamento conectado à rede, como servidores NFS ou clusters BeeGFS.

  • Monitoramento, registro e alerta. O Azure CycleCloud oferece monitoramento de cluster interno e integra-se ao Azure Monitor. Também é possível armazenar dados de log de clusters do CycleCloud para o Log Analytics e criar painéis de métricas personalizados. Além disso, você pode criar alertas personalizados e notificações por e-mail acionadas por dados de telemetria. Todas as atividades do Azure CycleCloud são registradas.

  • Autenticação e autorização. O Azure CycleCloud dá suporte à autenticação local interna. Como alternativa, você pode integrá-lo aos Serviços de Domínio Ative Directory ou a outros provedores de identidade baseados em LDAP (Lightweight Directory Access Protocol). Por padrão, os usuários definidos localmente têm acesso ao sistema operacional nos nós de cluster gerenciados, mas é possível administrar os usuários do cluster separadamente. Para o gerenciamento de recursos em uma assinatura do Azure, você pode usar uma entidade de serviço ou identidade gerenciada do Microsoft Entra.

  • Relatórios e controles de custos quase em tempo real. O Azure CycleCloud rastreia o uso do cluster e estima o custo correspondente. Esse recurso permite configurar alertas de orçamento acionados quando o custo do cluster excede o valor monetário especificado. O Azure CycleCloud também se integra ao Microsoft Cost Management.

Como implementar e usar o Azure CycleCloud?

O CycleCloud é implementado como um aplicativo Web baseado em Linux, que você pode instalar em qualquer local a partir do qual você pode acessar seu ambiente do Azure. A maneira mais simples de configurá-lo é implantando uma VM do Azure usando a imagem correspondente do Azure Marketplace, com a opção de automatizar a implantação usando um modelo do Azure Resource Manager (ARM). Como alternativa, você pode usar pacotes yum ou apt, ou uma imagem de contêiner disponível no Microsoft Container Registry.

Durante a configuração inicial, você tem a opção de fornecer uma chave SSH para proteger o acesso ao sistema operacional que hospeda o aplicativo CycleCloud e aos nós de cluster implantados posteriormente. Para permitir que o aplicativo CycleCloud interaja com o Azure Resource Manager, você precisa escolher uma identidade do Microsoft Entra que forneça contexto de segurança para essa interação e atribuir a ele permissões suficientes na assinatura do Azure de destino usando o RBAC (controle de acesso baseado em função) do Azure. Essa identidade pode assumir a forma de uma entidade de serviço ou uma identidade gerenciada se hospedar o aplicativo Azure CycleCloud em uma VM do Azure.

Uma instância do Azure CycleCloud também requer uma conta de armazenamento do Azure e um contêiner de blob que o acompanha. Esse contêiner, conhecido como locker, fornece a área de preparo para a implantação de projetos em nós de cluster.

Uma vez instalado, o aplicativo Azure CycleCloud fornece uma interface gráfica do usuário que permite que um usuário gerencie e monitore sistemas HPC e uma interface de linha de comando (CLI) que facilita a automação e a integração do CycleCloud em fluxos de trabalho existentes. Você também pode usar a CLI para importar modelos, automatizar o provisionamento de cluster e executar tarefas de gerenciamento mais avançadas.

Captura de ecrã da interface gráfica da aplicação Web Azure CycleCloud.

Qual é a arquitetura do Azure CycleCloud?

O Azure CycleCloud fornece uma camada adicional de abstração em comparação com o Azure Resource Manager, minimizando a necessidade de seus usuários lidarem diretamente com os recursos de computação e armazenamento do Azure. Sua função é traduzir configurações de nível de agendador acessíveis por meio de sua interface gráfica ou CLI em chamadas de API ARM que interagem com VMs do Azure e Conjuntos de Escala de VM do Azure em redes virtuais e sub-redes definidas pelo usuário. Essas chamadas também consideram cotas regionais de vCPU, limites de tamanho de cluster e restrições da topologia de rede InfiniBand. Eles também facilitam a otimização do desempenho do cluster usando construções como grupos de posicionamento de proximidade ou conectando nós de cluster ao mesmo switch InfiniBand.

Nota

Um grupo de posicionamento de proximidade permite colocar VMs do Azure próximas umas das outras, mas não considera a rede InfiniBand. O Azure CycleCloud permite que você use sua própria construção específica, conhecida como PlacementGroupId para agrupar nós de cluster em um único Conjunto de Escala de VM do Azure conectado ao mesmo switch de rede. Você pode combinar esses dois recursos, mas isso pode reduzir o número de nós que você pode provisionar dentro do mesmo Conjunto de Escala de VM do Azure.

O Azure CycleCloud orquestra o ciclo de vida dos clusters HPC, que normalmente consistem em um ou mais nós principais do agendador HPC e nós de computação, mas também podem incluir Armazenamento Conectado à Rede, como um servidor NFS ou cluster BeeGFS, Arquivos NetApp do Azure, Cache HPC do Azure e Serviços de Domínio Microsoft Entra. Ele inclui um armazenamento de dados NoSQL interno que armazena em cache os estados do cluster e do nó. Seu sistema de monitoramento de nó permite o alerta. Sua funcionalidade de gerenciamento é exposta através da API REST e acessível através da web e da CLI.

O dimensionamento automático do cluster gerenciado depende da Calculadora de Demanda e da Biblioteca de Dimensionamento Automático. Você aprenderá sobre suas características na próxima unidade deste curso.

Diagrama da arquitetura de alto nível do Azure CycleCloud.

O que é o ciclo de vida do cluster do Azure CycleCloud?

O ciclo de vida de um cluster começa com a seleção de um modelo que contém sua definição. Você tem a opção de usar um dos modelos internos ou criar um personalizado e importá-lo para o aplicativo CycleCloud. O modelo normalmente inclui vários parâmetros, que permitem personalizar a configuração do cluster durante sua criação. As especificidades do processo de criação do cluster dependem se você usa a Web ou a CLI.

Depois de criar um cluster, você pode iniciá-lo. Iniciar um cluster dispara uma sequência de tarefas para cada nó que faz parte da definição baseada em modelo de cluster. Essa sequência consiste em uma chamada para o Azure Resource Manager solicitando o provisionamento de uma VM do Azure, conhecida como o estado de Adquirência . Isso é seguido pela configuração da VM, incluindo a execução de sua inicialização definida no projeto correspondente, a execução de scripts para instalar e configurar o software de agendamento e o provisionamento e a montagem de volumes do sistema de arquivos. Quando a sequência é concluída, o nó atinge o estado Iniciado . Qualquer erro desconhecido ou sem tratamento resulta no estado Erro .

Depois que os nós do cluster são executados, eles são acessíveis remotamente por SSH ou RDP, dependendo do sistema operacional. Você pode usar essas conexões para enviar trabalhos de cluster. Dependendo da configuração do cluster, isso pode desencadear o dimensionamento do cluster.

Você pode encerrar um cluster quando ele concluir todos os trabalhos enviados. O encerramento do cluster para e remove seus nós e exclui quaisquer volumes não persistentes, deixando o cluster no estado Desativado .