Aceder à conta do Batch com a biblioteca de cliente do .NET

Concluído

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

Pretende automatizar o processo de converter ficheiros de vídeo MP4 em GIFs animados. Para fazer isso, você criará um aplicativo que pode carregar arquivos de vídeo para conversão, iniciar a conversão em paralelo em todos os arquivos carregados, monitorar o progresso e, finalmente, baixar os resultados.

Nesta unidade, iremos ver bibliotecas de cliente do Azure Batch que podemos utilizar para aceder a contas do Batch e de Armazenamento que criámos no exercício anterior.

Bibliotecas de cliente do Azure

Existem dois pacotes NuGet que terá de importar para a sua aplicação. O primeiro é a biblioteca de cliente do Azure Batch, Microsoft.Azure.Batch. Irá utilizar esta biblioteca para criar e eliminar Conjuntos do Azure Batch, criar e eliminar trabalhos de carga de trabalho, criar e eliminar tarefas e monitorizar tarefas em execução.

A próxima biblioteca que usaremos na solução é a biblioteca de cliente do Armazenamento do Azure, Microsoft.Azure.Storage.Blobque permite que você se conecte e gerencie arquivos em uma conta de Armazenamento do Azure. Irá utilizar esta biblioteca para gerir os ficheiros no contentor de armazenamento de blobs. O aplicativo verifica a pasta em busca de todos os vídeos carregados e dá ao trabalho acesso para escrever os vídeos convertidos da tarefa.

A biblioteca de Gerenciamento de Lote do Azure, Microsoft.Azure.Management.Batch, é uma terceira biblioteca que você não precisa para seu aplicativo, porque você criou manualmente as contas de Lote e Armazenamento.

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

Padrão de utilização normal

Usando as bibliotecas anteriores, uma abordagem típica para configurar um processo em lote é:

  1. Crie uma conta de Serviço de Lote (API de Gerenciamento de Lotes).
  2. Crie uma conta de armazenamento (API de armazenamento).
  3. Crie um cliente Blob para gerenciar o processamento de arquivos (API de armazenamento).
  4. Carregue arquivos para processar (API de armazenamento).
  5. Crie um pool de nós de computação (API em lote).
  6. Crie um trabalho para ser executado nesses nós (API em lote).
  7. Adicione uma tarefa ao trabalho a ser executado (API em lote).
  8. Monitore o progresso da tarefa (API em lote).
  9. Baixe os arquivos processados quando terminar (API de armazenamento).
  10. Exclua o contêiner de armazenamento de entrada, exclua o pool e exclua o trabalho (API em lote & API de armazenamento).

Conjuntos do Azure Batch

Uma funcionalidade avançada do Azure Batch é a forma como gere recursos de computação. Ao definir conjuntos de recursos, o Azure Batch tem a flexibilidade de ser definido para um determinado número de nós. Esta é uma boa opção se o tamanho do processamento estiver bem definido e houver um requisito para ter um custo fixo conhecido. A outra opção é permitir que o conjunto seja aumentado ou reduzido verticalmente com base numa fórmula definida por si. Essa abordagem pode levar em conta as flutuações na demanda e permitir que um aplicativo seja dimensionado para atender a essa demanda. Esta abordagem também tem a vantagem adicional de manter os custos tão baixos quanto possível.

Ao criar pools de lotes do Azure, especifique os seguintes atributos:

  • O número de nós de destino (limite predefinido de 100)
  • O sistema operativo e versão do nó (está disponível um intervalo de imagens do Windows e Linux)
  • Tipo de nó, dedicado ou de baixa prioridade (nós dedicados são mais caros, mas não serão antecipados; nós de baixa prioridade são mais baratos porque aproveitam a capacidade excedente em uma região, mas podem ter suas tarefas suspensas se os recursos forem necessários em outro lugar)
  • O desempenho do nó como CPU, memória e tamanho de armazenamento
  • Política de dimensionamento automático (o dimensionamento é controlado por uma fórmula especificada; por exemplo, com base na porcentagem de CPU em uso)
  • Política de agendamento de tarefa (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 arranque a serem efetuadas quando os nós são iniciados (são utilizadas para configurar o nó para conseguir executar as tarefas, tal como instalar aplicações necessárias)
  • Configuração de rede (opções de sub-rede e VNet)
  • Pacotes de aplicações (permitir que as aplicações sejam implementadas facilmente em cada nó num conjunto)