Nos verificamos a nosotros mismos: cómo implementar y cómo administrar 1C: flujo de documentos dentro de la compañía 1C

En 1C, utilizamos ampliamente nuestros propios desarrollos para organizar el trabajo de la empresa. En particular, "1C: Gestión de documentos 8" . Además de la gestión de documentos (como su nombre lo indica), también es un sistema ECM moderno (Enterprise Content Management - gestión de contenido corporativo) con una amplia gama de funcionalidades: correo, calendarios de trabajo de empleados, organización de acceso compartido a recursos (por ejemplo, reserva de salas de conferencias), contabilidad horario de trabajo, foro corporativo y mucho más.

En 1C, más de mil empleados usan documentos. La base de datos ya se ha vuelto impresionante (11 mil millones de registros), lo que significa que requiere un mantenimiento más completo y un equipo más potente.

Cómo describiremos el trabajo de nuestro sistema, qué dificultades enfrentamos para el servicio de la base de datos y cómo las resolvemos (usamos MS SQL Server como DBMS), lo describiremos en el artículo.

Para quienes leyeron por primera vez acerca de los productos 1C.
1C: la gestión de documentos es una solución de aplicación (configuración) implementada sobre la base de un marco para el desarrollo de aplicaciones comerciales - 1C: plataforma empresarial.


imagen


"1C: Document Management 8" (en forma abreviada - DO) le permite automatizar el trabajo con documentos en la empresa. Una de las principales herramientas para la interacción de los empleados es el correo electrónico. Además del correo, DO también resuelve otras tareas:

  • Seguimiento de tiempo
  • Contabilización de ausencias
  • Solicitudes de mensajería / transporte
  • Calendarios de empleados
  • Registro de correspondencia
  • Contactos de empleados (libreta de direcciones)
  • Foro corporativo
  • Reserva de habitación
  • Evento planeado
  • CRM
  • Trabajo colectivo con archivos (conservando versiones de archivo)
  • y etc.

Ingresamos a Document Management como un cliente ligero (aplicación ejecutable nativa) desde Windows, Linux, macOS, un cliente web (desde navegadores) y un cliente móvil , según la situación.

Y gracias a nuestro otro producto conectado a la Gestión de documentos: el Sistema de interacción- directamente en Document Management obtenemos la funcionalidad de mensajería: chats, llamadas de audio y video (incluidas llamadas grupales, que ahora se ha vuelto especialmente importante, incluso desde un cliente móvil), intercambio rápido de archivos más la capacidad de escribir bots de chat que simplifican el trabajo con el sistema. Otra ventaja de usar el Sistema de interacción (en comparación con otros mensajeros) es la capacidad de llevar a cabo discusiones contextuales vinculadas a objetos específicos de la Gestión de documentos: documentos, eventos, etc. Es decir, el Sistema de interacción se integra profundamente con la aplicación de destino y no actúa como un "botón separado".

El número de letras en nuestro DL ya ha excedido los 100 millones, y en general en el DBMS, más de 11 mil millones de registros. En total, el sistema usa casi 30 TB de almacenamiento: la base de datos es de 7.5 TB, los archivos para el trabajo colectivo están separados y ocupan otros 21 TB.

Si hablamos de números más específicos, entonces aquí está el número de letras y archivos en este momento:

  • Cartas salientes: 14,7 millones.
  • Cartas entrantes - 85.4 millones
  • Versiones de archivo: 70.8 millones
  • Documentos internos - 30,6 mil

En DO no solo hay correo y archivos. A continuación se muestran los números de otros objetos contables:

  • Reserva de sala de conferencias - 52126
  • Informes semanales - 153,940
  • Informes diarios - 628153
  • Aprobación de visa - 11,821
  • Documentos entrantes - 79 677
  • Documentos salientes - 28 357
  • Registros de eventos en los calendarios de trabajo de los usuarios: 168,228
  • Solicitudes de mensajería - 21 883
  • Contrapartes - 81 029
  • Registros de trabajo con contratistas - 45 632
  • – 41 795
  • – 10 243
  • – 6 320
  • – 245 980
  • – 26 282
  • – 891 095
  • - – 109 056. – , , , , .. , , , , . , , .

?


Estas cifras indican una cantidad impresionante de tareas, por lo que enfrentamos la necesidad de asignar equipos bastante productivos para las necesidades de las subsidiarias internas. Hasta la fecha, sus características son las siguientes: 38 núcleos, 240 GB de RAM, unidades de 26 TB. Le
imagen

damos la tabla de servidores: en el futuro planeamos aumentar la capacidad del equipo.

¿Qué pasa con la carga del servidor?


