Verificamos a nós mesmos: como implantar e como administrar 1C: Fluxo de documentos dentro da empresa 1C

Na 1C, usamos amplamente nossos próprios desenvolvimentos para organizar o trabalho da empresa. Em particular, “1C: Gerenciamento de documentos 8” . Além de gerenciamento de documentos (como o nome indica), é também um moderno ECM- sistema (Enterprise Content Management - gerenciamento de conteúdo corporativo) com uma vasta gama de funcionalidades - mail, calendários de trabalho do empregado, organização do acesso compartilhado a recursos (por exemplo, reserva de salas de conferência), representando horário de trabalho, fórum corporativo e muito mais.

Na 1C, mais de mil funcionários usam documentos. O banco de dados já se tornou impressionante (11 bilhões de registros), o que significa que requer manutenção mais completa e equipamentos mais potentes.

Como o trabalho do nosso sistema é organizado, quais dificuldades enfrentamos no atendimento ao banco de dados e como os solucionamos (usamos o MS SQL Server como o DBMS), descreveremos neste artigo.

Para quem leu primeiro sobre os produtos 1C.
1C: O gerenciamento de documentos é uma solução (configuração) de aplicativos implementada com base em uma estrutura para o desenvolvimento de aplicativos de negócios - 1C: plataforma corporativa.


imagem


“1C: Gerenciamento de documentos 8” (em formato abreviado - DO) permite automatizar o trabalho com documentos na empresa. Uma das principais ferramentas para a interação dos funcionários é o email. Além do correio, o DO também resolve outras tarefas:

  • Rastreamento de tempo
  • Contabilização de ausências
  • Pedidos de correio / transporte
  • Calendários de funcionários
  • Registro de correspondência
  • Contatos dos funcionários (Catálogo de endereços)
  • Fórum corporativo
  • Reserva de quarto
  • Planejamento de eventos
  • CRM
  • Trabalho coletivo com arquivos (com preservação de versões de arquivos)
  • e etc.

Entramos no Document Management como um thin client (aplicativo executável nativo) do Windows, Linux, macOS, um web client (de navegadores) e um mobile client - dependendo da situação.

E, graças ao nosso outro produto conectado ao Gerenciamento de documentos - o Sistema de interação- diretamente no Gerenciamento de documentos, obtemos a funcionalidade do messenger - bate-papos, chamadas de áudio e vídeo (incluindo chamadas de grupo, que agora se tornaram especialmente importantes, inclusive de um cliente móvel), compartilhamento rápido de arquivos e a capacidade de escrever bots de bate-papo que simplificam o trabalho com o sistema. Outra vantagem do uso do Sistema de Interação (em comparação com outros mensageiros) é a capacidade de conduzir discussões contextuais vinculadas a objetos específicos do Gerenciamento de Documentos - documentos, eventos etc. Ou seja, o Sistema de Interação se integra profundamente ao aplicativo de destino e não atua como um "botão separado".

O número de letras em nosso DL já ultrapassou 100 milhões e, em geral, no DBMS - mais de 11 bilhões de registros. No total, o sistema utiliza quase 30 TB de armazenamento: o banco de dados tem 7,5 TB, os arquivos para trabalho coletivo são separados e ocupam outros 21 TB.

Se falamos de números mais específicos, aqui está o número de letras e arquivos no momento:

  • Cartas enviadas - 14,7 milhões.
  • Cartas recebidas - 85,4 milhões
  • Versões de arquivo - 70,8 milhões
  • Documentos internos - 30,6 mil

No DO, não há apenas emails e arquivos. Abaixo estão os números de outros objetos contábeis:

  • Reserva de sala de conferência - 52 126
  • Relatórios semanais - 153.940
  • Relatórios diários - 628 153
  • Aprovação de visto - 11.821
  • Documentos recebidos - 79 677
  • Documentos enviados - 28 357
  • Registros de eventos nos calendários de trabalho dos usuários - 168.228
  • Pedidos de correio - 21 883
  • Contrapartes - 81 029
  • Registos dos trabalhos com empreiteiros - 45 632
  • – 41 795
  • – 10 243
  • – 6 320
  • – 245 980
  • – 26 282
  • – 891 095
  • - – 109 056. – , , , , .. , , , , . , , .

?


Esses números indicam uma quantidade impressionante de tarefas; portanto, enfrentamos a necessidade de alocar equipamentos bastante produtivos para as necessidades das subsidiárias internas. Até o momento, suas características são as seguintes: 38 núcleos, 240 GB de RAM, unidades de 26 TB. Damos
imagem

