Wir überprüfen uns selbst: Bereitstellung und Verwaltung von 1C: Dokumentenfluss innerhalb des 1C-Unternehmens

Wir bei 1C nutzen unsere eigenen Entwicklungen weitgehend, um die Arbeit des Unternehmens zu organisieren. Insbesondere „1C: Document Management 8“ . Neben der Dokumentenverwaltung (wie der Name schon sagt) handelt es sich auch um ein modernes ECM- System (Enterprise Content Management - Corporate Content Management) mit einer Vielzahl von Funktionen - E-Mail, Arbeitskalender für Mitarbeiter, Organisation des gemeinsamen Zugriffs auf Ressourcen (z. B. Buchung von Konferenzräumen), Buchhaltung Arbeitszeit, Unternehmensforum und vieles mehr.

Bei 1C verwenden mehr als tausend Mitarbeiter Dokumente. Die Datenbank ist bereits beeindruckend (11 Milliarden Datensätze), was bedeutet, dass eine gründlichere Wartung und leistungsfähigere Ausrüstung erforderlich sind.

Wie die Arbeit unseres Systems angeordnet ist, mit welchen Schwierigkeiten wir bei der Wartung der Datenbank konfrontiert sind und wie wir sie lösen (wir verwenden MS SQL Server als DBMS), werden wir in diesem Artikel beschreiben.

Für diejenigen, die zuerst über 1C-Produkte lesen.
1C: Document Management ist eine Anwendungslösung (Konfiguration), die auf der Grundlage eines Frameworks für die Entwicklung von Geschäftsanwendungen implementiert wird - 1C: Enterprise-Plattform.


Bild


Mit „1C: Document Management 8“ (in Kurzform - DO) können Sie die Arbeit mit Dokumenten im Unternehmen automatisieren. Eines der wichtigsten Tools für die Interaktion mit Mitarbeitern ist E-Mail. Neben Mail löst DO auch andere Aufgaben:

  • Zeiterfassung
  • Bilanzierung von Abwesenheiten
  • Anträge für Kuriere / Transport
  • Mitarbeiterkalender
  • Registrierung der Korrespondenz
  • Mitarbeiterkontakte (Adressbuch)
  • Unternehmensforum
  • Zimmerreservierung
  • Veranstaltungsplanung
  • CRM
  • Kollektive Arbeit mit Dateien (unter Beibehaltung von Dateiversionen)
  • usw.

In der Dokumentenverwaltung geben wir den Thin Client (native ausführbare Anwendung) von Windows, Linux, macOS, dem Webclient (von Browsern) und dem mobilen Client ein - je nach Situation.

Und dank unseres anderen Produkts, das mit dem Dokumentenmanagement verbunden ist - dem Interaktionssystem- Wir erhalten direkt in der Dokumentenverwaltung die Messenger-Funktionalität - Chats, Audio- und Videoanrufe (einschließlich Gruppenanrufe, die jetzt besonders wichtig geworden sind, auch von einem mobilen Client), schnelle Dateifreigabe sowie die Möglichkeit, Chat-Bots zu schreiben, die die Arbeit mit dem System vereinfachen. Ein weiteres Plus bei der Verwendung des Interaktionssystems (im Vergleich zu anderen Messenger) ist die Möglichkeit, kontextbezogene Diskussionen zu führen, die an bestimmte Objekte der Dokumentenverwaltung gebunden sind - Dokumente, Ereignisse usw. Das heißt, das Interaktionssystem ist tief in die Zielanwendung integriert und fungiert nicht als „separate Schaltfläche“.

Die Anzahl der Briefe in unserem DL hat bereits 100 Millionen überschritten, und im Allgemeinen im DBMS - mehr als 11 Milliarden Datensätze. Insgesamt verbraucht das System fast 30 TB Speicher: Die Datenbank ist 7,5 TB groß, Dateien für die kollektive Arbeit sind separat und belegen weitere 21 TB.

Wenn wir über spezifischere Zahlen sprechen, dann ist hier die Anzahl der Buchstaben und Dateien im Moment:

  • Ausgehende Briefe - 14,7 Millionen.
  • Eingehende Briefe - 85,4 Millionen
  • Dateiversionen - 70,8 Millionen
  • Interne Dokumente - 30,6 Tausend