La actividad de la red nunca ha sido un problema para nosotros o nuestros clientes. Como regla general, el punto débil es el procesador y los discos, porque todos ya saben cómo lidiar con la falta de memoria. Aquí hay capturas de pantalla de nuestros servidores de Resource Monitor, que muestran que no tenemos una carga terrible, es muy modesto.

Por ejemplo, en la captura de pantalla a continuación, vemos un servidor SQL donde la CPU tiene una carga del 23%. Y este es un muy buen indicador (en comparación: si la carga se acerca al 70%, lo más probable es que los empleados observen desaceleraciones bastante significativas).

imagen

La segunda captura de pantalla muestra el servidor de aplicaciones en el que se ejecuta la plataforma 1C: Enterprise: solo sirve sesiones de usuario. Aquí la carga del procesador es ligeramente mayor: 38%, es suave y tranquila. Hay carga de disco, pero es aceptable.

imagen

La tercera captura de pantalla muestra otro servidor 1C: Enterprise (es el segundo, tenemos dos de ellos en el clúster). Solo el anterior sirve a los usuarios, y los robots trabajan en esto. Por ejemplo, reciben correo, documentos de ruta, intercambian datos, consideran derechos, etc. Todas estas actividades en segundo plano realizan aproximadamente 90-100 tareas en segundo plano. Y este servidor está muy ocupado, al 88%. Pero esto no afecta a las personas, e implementa toda la automatización que debe hacer Document Management.

imagen

¿Cuáles son las métricas para determinar el rendimiento?


Hemos incorporado a la BS un subsistema serio para medir indicadores de rendimiento y calcular varias métricas. Esto es necesario para comprender en el momento actual y en la perspectiva histórica qué está sucediendo en el sistema, qué está empeorando, qué está mejorando. Las herramientas de monitoreo (métricas y medidas de tiempo) se incluyen en el paquete estándar "1C: Gestión de documentos 8". Las métricas requieren ajustes en la implementación, pero el mecanismo en sí es típico.

Las métricas son mediciones de varios indicadores comerciales en ciertos momentos (por ejemplo, el tiempo promedio de entrega de correo en el momento de 10 minutos).

Una de las métricas muestra el número de usuarios activos en la base de datos. En promedio, hay 1000-1400 de ellos por día. El gráfico muestra que en el momento de la captura de pantalla había 2144 usuarios activos en la base de datos.

imagen

Hay más de 30 acciones de este tipo, la lista está debajo del corte.
Lista


La semana anterior a la última, nuestra actividad promedio de usuarios aumentó una vez y media (se muestra en rojo en el gráfico), esto se debe a la transición de la mayoría de los empleados al trabajo remoto (en relación con eventos conocidos). Además, el número de usuarios activos aumentó 3 veces (se muestra en azul en la pantalla), a medida que los empleados comenzaron a usar el móvil de manera activa: cada cliente móvil crea una conexión con el servidor. Ahora, en promedio, para cada uno de nuestros empleados, hay 2 conexiones al servidor.

imagen

Para nosotros, como para los administradores, esta es una señal de que debemos estar más atentos a los problemas de velocidad, para ver si ha empeorado. Y lo vemos de otras maneras. Por ejemplo, cómo cambia el tiempo de entrega del correo para el enrutamiento interno (la siguiente captura de pantalla muestra azul). Vemos que saltó hasta este año, y ahora es estable, para nosotros es un indicador de que todo está en orden con el sistema.

imagen

Otra métrica aplicada para nosotros es el tiempo de espera promedio para descargar cartas del servidor de correo (que se muestra en rojo en la captura de pantalla). En términos generales, ¿cuánto tiempo durará la carta en Internet antes de que llegue a nuestro empleado? La captura de pantalla muestra que esta vez tampoco ha cambiado de ninguna manera reciente. Hay arrebatos separados, pero no están asociados con demoras, sino con el hecho de que se pierde tiempo en los servidores de correo.

imagen

O, por ejemplo, otra métrica (que se muestra en azul en la captura de pantalla): actualizar letras en una carpeta. Abrir una carpeta de correo es una operación muy común, y debe hacerse rápidamente. Medimos qué tan rápido se está realizando. Este indicador se mide para cada cliente. Puede ver la imagen general de la empresa y la dinámica, por ejemplo, de un empleado individual. La captura de pantalla muestra que hasta este año la métrica estaba desequilibrada, luego hicimos una serie de mejoras y ahora no empeora, un cronograma casi uniforme.

imagen

