Acessar sua conta do Lote usando a biblioteca de clientes do .NET
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:
- Criar conta de serviço do Lote (API de Gerenciamento do Lote).
- Criar uma conta de Armazenamento (API de Armazenamento).
- Criar um cliente de blob para gerenciar o processamento de arquivos (API de Armazenamento).
- Fazer upload dos arquivos a serem processados (API de Armazenamento).
- Criar um pool de nós de computação (API do Lote).
- Criar um trabalho para executar nesses nós (API do Lote).
- Adicionar uma tarefa ao trabalho a ser executado (API do Lote).
- Monitorar o andamento da tarefa (API do Lote).
- Baixar arquivos processados quando concluído (API de Armazenamento).
- 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)