In DO gibt es nicht nur Mail und Dateien. Nachfolgend finden Sie die Nummern anderer Buchhaltungsobjekte:

  • Konferenzraumreservierung - 52 126
  • Wochenberichte - 153.940
  • Tägliche Berichte - 628 153
  • Visumgenehmigung - 11.821
  • Eingehende Dokumente - 79 677
  • Ausgehende Dokumente - 28 357
  • Aufzeichnungen von Ereignissen in den Arbeitskalendern der Benutzer - 168.228
  • Anträge für Kuriere - 21 883
  • Gegenparteien - 81 029
  • Aufzeichnungen über die Arbeit mit Auftragnehmern - 45 632
  • – 41 795
  • – 10 243
  • – 6 320
  • – 245 980
  • – 26 282
  • – 891 095
  • - – 109 056. – , , , , .. , , , , . , , .

?


Diese Zahlen weisen auf eine beeindruckende Anzahl von Aufgaben hin, sodass wir vor der Notwendigkeit standen, ziemlich produktive Ausrüstung für die Bedürfnisse interner Tochterunternehmen bereitzustellen. Bisher sind seine Eigenschaften wie folgt: 38 Kerne, 240 GB RAM, 26 TB Laufwerke. Wir
Bild

geben die Tabelle der Server an: In Zukunft planen wir, die Kapazität der Geräte zu erhöhen.

Was ist mit dem Laden des Servers?


Netzwerkaktivität war für uns oder unsere Kunden nie ein Problem. Die Schwachstelle ist in der Regel der Prozessor und die Festplatten, da jeder bereits weiß, wie man mit Speichermangel umgeht. Hier sind Screenshots unserer Server von Resource Monitor, die zeigen, dass wir keine schreckliche Last haben, es ist sehr bescheiden.

Im folgenden Screenshot sehen wir beispielsweise einen SQL Server, auf dem die CPU zu 23% ausgelastet ist. Und dies ist ein sehr guter Indikator (zum Vergleich: Wenn sich die Last 70% nähert, werden die Mitarbeiter höchstwahrscheinlich erhebliche Verlangsamungen beobachten).

Bild

Der zweite Screenshot zeigt den Anwendungsserver, auf dem die 1C: Enterprise-Plattform ausgeführt wird - er dient nur Benutzersitzungen. Hier ist die Prozessorlast etwas höher - 38%, es ist glatt und ruhig. Es wird eine Festplatte geladen, dies ist jedoch akzeptabel.

Bild

Der dritte Screenshot zeigt einen weiteren 1C: Enterprise-Server (es ist der zweite, wir haben zwei davon im Cluster). Nur der vorherige dient Benutzern, und Roboter arbeiten daran. Zum Beispiel erhalten sie Post, leiten Dokumente weiter, tauschen Daten aus, prüfen Rechte usw. Alle diese Hintergrundaktivitäten führen ungefähr 90-100 Hintergrundaufgaben aus. Und dieser Server ist mit 88% sehr beschäftigt. Dies betrifft jedoch nicht die Mitarbeiter und implementiert nur die gesamte Automatisierung, die das Dokumentenmanagement ausführen sollte.

Bild

Welche Metriken bestimmen die Leistung?


Wir haben in die BS ein seriöses Subsystem zur Messung von Leistungsindikatoren und zur Berechnung verschiedener Metriken eingebaut. Dies ist notwendig, um zum gegenwärtigen Zeitpunkt und in der historischen Perspektive zu verstehen, was im System geschieht, was schlechter wird, was besser wird. Überwachungstools - Metriken und Zeitmessungen - sind im Standardpaket "1C: Document Management 8" enthalten. Metriken müssen bei der Implementierung angepasst werden, der Mechanismus selbst ist jedoch typisch.

Metriken sind Messungen verschiedener Geschäftsindikatoren zu bestimmten Zeitpunkten (z. B. durchschnittliche Postzustellzeit zum Zeitpunkt von 10 Minuten).

Eine der Metriken zeigt die Anzahl der aktiven Benutzer in der Datenbank. Im Durchschnitt gibt es 1000-1400 davon pro Tag. Die Grafik zeigt, dass sich zum Zeitpunkt des Screenshots 2144 aktive Benutzer in der Datenbank befanden.

Bild

Es gibt mehr als 30 solcher Aktionen, die Liste ist unter dem Schnitt.
Liste


In der vorletzten Woche hat sich unsere durchschnittliche Benutzeraktivität um das Eineinhalbfache erhöht (die Grafik ist rot dargestellt) - dies ist auf den Übergang der meisten Mitarbeiter zur Fernarbeit zurückzuführen (im Zusammenhang mit bekannten Ereignissen). Außerdem erhöhte sich die Anzahl der aktiven Benutzer um das Dreifache (blau auf dem Bildschirm angezeigt), als die Mitarbeiter anfingen, das Handy aktiv zu nutzen: Jeder mobile Client stellt eine Verbindung zum Server her. Im Durchschnitt gibt es für jeden unserer Mitarbeiter zwei Verbindungen zum Server.