Las métricas son básicamente una herramienta de administrador para monitorear el sistema, para responder rápidamente a cualquier cambio en el comportamiento del sistema. En una captura de pantalla: métricas de OD interno durante un año. El salto en los gráficos se debe al hecho de que se nos ha asignado la tarea de desarrollar filiales internas.

imagen

Aquí hay una lista de algunas métricas más (debajo del corte).
Métrica
  • ()
  • 10
  • :
  • ( )
  • ( )
  • ( )
  • ( )
  • ()
  • « »


Nuestro sistema realiza mediciones de más de 150 indicadores durante todo el día, pero no todos pueden ser monitoreados rápidamente. Pueden ser útiles más tarde, en una perspectiva histórica, y puede centrarse en lo más importante para los negocios.

En una de las implementaciones, por ejemplo, solo se seleccionaron 5 indicadores. El cliente se fijó el objetivo de hacer un conjunto mínimo de indicadores, pero al mismo tiempo cubrió los principales escenarios de trabajo. Sería injustificado incluir 150 indicadores en el acto de aceptación, porque incluso dentro de la empresa es difícil acordar qué indicadores se consideran aceptables. Y conocían estos 5 indicadores y ya los presentaron al sistema antes del inicio del proyecto de implementación, incluido en la documentación de la licitación: tiempo de apertura de la tarjeta no más de 3 segundos, tiempo de ejecución de la tarea con un archivo no más de 5 segundos, etc. En nuestras filiales, había métricas precisas que reflejaban muy claramente la solicitud inicial de los requisitos del cliente.

Y también tenemos un análisis de perfil de mediciones de rendimiento. Los indicadores de rendimiento son la fijación de la duración de cada operación que se realiza (escribir una carta a la base de datos, enviar una carta al servidor de correo, etc.). Es utilizado exclusivamente por especialistas técnicos. Tenemos muchos indicadores de rendimiento en nuestro programa. Ahora medimos aproximadamente 1.500 operaciones clave, que se desglosan por perfil.

imagen

Uno de los perfiles más importantes para nosotros es la "Lista de indicadores clave del correo desde el punto de vista de los consumidores". Este perfil incluye, por ejemplo, los siguientes indicadores:

  • Ejecución de comandos: Filtrar por etiqueta
  • Abrir un formulario: formulario de lista
  • Ejecución de comandos: seleccionar por carpeta
  • Mostrar letras en el área de lectura
  • Guardar una carta en tu carpeta favorita
  • Buscar cartas por detalles
  • Crear una carta

Si vemos que la métrica para algún indicador comercial se ha vuelto demasiado grande (por ejemplo, las cartas de un usuario específico comenzaron a llegar durante mucho tiempo), comenzamos a comprender, pasamos a medir el tiempo de las operaciones técnicas. Tenemos la operación técnica "Archivar cartas en el servidor de correo": vemos el exceso de tiempo para esta operación durante el último período. Esta operación, a su vez, se descompone en otras operaciones, por ejemplo, establecer una conexión con el servidor de correo. Vemos que, por alguna razón, de repente se hizo muy grande (tenemos todas las mediciones en un mes; podemos comparar esa semana pasada 10 milisegundos, y ahora 1000 milisegundos). Y entendemos que algo aquí está roto, tenemos que arreglarlo.

¿Cómo mantenemos una base de datos tan grande?


Nuestro DO interno es un ejemplo de un proyecto muy cargado que realmente funciona. Hablemos de las características técnicas de su base de datos.

¿Cuánto dura la reestructuración de grandes tablas de bases de datos?


El servidor SQL requiere mantenimiento periódico, limpiando las tablas. En el buen sentido, esto debe hacerse al menos una vez al día y para mesas muy demandadas, incluso con mayor frecuencia. Pero si la base es grande (y nuestro número de registros ya ha excedido los 11 mil millones), entonces no es fácil cuidarlo.

Hicimos la reestructuración de las mesas hace 6 años, pero luego comenzó a tomar tanto tiempo que ya no encajamos en los intervalos nocturnos. Y dado que estas operaciones cargan mucho el servidor SQL, no puede proporcionar servicios de calidad a otros usuarios.

Por lo tanto, ahora tenemos que aplicar varios trucos. Por ejemplo, no podemos realizar estos procedimientos en conjuntos de datos completos. Debe recurrir al procedimiento Actualizar muestra 500000 filas: esto lleva 14 minutos. No actualiza las estadísticas para todos los datos de la tabla, pero selecciona medio millón de filas y calcula las estadísticas que utiliza para toda la tabla. Esta es una suposición, pero nos vemos obligados a hacerlo, porque para una tabla en particular, la recopilación de estadísticas para todo el billón de registros será inaceptablemente larga.

imagen
También optimizamos otras operaciones de mantenimiento al hacerlas parciales.

