Acessar sua conta do Lote usando a biblioteca de clientes do .NET

Concluído

Na unidade anterior, você criou contas do Lote do Azure e do Armazenamento do Azure. Em seguida, você carregou o ffmpeg como um aplicativo para que os trabalhos do Lote possam usá-lo para suas tarefas. Vamos examinar nosso cenário mais uma vez.

Você gostaria de automatizar o processo de conversão de arquivos de vídeo MP4 em GIFs animados. Para fazer isso, você vai criar um aplicativo capaz de fazer upload de arquivos de vídeo para conversão, iniciar a conversão em paralelo de todos os arquivos carregados, monitorar o andamento e, por fim, baixar os resultados.

Nesta unidade, vamos examinar bibliotecas de clientes do Lote do Azure, que podemos usar para acessar as contas do Armazenamento e do Lote que criamos no exercício anterior.

Bibliotecas de clientes do Azure

Há dois pacotes NuGet que você precisará importar para seu aplicativo. A primeira é a biblioteca de clientes do Lote do Azure, Microsoft.Azure.Batch. Você usará essa biblioteca para criar e excluir pools do Lote do Azure, criar e excluir trabalhos da carga de trabalho, criar e excluir tarefas e monitorar tarefas em execução.

A próxima biblioteca que vamos usar na solução é a biblioteca de clientes do Armazenamento do Azure, Microsoft.Azure.Storage.Blob, que permite que você se conecte a arquivos em uma conta do Armazenamento do Azure e que os gerencie. Você usará essa biblioteca para gerenciar os arquivos no contêiner de Armazenamento de Blobs. O aplicativo verifica a pasta de todos os vídeos carregados e permite que o trabalho grave os vídeos convertidos pela tarefa.

A biblioteca de gerenciamento do Lote do Azure, Microsoft.Azure.Management.Batch, é uma terceira biblioteca que não é necessária para seu aplicativo, pois você criou manualmente as contas de Armazenamento e do Lote.

Vamos adicionar os pacotes NuGet necessários na próxima unidade com o comando dotnet add package.

Padrão de uso típico

Utilizando as bibliotecas mencionadas, uma abordagem comum para configurar um processo em lote inclui:

  1. Criar conta de serviço do Lote (API de Gerenciamento do Lote).
  2. Criar uma conta de Armazenamento (API de Armazenamento).
  3. Criar um cliente de blob para gerenciar o processamento de arquivos (API de Armazenamento).
  4. Fazer upload dos arquivos a serem processados (API de Armazenamento).
  5. Criar um pool de nós de computação (API do Lote).
  6. Criar um trabalho para executar nesses nós (API do Lote).
  7. Adicionar uma tarefa ao trabalho a ser executado (API do Lote).
  8. Monitorar o andamento da tarefa (API do Lote).
  9. Baixar arquivos processados quando concluído (API de Armazenamento).
  10. Excluir o contêiner de armazenamento de entrada, excluir o pool, excluir o trabalho (API do Lote e API de Armazenamento).

Pools do Lote do Azure

Um recurso poderoso do Lote do Azure é o modo como ele gerencia recursos de computação. Definindo pools de recursos, o Lote do Azure tem a flexibilidade de ser definido para um número específico de nós. Essa é uma boa opção se o tamanho do processamento for bem definido e houver a necessidade de ter um custo fixo conhecido. A outra opção é permitir que o pool escale ou reduza verticalmente automaticamente com base em uma fórmula definida por você. Essa abordagem se adaptar a flutuações de demanda e permitir que um aplicativo escale para atender a essa demanda. Essa abordagem também tem a vantagem de manter os custos o mais baixos possível.

Durante a criação de pools do Lote do Azure, você especifica os seguintes atributos:

  • O número de nós de destino (limite padrão de 100)
  • O sistema operacional e a versão do nó (há uma gama de imagens do Windows e do Linux disponíveis)
  • Tipo de nó dedicado ou de baixa prioridade (nós dedicados são mais caros, mas não sofrerão preempção; nós de baixa prioridade são mais baratos por usarem a capacidade excedente de uma região, mas poderão ter suas tarefas suspensas se os recursos forem necessários em outro lugar)
  • Desempenho do nó, como CPU, memória e tamanho do armazenamento
  • Política de escala automática (o dimensionamento é controlado por uma fórmula que você especifica; por exemplo, com base no percentual de CPU em uso)
  • Política de agendamento de tarefas (controlar o número máximo de tarefas que um nó pode executar em paralelo e escolher como as tarefas são distribuídas entre os nós)
  • Tarefas de inicialização a serem executadas quando os nós são inicializados (usado para configurar o nó para que ele possa executar as tarefas, tais como instalar os aplicativos necessários)
  • Configuração de rede (opções de sub-rede e de rede virtual)
  • Pacotes de aplicativos (permitem que os aplicativos sejam implantados facilmente em cada nó em um pool)