Bild

Für uns wie für Administratoren ist dies ein Signal, dass wir auf Geschwindigkeitsprobleme achten müssen, um zu sehen, ob es schlimmer geworden ist. Und wir sehen es anders. Zum Beispiel, wie sich die Zustellzeit für das interne Routing ändert (der Screenshot unten zeigt blau). Wir sehen, dass es bis zu diesem Jahr gesprungen ist und jetzt stabil ist - für uns ist es ein Indikator dafür, dass mit dem System alles in Ordnung ist.

Bild

Eine weitere für uns angewendete Metrik ist die durchschnittliche Wartezeit für das Herunterladen von Briefen vom Mailserver (im Screenshot rot dargestellt). Grob gesagt, wie lange wird der Brief im Internet bleiben, bevor er an unseren Mitarbeiter geht. Der Screenshot zeigt, dass sich diese Zeit auch in letzter Zeit nicht geändert hat. Es gibt separate Ausbrüche - diese sind jedoch nicht mit Verzögerungen verbunden, sondern mit der Tatsache, dass auf Mailservern Zeit verloren geht.

Bild

Oder zum Beispiel eine andere Metrik (im Screenshot blau dargestellt) - Aktualisieren von Buchstaben in einem Ordner. Das Öffnen eines E-Mail-Ordners ist ein sehr häufiger Vorgang und muss schnell erledigt werden. Wir messen, wie schnell es durchgeführt wird. Dieser Indikator wird für jeden Kunden gemessen. Sie sehen das Gesamtbild des Unternehmens und beispielsweise die Dynamik eines einzelnen Mitarbeiters. Der Screenshot zeigt, dass die Metrik bis zu diesem Jahr unausgeglichen war, dann haben wir eine Reihe von Verbesserungen vorgenommen, und jetzt wird es nicht schlimmer - ein fast gleichmäßiger Zeitplan.

Bild

Metriken sind im Grunde ein Administrator-Tool zur Überwachung des Systems, um schnell auf Änderungen im Systemverhalten zu reagieren. Auf einem Screenshot - Metriken der internen DO für ein Jahr. Der Sprung in die Grafiken ist darauf zurückzuführen, dass wir die Aufgabe haben, interne Tochtergesellschaften zu entwickeln.

Bild

Hier ist eine Liste weiterer Metriken (unter dem Schnitt).
Metriken
  • ()
  • 10
  • :
  • ( )
  • ( )
  • ( )
  • ( )
  • ()
  • « »


Unser System misst rund um die Uhr mehr als 150 Indikatoren, aber nicht alle können schnell überwacht werden. Sie können später aus historischer Sicht nützlich sein, und Sie können sich auf das Wichtigste für das Geschäft konzentrieren.

Bei einer der Implementierungen wurden beispielsweise nur 5 Indikatoren ausgewählt. Der Kunde hat sich zum Ziel gesetzt, ein Mindestmaß an Indikatoren zu erstellen, gleichzeitig aber auch die wichtigsten Arbeitsszenarien abzudecken. Es wäre ungerechtfertigt, 150 Indikatoren in den Akt der Akzeptanz aufzunehmen, da es selbst innerhalb des Unternehmens schwierig ist, zu vereinbaren, welche Indikatoren als akzeptabel angesehen werden. Und sie wussten von diesen 5 Indikatoren und präsentierten sie dem System bereits vor Beginn des Implementierungsprojekts, einschließlich in der Ausschreibungsdokumentation: Kartenöffnungszeit nicht mehr als 3 Sekunden, Aufgabenausführungszeit mit einer Datei nicht mehr als 5 Sekunden usw. In unseren Tochtergesellschaften gab es genau Kennzahlen, die die ursprüngliche Anforderung der Kundenanforderungen sehr deutlich widerspiegelten.

Außerdem haben wir eine Profilanalyse von Leistungsmessungen. Leistungsindikatoren sind die Festlegung der Dauer jeder ausgeführten Operation (Schreiben eines Briefes an die Datenbank, Senden eines Briefes an den Mailserver usw.). Es wird ausschließlich von technischen Spezialisten verwendet. Wir haben viele Leistungsindikatoren in unserem Programm. Wir messen jetzt ungefähr 1.500 Schlüsseloperationen, die nach Profilen aufgeschlüsselt sind.

