Nous vérifions nous-mêmes: comment déployer et administrer 1C: Flux de documents au sein de l'entreprise 1C

Chez 1C, nous utilisons largement nos propres développements pour organiser le travail de l'entreprise. En particulier, «1C: Gestion des documents 8» . En plus de la gestion des documents (comme son nom l'indique), il s'agit également d'un système ECM moderne (Enterprise Content Management - gestion de contenu d'entreprise) avec un large éventail de fonctionnalités - courrier, calendriers de travail des employés, organisation de l'accès partagé aux ressources (par exemple, réservation de salles de conférence), comptabilité heures de travail, forum d'entreprise et bien plus encore.

Chez 1C, plus d'un millier d'employés utilisent des documents. La base de données est déjà devenue impressionnante (11 milliards d'enregistrements), ce qui signifie qu'elle nécessite une maintenance plus approfondie et un équipement plus puissant.

Comment le travail de notre système est organisé, quelles difficultés nous rencontrons dans l'entretien de la base de données et comment nous les résolvons (nous utilisons MS SQL Server comme SGBD), nous décrirons dans l'article.

Pour ceux qui ont lu pour la première fois les produits 1C.
1C: La gestion de documents est une solution applicative (configuration) mise en œuvre sur la base d'un framework de développement d'applications métiers - 1C: Plateforme d'entreprise.


image


«1C: Document Management 8» (sous forme abrégée - DO) vous permet d'automatiser le travail avec les documents dans l'entreprise. L'un des principaux outils d'interaction avec les employés est le courrier électronique. En plus du courrier, DO résout également d'autres tâches:

  • Suivi du temps
  • Comptabilisation des absences
  • Demandes de coursiers / transport
  • Calendriers des employés
  • Enregistrement de la correspondance
  • Contacts avec les employés (carnet d'adresses)
  • Forum d'entreprise
  • Reservation de chambre
  • Planification d'événements
  • CRM
  • Travail collectif avec des fichiers (avec conservation des versions de fichiers)
  • et etc.

Dans Document Management, nous entrons le client léger (application exécutable native) à partir de Windows, Linux, macOS, le client Web (à partir des navigateurs) et le client mobile - selon la situation.

Et grâce à notre autre produit connecté à la gestion des documents - le système d'interaction- directement dans la gestion des documents, nous obtenons la fonctionnalité de messagerie - chats, appels audio et vidéo (y compris les appels de groupe, qui est maintenant devenu particulièrement important, y compris à partir d'un client mobile), le partage rapide de fichiers ainsi que la possibilité d'écrire des robots de chat qui simplifient le travail avec le système. Un autre avantage de l'utilisation du système d'interaction (par rapport à d'autres messagers) est la possibilité de mener des discussions contextuelles liées à des objets spécifiques de la gestion de documents - documents, événements, etc. Autrement dit, le système d'interaction s'intègre profondément avec l'application cible et n'agit pas comme un «bouton séparé».

Le nombre de lettres dans notre DL a déjà dépassé 100 millions, et en général dans le SGBD - plus de 11 milliards d'enregistrements. Au total, le système utilise près de 30 To de stockage: la base de données est de 7,5 To, les fichiers pour le travail collectif sont séparés et occupent encore 21 To.

Si nous parlons de chiffres plus spécifiques, voici le nombre de lettres et de fichiers en ce moment:

  • Lettres sortantes - 14,7 millions.
  • Lettres entrantes - 85,4 millions
  • Versions de fichiers - 70,8 millions
  • Documents internes - 30,6 milliers

Dans DO, il n'y a pas que du courrier et des fichiers. Voici les nombres d'autres objets comptables:

  • Réservation de salle de conférence - 52 126
  • Rapports hebdomadaires - 153940
  • Rapports quotidiens - 628 153
  • Approbation de visa - 11,821
  • Documents entrants - 79 677
  • Documents sortants - 28 357
  • Enregistrements d'événements dans les calendriers de travail des utilisateurs - 168 228
  • Demandes de coursiers - 21 883
  • Contreparties - 82029
  • Dossiers de travail avec les entrepreneurs - 45 632
  • – 41 795
  • – 10 243
  • – 6 320
  • – 245 980
  • – 26 282
  • – 891 095
  • - – 109 056. – , , , , .. , , , , . , , .

?


Ces chiffres indiquent une quantité impressionnante de tâches, nous avons donc été confrontés à la nécessité d'allouer un équipement assez productif aux besoins des filiales internes. A ce jour, ses caractéristiques sont les suivantes: 38 cœurs, 240 Go de RAM, 26 To de disques. Nous
image

donnons la table des serveurs: à l'avenir, nous prévoyons d'augmenter la capacité de l'équipement.

Qu'en est-il du chargement du serveur?


L'activité réseau n'a jamais été un problème pour nous ou nos clients. En règle générale, le point faible est le processeur et les disques, car tout le monde sait déjà comment faire face à un manque de mémoire. Voici des captures d'écran de nos serveurs de Resource Monitor, qui montrent que nous n'avons pas de charge terrible, c'est très modeste.

Par exemple, dans la capture d'écran ci-dessous, nous voyons un serveur SQL où le CPU est chargé à 23%. Et c'est un très bon indicateur (à titre de comparaison: si la charge approche 70%, alors, très probablement, les employés observeront des ralentissements assez importants).

image

La deuxième capture d'écran montre le serveur d'applications sur lequel la plate-forme 1C: Enterprise s'exécute - elle ne sert que les sessions utilisateur. Ici, la charge du processeur est légèrement plus élevée - 38%, elle est lisse et calme. Il y a un chargement de disque, mais il est acceptable.

image

La troisième capture d'écran montre un autre serveur 1C: Enterprise (c'est le deuxième, nous en avons deux dans le cluster). Seul le précédent sert les utilisateurs, et les robots y travaillent. Par exemple, ils reçoivent du courrier, acheminent des documents, échangent des données, considèrent les droits, etc. Toutes ces activités d'arrière-plan effectuent environ 90 à 100 tâches d'arrière-plan. Et ce serveur est très occupé - à 88%. Mais cela n'affecte pas les gens, et cela implémente juste toute l'automatisation que la gestion de documents devrait faire.

