CycleCloud: Conceitos Principais

No seu mais básico, um sistema de Computação de Alto Desempenho (HPC) é um conjunto de recursos computacionais apoiados por sistemas de ficheiros de desempenho e interligados por redes de baixa latência. Normalmente, estes recursos computacionais são geridos por Agendadores HPC, aplicações de software que agendam tarefas.

Criar sistemas HPC individuais no Azure a partir de unidades de infraestrutura básicas, como Máquinas Virtuais, Discos e Interfaces de Rede, pode ser complicado, especialmente se estes recursos forem efémeros , existentes apenas durante o tempo necessário para resolver a tarefa HPC em questão. Além disso, os operadores querem criar múltiplos ambientes HPC separados que podem ser adaptados a várias unidades de negócio, equipas de investigação ou indivíduos. A gestão destes múltiplos sistemas HPC pode ser operacionalmente complexa.

O que é o CycleCloud?

O Azure CycleCloud é uma ferramenta que ajuda a construir sistemas HPC no Azure. Orquestra estes sistemas para que sejam dimensionados elasticamente de acordo com as tarefas HPC em questão, sem o incómodo de gerir blocos modulares básicos do Azure. O CycleCloud foi concebido por uma equipa de profissionais experientes de HPC para administradores e utilizadores de HPC, em particular os utilizadores que procuram criar sistemas HPC no Azure que se assemelham à infraestrutura HPC interna com que estão familiarizados.

Diagrama de Orquestração

Operacionalmente, o CycleCloud é um servidor de aplicações instalado numa VM do Linux no Azure ou num servidor no local que tem acesso a APIs e recursos do Azure. O CycleCloud adquire e aprovisiona VMs do Azure para construir clusters do CycleCloud que podem integrar agendadores e aplicações de utilizador. O CycleCloud também fornece integrações de dimensionamento automático para vários agendadores HPC e um agente CycleCloud que é executado em VMs do Azure.

Servidor de Aplicações

Este servidor de aplicações fornece:

  1. Uma API REST para criar e gerir sistemas HPC no Azure.
  2. Uma interface de utilizador gráfica que permite a um utilizador gerir e monitorizar sistemas HPC.
  3. Uma CLI que facilita a integração do CycleCloud em fluxos de trabalho existentes.
  4. Um arquivo de dados noSQL interno que coloca em cache o estado do cluster e do nó.
  5. Um sistema de alocação e orquestração que adquire e gere VMs do Azure
  6. Um sistema de monitorização de nós para VMs existentes que alerta de alterações de estado.

Integrações

O CycleCloud também fornece uma série de integrações em agendadores comuns e nas VMs do Azure. A tecla fornece:

  1. Um sistema de preparação e configuração de nós para converter uma VM aprovisionada num nó HPC.
  2. Dimensionamento automático para agendadores HPC que traduzem os requisitos de tarefas do agendador de HPC em recursos do Azure.

O que pode fazer o CycleCloud

O CycleCloud destina-se a operadores HPC (administradores e utilizadores) que estão a implementar sistemas HPC no Azure e que querem replicar a infraestrutura que têm executado internamente, desde o agendador HPC até pontos de montagem do sistema de ficheiros para instalações de aplicações e acesso a dados. Estes utilizadores estão particularmente a analisar aplicações de suporte, motores de fluxo de trabalho e pipelines computacionais sem terem de voltar a ajustar os processos internos.

O CycleCloud fornece uma sintaxe de templating avançada e declarativa que permite aos utilizadores descrever o respetivo sistema HPC, desde a topologia do cluster (o número e tipos de nós de cluster), até aos pontos de montagem e aplicações que serão implementados em cada nó. O CycleCloud foi concebido para funcionar com agendadores HPC como PBSPro, Slurm, IBM LSF, Grid Engine e HT Condor, permitindo aos utilizadores criar filas diferentes em cada agendador e mapeá-los para nós de computação de diferentes tamanhos de VM no Azure. Além disso, os plug-ins de dimensionamento automático são integrados com os nós principais do agendador que ouvem as filas de tarefas em cada sistema e dimensionam o cluster de computação em conformidade ao interagir com a API REST de dimensionamento automático em execução no servidor da aplicação.

Além de aprovisionar e criar nós HPC, o CycleCloud também fornece uma arquitetura para preparar e configurar uma máquina virtual, fornecendo essencialmente um sistema para converter uma VM bare num componente funcional de um sistema HPC. Através desta arquitetura, os utilizadores podem fazer a configuração de última milha numa VM.

Além disso, o CycleCloud fornece as seguintes funcionalidades:

  • Acesso de Utilizador

    O CycleCloud inclui suporte incorporado para criar contas de utilizador locais em cada nó de um sistema HPC. Com este sistema, o acesso dos utilizadores pode ser controlado através de um único plano de gestão sem implementar um serviço de diretório.

  • Monitorização

    As métricas ao nível do nó são recolhidas e apresentadas na IU do CycleCloud. Estas são úteis para monitorizar a carga no sistema e podem ser ligadas aos serviços de relatórios e alertas.

  • Registo

    O CycleCloud fornece um sistema para atividades de registo e eventos ao nível do nó e do servidor de aplicações.

  • Portabilidade

    O sistema não determina a utilização de uma imagem ou sistema operativo de VM específico. O CycleCloud suporta os principais sistemas operativos Windows e Linux em nós HPC. Além disso, os utilizadores podem criar a sua própria imagem de VM e utilizá-lo no respetivo sistema HPC.

  • Infraestrutura como código

    Uma vez que tudo o que foi criado no CycleCloud é definido em modelos e scripts de configuração, os sistemas HPC implementados através do CycleCloud são repetíveis e portáteis. Isto fornece consistência aos operadores na implementação de sistemas HPC em diferentes ambientes: Sandbox, Desenvolvimento, Teste e Produção. Os operadores também podem implementar sistemas HPC idênticos para diferentes grupos empresariais ou equipas para separar as preocupações contabilísticas.

  • Cargas de trabalho pouco acopladas ou bem acopladas

    Os clusters HPC criados pelo CycleCloud foram concebidos não só para suportar tarefas paralelas pouco acopladas ou embaraçosas em que o dimensionamento (o tamanho do cluster) é a principal preocupação. Os clusters do CycleCloud também são concebidos com o backbone infiniband do Azure em mente, suportando cargas de trabalho fortemente acopladas ou baseadas em MPI em que a proximidade do nó e a latência de rede são fundamentais. Estes conceitos de escalamento horizontal e fortemente conjugados estão integrados nas integrações do agendador que o CycleCloud suporta.