Bild

Eines der wichtigsten Profile für uns ist die „Liste der Schlüsselindikatoren für Post aus Sicht der Verbraucher“. Dieses Profil enthält beispielsweise die folgenden Indikatoren:

  • Befehlsausführung: Nach Tag filtern
  • Formular öffnen: Formular auflisten
  • Befehlsausführung: Nach Ordner auswählen
  • Zeigen Sie Buchstaben im Lesebereich an
  • Speichern eines Briefes in Ihrem Lieblingsordner
  • Buchstaben nach Details suchen
  • Erstellen Sie einen Brief

Wenn wir feststellen, dass die Metrik für einen Geschäftsindikator zu groß geworden ist (z. B. kamen Briefe eines bestimmten Benutzers sehr lange an), beginnen wir zu verstehen und wenden uns der Messung der Zeit des technischen Betriebs zu. Wir haben die technische Operation "Briefe auf dem Mailserver archivieren" - wir sehen den Zeitüberschuss für diese Operation für den letzten Zeitraum. Dieser Vorgang zerlegt sich wiederum in andere Vorgänge, z. B. das Herstellen einer Verbindung zum Mailserver. Wir sehen, dass es aus irgendeinem Grund plötzlich sehr groß wurde (wir haben alle Messungen in einem Monat - wir können diese letzte Woche 10 Millisekunden und jetzt 1000 Millisekunden vergleichen). Und wir verstehen, dass hier etwas kaputt ist - wir müssen es reparieren.

Wie pflegen wir eine so große Datenbank?


Unsere interne DO ist ein Beispiel für ein wirklich funktionierendes, hoch belastetes Projekt. Lassen Sie uns über die technischen Funktionen der Datenbank sprechen.

Wie lange dauert die Umstrukturierung großer Datenbanktabellen?


SQL Server erfordert eine regelmäßige Wartung und Bereinigung der Tabellen. In guter Weise sollte dies mindestens einmal am Tag und bei stark nachgefragten Tischen erfolgen - noch häufiger. Wenn die Basis jedoch groß ist (und unsere Anzahl von Datensätzen bereits 11 Milliarden überschritten hat), ist es nicht einfach, sich darum zu kümmern.

Wir haben die Tische vor 6 Jahren umstrukturiert, aber dann dauerte es so lange, dass wir nicht mehr in die nächtlichen Intervalle passten. Und da diese Vorgänge den SQL Server stark belasten, kann er anderen Benutzern keine hochwertigen Dienste bereitstellen.

Deshalb müssen wir jetzt verschiedene Tricks anwenden. Beispielsweise können wir diese Prozeduren nicht für vollständige Datensätze ausführen. Sie müssen auf die Prozedur "Beispiel 500000 Zeilen aktualisieren" zurückgreifen - dies dauert 14 Minuten. Es aktualisiert nicht die Statistiken für alle Daten in der Tabelle, sondern wählt eine halbe Million Zeilen aus und berechnet daraus Statistiken, die für die gesamte Tabelle verwendet werden. Dies ist eine Annahme, aber wir sind gezwungen, uns dafür zu entscheiden, da für eine bestimmte Tabelle die Sammlung von Statistiken für die gesamte Milliarde Datensätze unannehmbar lang sein wird.

Bild
Wir haben auch andere Wartungsvorgänge optimiert, indem wir sie teilweise gemacht haben.

Die Wartung eines DBMS ist im Allgemeinen eine schwierige Aufgabe. Bei aktiver Interaktion zwischen Mitarbeitern wächst die Datenbank schnell und es wird für Administratoren immer schwieriger, sie zu verwalten - Statistiken aktualisieren, defragmentieren und indizieren. Hier müssen wir verschiedene Strategien anwenden, wir wissen genau, wie das geht, wir haben Erfahrung, wir können sie teilen.

Wie wird das Backup mit solchen Volumes implementiert?


Eine vollständige Sicherung des DBMS wird einmal täglich nachts schrittweise durchgeführt - jede Stunde. Außerdem wird jeden Tag ein Dateiverzeichnis erstellt, das Teil der inkrementellen Sicherung des Dateispeichers ist.

Wie lange dauert eine vollständige Sicherung?