a tabela de servidores: No futuro, planejamos aumentar a capacidade do equipamento.

E o carregamento do servidor?


A atividade de rede nunca foi um problema para nós ou nossos clientes. Como regra, o ponto fraco é o processador e os discos, porque todo mundo já sabe como lidar com a falta de memória. Aqui estão as capturas de tela de nossos servidores do Resource Monitor, que mostram que não temos carga terrível, é muito modesto.

Por exemplo, na captura de tela abaixo, vemos um servidor SQL em que a CPU está carregada em 23%. E este é um indicador muito bom (para comparação: se a carga se aproximar de 70%, provavelmente os funcionários observarão desacelerações bastante significativas).

imagem

A segunda captura de tela mostra o servidor de aplicativos no qual a plataforma 1C: Enterprise é executada - ela serve apenas sessões do usuário. Aqui a carga do processador é um pouco maior - 38%, é suave e calma. Há carregamento de disco, mas é aceitável.

imagem

A terceira captura de tela mostra outro servidor 1C: Enterprise (é o segundo, temos dois deles no cluster). Somente o anterior atende aos usuários, e os robôs trabalham nisso. Por exemplo, eles recebem correio, encaminham documentos, trocam dados, consideram direitos etc. Todas essas atividades em segundo plano executam aproximadamente 90-100 tarefas em segundo plano. E este servidor está muito ocupado - com 88%. Mas isso não afeta as pessoas e implementa apenas toda a automação que o Gerenciamento de Documentos deve fazer.

imagem

Quais são as métricas para determinar o desempenho?


Criamos no BS um subsistema sério para medir indicadores de desempenho e calcular várias métricas. Isso é necessário para entender no momento atual e na perspectiva histórica o que está acontecendo no sistema, o que está piorando, o que está melhorando. As ferramentas de monitoramento - métricas e medidas de tempo - estão incluídas no pacote padrão "1C: Gerenciamento de documentos 8". As métricas requerem ajuste na implementação, mas o mecanismo em si é típico.

Métricas são medições de vários indicadores de negócios em determinados momentos (por exemplo, tempo médio de entrega de correspondência no momento de 10 minutos).

Uma das métricas mostra o número de usuários ativos no banco de dados. Em média, existem 1000-1400 deles por dia. O gráfico mostra que no momento da captura de tela havia 2144 usuários ativos no banco de dados.

imagem

Existem mais de 30 ações desse tipo, a lista está sob o corte.
Lista


Na semana anterior, nossa atividade média do usuário aumentou uma vez e meia (o gráfico mostra em vermelho) - isso ocorre devido à transição da maioria dos funcionários para o trabalho remoto (em conexão com eventos conhecidos). Além disso, o número de usuários ativos aumentou três vezes (mostrado em azul na tela), conforme os funcionários começaram a usar ativamente o celular: cada cliente móvel cria uma conexão com o servidor. Agora, em média, para cada um de nossos funcionários, existem 2 conexões com o servidor.

imagem

Para nós, assim como para os administradores, é um sinal de que precisamos estar mais atentos às questões de velocidade, para ver se piorou. E olhamos para isso de outras maneiras. Por exemplo, como o tempo de entrega do correio para o roteamento interno é alterado (a captura de tela abaixo mostra azul). Vemos que ele saltou até este ano e agora é estável - para nós é um indicador de que tudo está em ordem com o sistema.

imagem

Outra métrica aplicada para nós é o tempo médio de espera para baixar cartas do servidor de correio (mostrado em vermelho na captura de tela). Grosso modo, quanto tempo a carta permanecerá na Internet antes de chegar ao nosso funcionário. A captura de tela mostra que desta vez também não mudou de maneira recente. Existem explosões separadas - mas elas não estão associadas a atrasos, mas ao fato de que o tempo se perde nos servidores de correio.

imagem

Ou, por exemplo, outra métrica (mostrada em azul na captura de tela) - atualizando letras em uma pasta. Abrir uma pasta de correio é uma operação muito comum e precisa ser feita rapidamente. Medimos o quão rápido ele está sendo executado. Este indicador é medido para cada cliente. Você pode ver a imagem geral da empresa e a dinâmica, por exemplo, de um funcionário individual. A captura de tela mostra que até este ano a métrica estava desequilibrada, fizemos várias melhorias e agora não piora - um cronograma quase uniforme.

imagem