El mantenimiento de un DBMS es generalmente una tarea difícil. En el caso de la interacción activa entre los empleados, la base de datos está creciendo rápidamente, cada vez es más difícil para los administradores mantenerla, actualizando estadísticas, desfragmentando e indexando. Aquí necesitamos aplicar diferentes estrategias, sabemos cómo hacerlo, tenemos experiencia, podemos compartirla.

¿Cómo se implementa el respaldo con tales volúmenes?


Se realiza una copia de seguridad completa del DBMS una vez al día por la noche, incremental, cada hora. Además, se crea un directorio de archivos todos los días, y es una parte de la copia de seguridad incremental del almacenamiento de archivos.

¿Cuánto dura una copia de seguridad completa?


En un disco duro, se realiza una copia de seguridad completa en tres horas, parcial, en una hora. Lleva más tiempo escribir en la cinta (un dispositivo especial que realiza una copia de seguridad en un casete especial almacenado fuera de la oficina; se realiza una copia enajenable en la cinta, que se guardará si, por ejemplo, el servidor se quema). La copia de seguridad se realiza exactamente en el mismo servidor, cuyos parámetros eran más altos: servidor SQL con una carga del procesador del 20%. En el momento de la copia de seguridad, por supuesto, el sistema empeora mucho, pero aún está operativo.

imagen

¿Hay deduplicación?


Hay deduplicación de archivos, lo ejecutamos nosotros mismos y pronto se incluirá en la nueva versión de Document Management. También corremos en el mecanismo de deduplicación de contraparte. No hay deduplicación de registros en el nivel DBMS, ya que esto no es necesario. La plataforma 1C: Enterprise almacena objetos en el DBMS, y solo la plataforma puede ser responsable de su coherencia.

¿Hay nodos de solo lectura?


No hay nodos para leer (nodos de sistema dedicados que sirven a aquellos que necesitan recibir datos de lectura). DO no es un sistema de contabilidad para poner en un nodo de BI separado, pero hay un nodo separado para el departamento de desarrollo, que se intercambia con mensajes en formato JSON, y los tiempos de replicación típicos son unidades y decenas de segundos. El nodo aún es pequeño, tiene alrededor de 800 millones de entradas, pero está creciendo rápidamente.

¿Y los mensajes marcados para eliminación no se eliminan en absoluto?


Aún no. No tenemos tareas para facilitar la base. Hubo varios casos bastante serios en los que tuve que recurrir a las letras marcadas para su eliminación, incluido el 2009. Por lo tanto, por ahora, decidimos mantener todo. Pero cuando el costo de esto se vuelva injustificado, pensaremos en la eliminación. Pero, si necesita eliminar una letra separada de la base de datos con los extremos para que no haya rastros, esto se puede hacer mediante una solicitud especial.

¿Por qué almacenarlo? ¿Existen estadísticas sobre los accesos a documentos antiguos?


No hay estadísticas Más precisamente, tiene la forma de un registro de usuario, pero no se almacena por mucho tiempo. Los registros de más de un año se eliminan del protocolo.

Hubo situaciones en las que fue necesario elevar la correspondencia anterior de cinco años o incluso diez años atrás. Y esto siempre se ha hecho no por curiosidad ociosa, sino por tomar decisiones comerciales complejas. Hubo un caso en el que sin el historial de correspondencia se tomaría una decisión comercial incorrecta.

¿Cómo es el examen del valor y la destrucción de los documentos según el período de almacenamiento?


Para documentos en papel, esto se hace de la manera tradicional habitual, como todos los demás. En el caso de la electrónica, no lo hacemos, dejemos que se almacene. La sentada está aquí. Hay un beneficio Todo está bien.

¿Cuáles son las perspectivas de desarrollo?


Ahora nuestro DO resuelve alrededor de 30 problemas internos, algunos de los cuales enumeramos al comienzo del artículo. También DO se utiliza para preparar conferencias que realizamos dos veces al año para nuestros socios: todo el programa, todos los informes, todas las secciones paralelas, salas: todo esto se compone en DO y luego se descarga de él y se hace un programa impreso.

En el camino para OD, hay varias tareas más, además de las que ya resuelve. Hay tareas para toda la empresa, pero hay tareas únicas y raras que solo necesita una unidad en particular. Es necesario ayudarlos y, por lo tanto, expandir la "geografía" del uso del sistema dentro de 1C: para ampliar el alcance, resolver las tareas de todos los departamentos. Esta sería la mejor prueba de rendimiento y fiabilidad. Me gustaría ver que el sistema funcionara con billones de registros, petabytes de información.

All Articles