Auf einer Festplatte wird eine vollständige Sicherung in drei Stunden durchgeführt, teilweise in einer Stunde. Das Schreiben auf das Band dauert länger (ein spezielles Gerät, das eine Sicherungskopie auf eine außerhalb des Büros gespeicherte spezielle Kassette erstellt; eine veräußerbare Kopie wird auf das Band erstellt, die gespeichert wird, wenn beispielsweise der Server durchbrennt). Die Sicherung erfolgt genau auf demselben Server, dessen Parameter höher waren - SQL-Server mit 20% Prozessorlast. Zum Zeitpunkt der Sicherung wird das System natürlich viel schlechter, aber es ist immer noch betriebsbereit.

Bild

Gibt es eine Deduplizierung?


Es gibt eine Dateideduplizierung , wir führen sie selbst aus und bald wird sie in der neuen Version von Document Management enthalten sein. Wir arbeiten auch mit dem Deduplizierungsmechanismus der Gegenpartei. Auf DBMS-Ebene erfolgt keine Deduplizierung von Datensätzen, da dies nicht erforderlich ist. Die 1C: Enterprise-Plattform speichert Objekte im DBMS, und nur die Plattform kann für deren Konsistenz verantwortlich sein.

Gibt es schreibgeschützte Knoten?


Es gibt keine Knoten zum Lesen (dedizierte Systemknoten, die diejenigen bedienen, die Lesedaten empfangen müssen). DO ist kein Abrechnungssystem für einen separaten BI-Knoten, aber es gibt einen separaten Knoten für die Entwicklungsabteilung, der mit Nachrichten im JSON-Format ausgetauscht wird. Typische Replikationszeiten sind Einheiten und mehrere zehn Sekunden. Der Knoten ist immer noch klein, hat ungefähr 800 Millionen Einträge, wächst aber schnell.

Und zum Löschen markierte Nachrichten werden überhaupt nicht gelöscht?


Noch nicht. Wir haben keine Aufgaben, um die Basis zu erleichtern. Es gab mehrere ziemlich schwerwiegende Fälle, in denen ich mich Briefen zuwenden musste, die zum Löschen markiert waren, einschließlich 2009. Deshalb haben wir uns vorerst entschlossen, alles zu behalten. Aber wenn die Kosten dafür ungerechtfertigt werden, werden wir über die Entfernung nachdenken. Wenn Sie jedoch einen separaten Buchstaben mit den Enden aus der Datenbank entfernen müssen, damit keine Spuren vorhanden sind, kann dies auf besonderen Wunsch erfolgen.

Warum aufbewahren? Gibt es Statistiken über den Zugriff auf alte Dokumente?


Es gibt keine Statistiken. Genauer gesagt liegt es in Form eines Benutzerprotokolls vor, das jedoch nicht lange gespeichert wird. Datensätze, die älter als ein Jahr sind, werden aus dem Protokoll gelöscht.

Es gab Situationen, in denen es notwendig war, die alte Korrespondenz von vor fünf oder sogar zehn Jahren zu erheben. Und dies geschah immer nicht aus müßiger Neugier, sondern um komplexe Geschäftsentscheidungen zu treffen. Es gab einen Fall, in dem ohne die Geschichte der Korrespondenz die falsche Geschäftsentscheidung getroffen würde.

Wie ist die Prüfung des Wertes und der Vernichtung von Dokumenten nach der Aufbewahrungsdauer?


Bei Papierdokumenten erfolgt dies wie bei allen anderen auf die übliche traditionelle Weise. Für elektronische Geräte tun wir das nicht - lassen Sie es speichern. Das Sitzen ist hier. Es gibt einen Vorteil. Alles ist gut.

Was sind die Entwicklungsperspektiven?


Jetzt löst unser DO ungefähr 30 interne Probleme, von denen einige am Anfang des Artikels aufgeführt sind. DO wird auch verwendet, um Konferenzen vorzubereiten, die wir zweimal im Jahr für unsere Partner abhalten: das gesamte Programm, alle Berichte, alle parallelen Abschnitte, Hallen - all dies wird in DO erstellt und dann von dort heruntergeladen und ein gedrucktes Programm erstellt.

Auf dem Weg zu DO gibt es noch einige weitere Aufgaben, zusätzlich zu denen, die er bereits löst. Es gibt unternehmensweite Aufgaben, aber es gibt einzigartige und seltene Aufgaben, die nur von einer bestimmten Einheit benötigt werden. Es ist notwendig, ihnen zu helfen und daher die "Geographie" der Verwendung des Systems innerhalb von 1C zu erweitern - um den Umfang zu erweitern, die Aufgaben aller Abteilungen zu lösen. Dies wäre der beste Test für Leistung und Zuverlässigkeit. Ich würde gerne sehen, dass das System mit Billionen von Datensätzen und Petabyte an Informationen arbeitet.

All Articles