Aceder à conta do Batch com a biblioteca de cliente do .NET
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.Blob
que 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 é:
- Crie uma conta de Serviço de Lote (API de Gerenciamento de Lotes).
- Crie uma conta de armazenamento (API de armazenamento).
- Crie um cliente Blob para gerenciar o processamento de arquivos (API de armazenamento).
- Carregue arquivos para processar (API de armazenamento).
- Crie um pool de nós de computação (API em lote).
- Crie um trabalho para ser executado nesses nós (API em lote).
- Adicione uma tarefa ao trabalho a ser executado (API em lote).
- Monitore o progresso da tarefa (API em lote).
- Baixe os arquivos processados quando terminar (API de armazenamento).
- 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)