As métricas são basicamente uma ferramenta do administrador para monitorar o sistema, para responder rapidamente a qualquer alteração no comportamento do sistema. Em uma captura de tela - métricas de OD interno por um ano. O salto nos gráficos se deve ao fato de termos sido incumbidos de desenvolver subsidiárias internas.

imagem

Aqui está uma lista de mais algumas métricas (abaixo do corte).
Métricas
  • ()
  • 10
  • :
  • ( )
  • ( )
  • ( )
  • ( )
  • ()
  • « »


Nosso sistema faz medições de mais de 150 indicadores o tempo todo, mas nem todos podem ser monitorados rapidamente. Eles podem ser úteis mais tarde, em alguma perspectiva histórica, e você pode se concentrar nos mais importantes para os negócios.

Em uma das implementações, por exemplo, apenas 5 indicadores foram selecionados. O cliente estabeleceu a meta de criar um conjunto mínimo de indicadores, mas ao mesmo tempo para cobrir os principais cenários de trabalho. Seria injustificado incluir 150 indicadores no ato de aceitação, porque mesmo dentro da empresa é difícil concordar sobre quais indicadores são considerados aceitáveis. E eles conheciam esses 5 indicadores e já os apresentavam ao sistema antes do início do projeto de implementação, inclusive na documentação do concurso: tempo de abertura do cartão não mais que 3 segundos, tempo de execução da tarefa com o arquivo não mais que 5 segundos, etc. Em nossas subsidiárias, havia precisamente métricas que refletiam claramente a solicitação inicial dos requisitos do cliente.

E também temos uma análise de perfil das medições de desempenho. Indicadores de desempenho são a fixação da duração de cada operação executada (escrevendo uma carta no banco de dados, enviando uma carta ao servidor de correio etc.). É utilizado exclusivamente por especialistas técnicos. Temos muitos indicadores de desempenho em nosso programa. Agora, medimos aproximadamente 1.500 operações-chave, divididas por perfil.

imagem

Um dos perfis mais importantes para nós é a "Lista dos principais indicadores de correio do ponto de vista dos consumidores". Esse perfil inclui, por exemplo, os seguintes indicadores:

  • Execução do comando: Filtrar por Tag
  • Abrindo um formulário: Formulário de lista
  • Execução de comando: selecione por pasta
  • Exibir letras na área de leitura
  • Salvando uma carta na sua pasta favorita
  • Pesquise letras por detalhes
  • Crie uma carta

Se percebermos que a métrica para algum indicador de negócios se tornou muito grande (por exemplo, cartas de um usuário específico começaram a chegar por muito tempo), começamos a entender, passamos a medir o tempo das operações técnicas. Temos a operação técnica “Arquivando cartas no servidor de correio” - vemos o excesso de tempo para esta operação no último período. Essa operação, por sua vez, se decompõe em outras operações - por exemplo, estabelecendo uma conexão com o servidor de correio. Vimos que, por algum motivo, subitamente se tornou muito grande (temos todas as medições em um mês - podemos comparar a última semana 10 milissegundos e agora 1000 milissegundos). E entendemos que algo aqui está quebrado - precisamos corrigi-lo.

Como mantemos um banco de dados tão grande?


Nosso DO interno é um exemplo de um projeto realmente carregado e altamente carregado. Vamos falar sobre os recursos técnicos de seu banco de dados.

Quanto tempo dura a reestruturação de grandes tabelas de banco de dados?


O servidor SQL requer manutenção periódica, limpando as tabelas. De uma maneira boa, isso deve ser feito pelo menos uma vez por dia, e para tabelas altamente exigidas - com mais frequência. Mas se a base é grande (e nosso número de registros já ultrapassou 11 bilhões), não é fácil cuidar disso.

Fizemos a reestruturação das mesas há 6 anos, mas depois demorou tanto tempo que não nos encaixamos mais nos intervalos noturnos. E como essas operações carregam muito o servidor SQL, não podem fornecer serviços de qualidade a outros usuários.

Portanto, agora temos que aplicar vários truques. Por exemplo, não podemos executar esses procedimentos em conjuntos de dados completos. Você precisa recorrer ao procedimento Atualizar amostra 500000 linhas - isso leva 14 minutos. Ele não atualiza as estatísticas de todos os dados da tabela, mas seleciona meio milhão de linhas e calcula as estatísticas a partir delas que são usadas para toda a tabela. Essa é uma suposição, mas somos forçados a segui-la, porque para uma tabela específica a coleção de estatísticas para todo o bilhão de registros será inaceitavelmente longa.