image

Quelles sont les mesures pour déterminer les performances?


Nous avons intégré au BS un sous-système sérieux pour mesurer les indicateurs de performance et calculer diverses métriques. Cela est nécessaire pour comprendre à l'heure actuelle et dans la perspective historique ce qui se passe dans le système, ce qui empire, ce qui s'améliore. Des outils de surveillance - métriques et mesures du temps - sont inclus dans le package standard "1C: Document Management 8". Les métriques nécessitent un réglage sur l'implémentation, mais le mécanisme lui-même est typique.

Les mesures sont des mesures de divers indicateurs commerciaux à certains moments (par exemple, le délai moyen de livraison du courrier au moment de 10 minutes).

L'une des mesures indique le nombre d'utilisateurs actifs dans la base de données. En moyenne, il y en a 1000 à 1400 par jour. Le graphique montre qu'au moment de la capture d'écran, il y avait 2144 utilisateurs actifs dans la base de données.

image

Il y a plus de 30 actions de ce type, la liste est sous la coupe.
liste


L'avant-dernière semaine, notre activité moyenne des utilisateurs a augmenté d'une fois et demie (le graphique apparaît en rouge) - ceci est dû à la transition de la plupart des employés vers le travail à distance (en lien avec des événements connus). De plus, le nombre d'utilisateurs actifs a augmenté de 3 fois (affiché en bleu sur l'écran), les employés ayant commencé à utiliser activement le mobile: chaque client mobile crée une connexion avec le serveur. Maintenant, en moyenne, pour chacun de nos employés, il y a 2 connexions au serveur.

