Como compreender o particionamento do repositório

Um repositório é um dos principais componentes que permitem gerenciar seu Automation Workspace (automações e arquivos). O particionamento ajuda você a dimensionar seus repositórios e otimizar o desempenho das operações relacionadas ao repositório, como checkin e checkout.

Nota: O recurso de particionamento de repositório requer a licença Enterprise Platform. Para mais informações sobre a versão compatível com esse recurso, consulte Enterprise Platform.

Visão geral

O repositório do Automation 360 é um único repositório Git em que todos os bots, formulários, processos e arquivos de dependência são armazenados. Como o repositório é baseado em Git, alguns recursos de controle de versões prontas para uso estão disponíveis, como checkin, checkout, histórico de versão, reversão e comparação de versões. Portanto, a integração com um Git remoto externo não é um requisito no Automation 360.

Todos os arquivos no repositório Git no Automation 360 são armazenados para controle de versões. Durante um período, o repositório Git pode ficar muito grande devido ao número de arquivos, tamanho dos arquivos, commits do Git e assim por diante. Isso pode gerar latência na execução das ações do repositório.

Com o particionamento do repositório, você pode dividir a pasta do repositório do Automation 360 em repositórios Git separados. Você pode particionar o repositório público de grande porte na pasta de nível raiz em múltiplos repositórios Git em determinados níveis de pasta, limitando assim quaisquer problemas de desempenho nas partições do repositório.

Nota: Um administrador da Control Room ou usuários com permissão para Particionar repositório podem usar o recurso de particionamento de repositório.

Benefícios

Alguns dos benefícios de particionar seus repositórios são:

Operações mais rápidas devido ao checkin e checkout rápidos
Conforme as pastas são particionadas, cada pasta particionada possui um número comparativamente menor de atividades de checkin (commits). Como resultado de commits menores, as operações de checkin e checkout (incluindo checkin e checkout simultâneos) são mais rápidas.
Separação lógica de pastas no espaço Git
A criação de múltiplos repositórios no Git reduz o risco de um único ponto de falha. Os problemas em um repositório não impactam negativamente outros repositórios ou automações contidas neles.

Recomendações

Em um cenário típico de produção, pastas correspondentes a vários departamentos são criadas na pasta Bots. Com base nos processos ou projetos de negócios específicos (vários processos de negócios), subpastas são criadas nas pastas do departamento. Também é comum que os clientes tenham bibliotecas compartilhadas que podem ser criadas em diferentes níveis, que são ainda mais compartilhadas em outros processos.

Considere um cenário em que todos os arquivos passam por checkin na mesma partição (repositório git) por várias automações ou desenvolvedores cidadãos ao mesmo tempo. Isso pode afetar a velocidade de processamento de dados e causar um atraso considerável. Para garantir que o desempenho não seja afetado no longo prazo, revise a abordagem recomendada abaixo:

Abordagem operacional
É recomendável que você crie uma partição por equipe. Uma equipe é composta por um grupo de pessoas que trabalha em um conjunto semelhante de processos de negócios. Limite para, no máximo, 50 o número de desenvolvedores em cada conjunto para obter o desempenho ideal de cada equipe. Se houver mais desenvolvedores, você pode dividi-los em partições para escalabilidade.
Para qualquer partição que você realizar, um usuário que está tentando fazer checkin ou importar automações ou arquivos para essa pasta recebe um alerta de que a partição está em andamento.

Quando o particionamento estiver em andamento, os usuários não podem realizar checkin, importar, fazer checkin em massa e excluir pastas ou subpastas particionadas. Mesmo que um usuário tente fazer checkin de uma automação durante esse período, é exibido um alerta sugerindo que ele aguarde. Então, o usuário pode continuar trabalhando no espaço de trabalho privado sem problemas e o trabalho nunca é bloqueado. Além disso, a restauração do Git, as configurações do Git e as atualizações de pacotes em massa são restritas de forma universal.

Testes em repositórios com tamanho de 20 GB mostraram que a operação pode levar até 1,5 hora. No entanto, esse tempo pode variar dependendo do desempenho do armazenamento conectado à rede (NAS). O custo operacional é muito baixo e você pode fazer isso ao longo do tempo.

Por exemplo, você pode executar de 4 a 6 partições no final do dia útil quando há menos usuários ou Desenvolvedores cidadãos. Isso permite que você execute o processo de partição sem afetar outros usuários corporativos.

Determine as pastas a serem particionadas
Revise as seguintes recomendações para o particionamento de pastas:
  • Execute a ferramenta RepositoryFolderSizeReport.exe no diretório de scripts em um dos nós da Control Room usando o seguinte comando:
    RepositoryFolderSizeReport.exe --root "Z:\Server Files\repository\16933f12-fdee-4a7f-8e76-a9bf127918c6\0\Automation Anywhere\Bots"
  • Substitua o script acima pelo ID de locatário correto do seu ambiente.

    Por exemplo, 16933f12-fdee-4a7f-8e76-a9bf127918c6.

  • Use Z:\Arquivos de servidor\repositório para revisar o drive NAS.
  • Crie o relatório folder_sizes.csv com caminhos de pasta e seus respectivos tamanhos em MB.
    Isso permite que você planeje o particionamento de suas pastas.
    Nota: O Git recomenda que você restrinja o tamanho do repositório para menos de 2 GB para um desempenho ideal.
  • Este utilitário fornecerá o tamanho de cada pasta, o que ajudará você a planejar a partição da pasta.
Configurações de tempo-limite
O particionamento do repositório inicia um programa externo para particionar a pasta. Se este programa externo não fornecer um resultado em 12 horas (padrão), ele será encerrado e o usuário poderá reiniciar o processo de particionamento. Se o tempo-limite de 12 horas for muito longo, você pode alterá-lo para 2 horas modificando o arquivo de propriedades localizado em <CR_Folder>\\config\\repository.properties.

Atualize a propriedade repository.partition.read.line.timeout definindo o valor em segundos. Por exemplo, para um tempo-limite de 2 horas, defina o valor como 7200.

Reinicie o kernel após todas as alterações.

Monitoramento do particionamento do repositório
  • Monitore o progresso da partição nos arquivos de log usando o script PartitionMonitor.
  • Execute o script PartitionMonitor.ps1 em cada nó CR.

    A solicitação de particionamento é processada em um dos nós por padrão. Portanto, os resultados do progresso são visíveis apenas naquele nó específico.

  • Abra o Windows PowerShell e navegue até o diretório de scripts (C:\scripts). Execute o seguinte comando:
    .\PartitionMonitor.ps1 -sourceDirectory "C:\ProgramData\AutomationAnywhere\Logs" -outputFile out.log