imagem
Também otimizamos outras operações de manutenção, tornando-as parciais.

A manutenção de um DBMS geralmente é uma tarefa difícil. No caso de interação ativa entre funcionários, o banco de dados está crescendo rapidamente, tornando-se cada vez mais difícil para os administradores mantê-lo - atualizando estatísticas, desfragmentando e indexando. Aqui precisamos aplicar estratégias diferentes, sabemos bem como fazer isso, temos experiência, podemos compartilhá-lo.

Como o backup é implementado com esses volumes?


Um backup completo do DBMS é realizado uma vez por dia à noite, incremental - a cada hora. Além disso, um diretório de arquivos é criado todos os dias e é uma parte do backup incremental do armazenamento de arquivos.

Quanto tempo leva um backup completo?


Em um disco rígido, um backup completo é realizado em três horas, parcial - em uma hora. Leva mais tempo para gravar na fita (um dispositivo especial que faz backup em um cassete especial armazenado fora do escritório; uma cópia alienável é feita na fita, que será salva se, por exemplo, o servidor queimar). O backup é feito exatamente no mesmo servidor, cujos parâmetros eram mais altos - servidor SQL com 20% de carga do processador. No momento do backup, é claro, o sistema fica muito pior, mas ainda está operacional.

imagem

Existe desduplicação?


desduplicação de arquivo, executamos por conta própria e em breve ela será incluída na nova versão do Document Management. Também executamos o mecanismo de deduplicação da contraparte. Não há deduplicação de registros no nível do DBMS, pois isso não é necessário. A plataforma 1C: Enterprise armazena objetos no DBMS e somente a plataforma pode ser responsável por sua consistência.

Existem nós somente leitura?


Não há nós para leitura (nós do sistema dedicados que atendem àqueles que precisam receber dados de leitura). O DO não é um sistema de contabilidade para colocar em um nó de BI separado, mas há um nó separado para o departamento de desenvolvimento, que é trocado por mensagens no formato JSON, e os tempos de replicação típicos são unidades e dezenas de segundos. O nó ainda é pequeno, possui cerca de 800 milhões de entradas, mas está crescendo rapidamente.

E as mensagens marcadas para exclusão não são excluídas?


Ainda não. Não temos tarefas para facilitar a base. Houve vários casos bastante graves em que tive que recorrer a cartas marcadas para exclusão, incluindo 2009. Portanto, por enquanto, decidimos manter tudo. Mas quando o custo disso se tornar injustificado, pensaremos na remoção. Porém, se você precisar remover uma carta separada do banco de dados com as extremidades para que não haja rastreios, isso poderá ser feito mediante solicitação especial.

Por que guardar? Existem estatísticas sobre acessos a documentos antigos?


Não há estatísticas. Mais precisamente, é na forma de um log de usuário, mas não é armazenado por muito tempo. Os registros com mais de um ano são excluídos do protocolo.

Houve situações em que foi necessário levantar a antiga correspondência de cinco ou mesmo dez anos atrás. E isso sempre foi feito não por curiosidade ociosa, mas por tomar decisões comerciais complexas. Houve um caso em que, sem o histórico de correspondência, seria tomada a decisão comercial errada.

Como é o exame do valor e destruição dos documentos de acordo com o período de armazenamento?


Para documentos em papel, isso é feito da maneira tradicional usual, como todos os outros. Para eletrônicos, não fazemos - deixemos que seja armazenado. O sit está aqui. Há um benefício. Tudo está bem.

Quais são as perspectivas de desenvolvimento?


Agora, nosso DO resolve cerca de 30 problemas internos, alguns dos quais listamos no início do artigo. Também o DO é usado para preparar conferências que realizamos duas vezes por ano para nossos parceiros: todo o programa, todos os relatórios, todas as seções paralelas, salas - tudo isso é feito no DO e, em seguida, é baixado dele e é feito um programa impresso.

No caminho para o DO, existem várias outras tarefas, além daquelas que ele já resolve. Existem tarefas para toda a empresa, mas existem tarefas únicas e raras, necessárias apenas por qualquer unidade específica. É necessário ajudá-los e, portanto, expandir a "geografia" do uso do sistema dentro de 1C - para expandir o escopo, resolver as tarefas de todos os departamentos. Este seria o melhor teste para desempenho e confiabilidade. Eu gostaria de ver o sistema funcionar em trilhões de registros, petabytes de informação.

All Articles