image

Pour nous, comme pour les administrateurs, c'est un signal que nous devons être plus attentifs aux problèmes de vitesse, pour voir si cela a empiré. Et nous le considérons d'autres manières. Par exemple, le temps de livraison du courrier pour le routage interne change (la capture d'écran ci-dessous montre le bleu). Nous voyons qu'il a bondi jusqu'à cette année, et maintenant il est stable - pour nous, c'est un indicateur que tout est en ordre avec le système.

image

Une autre mesure appliquée pour nous est le temps d'attente moyen pour télécharger des lettres depuis le serveur de messagerie (indiqué en rouge sur la capture d'écran). En gros, combien de temps la lettre restera-t-elle sur Internet avant d'être envoyée à notre employé. La capture d'écran montre que cette heure n'a également pas changé récemment. Il y a des explosions distinctes - mais elles ne sont pas associées à des retards, mais au fait que du temps est perdu sur les serveurs de messagerie.

image

Ou, par exemple, une autre métrique (affichée en bleu dans la capture d'écran) - mise à jour des lettres dans un dossier. L'ouverture d'un dossier de messagerie est une opération très courante et doit être effectuée rapidement. Nous mesurons sa vitesse d'exécution. Cet indicateur est mesuré pour chaque client. Vous pouvez voir l'image globale de l'entreprise et la dynamique, par exemple, d'un employé individuel. La capture d'écran montre que jusqu'à cette année, la métrique était déséquilibrée, puis nous avons apporté un certain nombre d'améliorations, et maintenant cela ne va pas en empirant - un calendrier presque uniforme.

image

Les métriques sont essentiellement un outil d’administrateur pour surveiller le système, pour répondre rapidement à tout changement dans le comportement du système. Sur une capture d'écran - mesures du DO interne pendant un an. Le saut dans les graphiques est dû au fait que nous avons été chargés de développer des filiales internes.

image

Voici une liste de quelques mesures supplémentaires (sous la coupe).
Métrique
  • ()
  • 10
  • :
  • ( )
  • ( )
  • ( )
  • ( )
  • ()
  • « »


Notre système effectue des mesures de plus de 150 indicateurs 24 heures sur 24, mais tous ne peuvent pas être surveillés rapidement. Ils peuvent être utiles plus tard, dans une certaine perspective historique, et vous pouvez vous concentrer sur les plus importants pour les entreprises.

Dans l'une des implémentations, par exemple, seuls 5 indicateurs ont été sélectionnés. Le client s'est fixé pour objectif de faire un minimum d'indicateurs, mais en même temps de manière à couvrir les principaux scénarios de travail. Il serait injustifié d'inclure 150 indicateurs dans l'acte d'acceptation, car même au sein de l'entreprise, il est difficile de s'entendre sur les indicateurs jugés acceptables. Et ils connaissaient ces 5 indicateurs et les avaient déjà présentés au système avant le début du projet de mise en œuvre, y compris dans le dossier d'appel d'offres: temps d'ouverture de la carte pas plus de 3 secondes, temps d'exécution de la tâche avec un fichier pas plus de 5 secondes, etc. Dans nos filiales, il y avait précisément des mesures qui reflétaient très clairement la demande initiale des exigences du client.

Et nous avons également une analyse de profil des mesures de performance. Les indicateurs de performance sont la fixation de la durée de chaque opération effectuée (rédaction d'une lettre dans la base de données, envoi d'une lettre au serveur de messagerie, etc.). Il est utilisé exclusivement par des spécialistes techniques. Nous avons beaucoup d'indicateurs de performance dans notre programme. Nous mesurons désormais environ 1 500 opérations clés, réparties par profil.

image

L'un des profils les plus importants pour nous est la «Liste des indicateurs clés du courrier du point de vue des consommateurs». Ce profil comprend, par exemple, les indicateurs suivants:

  • Exécution de commande: filtrer par balise
  • Ouverture d'un formulaire: formulaire de liste
  • Exécution des commandes: sélection par dossier
  • Afficher les lettres dans la zone de lecture
  • Enregistrer une lettre dans votre dossier préféré
  • Rechercher des lettres par détails
  • Créer une lettre

Si nous voyons que la métrique d'un indicateur commercial est devenue trop grande (par exemple, les lettres d'un utilisateur spécifique ont commencé à arriver depuis très longtemps), nous commençons à comprendre, nous nous tournons vers la mesure du temps des opérations techniques. Nous avons l'opération technique «Archivage des lettres sur le serveur de messagerie» - nous constatons l'excédent de temps pour cette opération pour la dernière période. Cette opération, à son tour, se décompose en d'autres opérations - par exemple, l'établissement d'une connexion au serveur de messagerie. Nous voyons que pour une raison quelconque, il est soudainement devenu très grand (nous avons toutes les mesures en un mois - nous pouvons comparer cela la semaine dernière 10 millisecondes, et maintenant 1000 millisecondes). Et nous comprenons que quelque chose ici est cassé - nous devons le réparer.

Comment entretenons-nous une si grande base de données?


Notre DO interne est un exemple de projet très chargé et vraiment fonctionnel. Parlons des caractéristiques techniques de sa base de données.

Quelle est la durée de la restructuration de grandes tables de base de données?


Le serveur SQL nécessite une maintenance périodique, nettoyant les tables. Dans le bon sens, cela devrait être fait au moins une fois par jour, et pour les tables très demandées - encore plus souvent. Mais si la base est grande (et que notre nombre d'enregistrements a déjà dépassé 11 milliards), il n'est pas facile de s'en occuper.

Nous avons fait la restructuration des tables il y a 6 ans, mais cela a commencé à prendre tellement de temps que nous ne cadrions plus dans les intervalles nocturnes. Et puisque ces opérations chargent fortement le serveur SQL, il ne peut pas fournir des services de qualité aux autres utilisateurs.

Par conséquent, nous devons maintenant appliquer diverses astuces. Par exemple, nous ne pouvons pas effectuer ces procédures sur des ensembles de données complets. Vous devez recourir à la procédure Mettre à jour un échantillon de 500 000 lignes - cela prend 14 minutes. Il ne met pas à jour les statistiques pour toutes les données du tableau, mais sélectionne un demi-million de lignes et calcule à partir de celles-ci les statistiques qu'il utilise pour l'ensemble du tableau. Il s'agit d'une hypothèse, mais nous sommes obligés d'y aller, car pour un tableau particulier, la collecte de statistiques pour le milliard d'enregistrements entier sera inacceptablement longue.

image
Nous avons également optimisé d'autres opérations de maintenance en les rendant partielles.

La maintenance d'un SGBD est généralement une tâche difficile. Dans le cas d'une interaction active entre les employés, la base de données se développe rapidement, il devient de plus en plus difficile pour les administrateurs de la gérer - mise à jour des statistiques, défragmentation, indexation. Ici, nous devons appliquer différentes stratégies, nous savons très bien comment procéder, nous avons de l'expérience, nous pouvons la partager.

Comment la sauvegarde est-elle implémentée avec de tels volumes?


Une sauvegarde complète du SGBD est effectuée une fois par jour la nuit, de manière incrémentielle - toutes les heures. En outre, un répertoire de fichiers est créé chaque jour et constitue une partie de la sauvegarde incrémentielle du stockage de fichiers.

Combien de temps dure une sauvegarde complète?


Sur un disque dur, une sauvegarde complète est effectuée en trois heures, partielle - en une heure. Il faut plus de temps pour écrire sur la bande (un périphérique spécial qui effectue une copie de sauvegarde sur une cassette spéciale stockée à l'extérieur du bureau; une copie aliénable est effectuée sur la bande, qui sera enregistrée si, par exemple, le serveur est en panne). La sauvegarde se fait exactement sur le même serveur, dont les paramètres étaient plus élevés - SQL-server avec 20% de charge processeur. Au moment de la sauvegarde, bien sûr, le système devient bien pire, mais il est toujours opérationnel.

image

Y a-t-il une déduplication?


Il y a déduplication des fichiers, nous l'exécutons sur nous-mêmes, et bientôt il sera inclus dans la nouvelle version de Document Management. Nous utilisons également le mécanisme de déduplication des contreparties. Il n'y a pas de déduplication des enregistrements au niveau du SGBD, car cela n'est pas nécessaire. La plateforme 1C: Enterprise stocke des objets dans le SGBD et seule la plateforme peut être responsable de leur cohérence.

Existe-t-il des nœuds en lecture seule?


Il n'y a pas de nœuds pour la lecture (nœuds système dédiés qui servent ceux qui ont besoin de recevoir des données de lecture). DO n'est pas un système de comptabilité à mettre sur un nœud BI distinct, mais il existe un nœud distinct pour le service de développement, qui est échangé avec des messages au format JSON, et les temps de réplication typiques sont des unités et des dizaines de secondes. Le nœud est encore petit, il compte environ 800 millions d'entrées, mais il croît rapidement.

Et les messages marqués pour suppression ne sont pas supprimés du tout?


Pas encore. Nous n'avons aucune tâche pour faciliter la base. Il y a eu plusieurs cas assez graves où j'ai dû me tourner vers des lettres marquées pour suppression, dont 2009. Par conséquent, pour l'instant, nous avons décidé de tout garder. Mais lorsque le coût de cela deviendra injustifié, nous penserons à la suppression. Mais, si vous devez supprimer une lettre distincte de la base de données avec les extrémités afin qu'il n'y ait aucune trace, cela peut être fait sur demande spéciale.

Pourquoi le stocker? Existe-t-il des statistiques sur l'accès aux anciens documents?


Il n'y a pas de statistiques. Plus précisément, il se présente sous la forme d'un journal utilisateur, mais il n'est pas stocké longtemps. Les enregistrements de plus d'un an sont supprimés du protocole.

Il y avait des situations où il fallait remonter l'ancienne correspondance d'il y a cinq ou même dix ans. Et cela a toujours été fait non par simple curiosité, mais pour prendre des décisions commerciales complexes. Il y a eu un cas où sans l'historique de la correspondance, la mauvaise décision commerciale serait prise.

Comment est l'examen de la valeur et de la destruction des documents selon la période de stockage?


Pour les documents papier, cela se fait de la manière traditionnelle habituelle, comme tout le monde. Pour l'électronique, nous ne le faisons pas - laissez-le être stocké. Le sit est ici. Il y a un avantage. Tout est bien.

Quelles sont les perspectives de développement?


Maintenant, notre DO résout environ 30 problèmes internes, dont certains que nous avons énumérés au début de l'article. DO est également utilisé pour préparer des conférences que nous organisons deux fois par an pour nos partenaires: l'ensemble du programme, tous les rapports, toutes les sections parallèles, les salles - tout cela est composé dans DO, puis il est téléchargé à partir de celui-ci, et un programme imprimé est créé.

Sur le chemin de DO, il y a plusieurs autres tâches, en plus de celles qu'il résout déjà. Il existe des tâches à l'échelle de l'entreprise, mais il existe des tâches uniques et rares qui ne sont nécessaires qu'à une unité particulière. Il est nécessaire de les aider et, par conséquent, d'élargir la "géographie" de l'utilisation du système à l'intérieur de 1C - d'élargir la portée, de résoudre les tâches de tous les départements. Ce serait le meilleur test de performance et de fiabilité. J'aimerais voir le système fonctionner sur des milliards de documents, des pétaoctets d'informations.

All Articles