Grundlegendes zur Repository-Partitionierung

Ein Repository ist eine der Kernkomponenten, mit denen Sie Ihren Automatisierungsarbeitsbereich (Automatisierungen und Dateien) verwalten. Die Partitionierung hilft Ihnen bei der Skalierung der Repositorys und Optimierung der Leistung von Repository-bezogenen Vorgängen wie dem Ein- und Auschecken.

Anmerkung: Für die Partitionierung von Repositorys benötigen Sie die Enterprise Platform-Lizenz. Für weitere Informationen zu den unterstützten Versionen dieser Funktion, siehe Enterprise Platform.

Übersicht

Das Automation 360-Repository ist ein einzelnes Git-Repository, in dem alle Bots, Formulare, Prozesse und Abhängigkeitsdateien gespeichert sind. Da das Repository auf Git basiert, bietet es einige gebrauchsfertige Versionskontrollfunktionen wie Einchecken, Auschecken, Versionsverlauf, Rollback und Versionsvergleich. Daher ist die Integration mit einem externen, entfernten Git keine Voraussetzung in Automation 360.

Alle Dateien im Git-Repository in Automation 360 werden zur Versionierung gespeichert. Im Laufe der Zeit kann das Git-Repository aufgrund der Anzahl der Dateien, der Größe der Dateien, der Git-Commits usw. sehr groß werden. Dies kann zu Verzögerungen bei der Ausführung von Repository-Aktionen führen.

Mit der Repository-Partitionierung können Sie den Repository-Ordner von Automation 360 in separate Git-Repositorys aufteilen. Sie können das große öffentliche Repository im Stammordner in mehrere Git-Repositorys auf den ausgewählten Ordnerebenen partitionieren und so Leistungseinbußen bei den Repository-Partitionen begrenzen.

Anmerkung: Control Room-Administrator oder Nutzer mit der Berechtigung Repository partitionieren können die Funktion zur Partitionierung des Repositorys verwenden.

Vorteile

Zu den Vorteilen der Partitionierung Ihrer Repositorys gehören:

Schnellere Abläufe durch schnelles Ein- und Auschecken
Da die Ordner partitioniert sind, hat jeder partitionierte Ordner eine vergleichsweise geringe Anzahl von Eincheck-Aktivitäten (Commits). Aufgrund dieser geringeren Anzahl von Commits geschehen Ein- und Auscheckoperationen (einschließlich des gleichzeitigen Ein- und Auscheckens) schneller.
Logische Trennung von Ordnern im Git-Bereich
Das Anlegen mehrerer Repositorys in Git mindert das Risiko eines Single Point of Failure. Probleme in einem Repository wirken sich nicht nachteilig auf andere Repositorys oder darin enthaltene Automatisierungen aus.

Empfehlungen

In einem typischen Produktionsszenario werden Ordner, die verschiedenen Abteilungen entsprechen, innerhalb des Bots-Ordners erstellt. Basierend auf den spezifischen Geschäftsprozessen oder Projekten (mehrere Geschäftsprozesse) werden innerhalb der Abteilungsordner Unterordner erstellt. Es ist auch üblich, dass Kunden über gemeinsam genutzte Bibliotheken verfügen, die auf verschiedenen Ebenen erstellt werden können und dann für andere Prozesse weiter freigegeben werden.

Betrachten Sie ein Szenario, in dem alle Dateien gleichzeitig von verschiedenen Automatisierungs- oder Citizen-Entwicklern in dieselbe Partition (Git-Repository) eingecheckt werden. Dies kann die Geschwindigkeit der Datenverarbeitung beeinträchtigen und zu erheblichen Verzögerungen führen. Um sicherzustellen, dass die Leistung langfristig nicht beeinträchtigt wird, überprüfen Sie den unten empfohlenen Ansatz:

Operativer Ansatz
Es wird empfohlen, pro Team eine Partition zu erstellen. Ein Team besteht aus einer Gruppe von Personen, die an ähnlichen Geschäftsprozessen arbeiten. Begrenzen Sie die Anzahl der Entwickler in jedem Set auf 50 oder weniger, um eine optimale Leistung für jedes Team zu erzielen. Wenn es mehr Entwickler gibt, können Sie sie zur Skalierbarkeit auf mehrere Partitionen aufteilen.
Für jede Partition, die Sie durchführen, erhält ein Benutzer, der versucht, Automatisierungen oder Dateien in diesen Ordner einzuchecken oder zu importieren, eine Benachrichtigung, dass die Partitionierung im Gange ist.

Während der Partitionierung sind Benutzer daran gehindert, Check-ins, Importe, Massen-Check-ins und Löschungen in den partitionierten Ordnern oder Unterordnern durchzuführen. Auch wenn ein Benutzer während dieser Zeit versucht, eine Automatisierung einzuchecken, wird eine Warnung angezeigt, die ihm empfiehlt, zu warten. Der Benutzer kann dann problemlos im privaten Arbeitsbereich weiterarbeiten und die Arbeit wird nie blockiert. Darüber hinaus sind Git-Wiederherstellung, Git-Einstellungen und Massenpaketaktualisierungen allgemein eingeschränkt.

Tests an Repositories mit einer Größe von 20 GB haben gezeigt, dass der Vorgang bis zu 1,5 Stunden dauern kann. Diese Zeit kann jedoch je nach Leistung des Network Attached Storage (NAS) variieren. Die Betriebskosten sind sehr gering und Sie können dies im Laufe der Zeit tun.

Beispielsweise können Sie 4 bis 6 Partitionen am Ende des Arbeitstages durchführen, wenn weniger Benutzer vorhanden sind oder Citizen Developer. Auf diese Weise können Sie den Partitionierungsprozess ausführen, ohne andere Geschäftsbenutzer zu beeinträchtigen.

Bestimmen Sie die Ordner, die partitioniert werden sollen.
Überprüfen Sie die folgenden Empfehlungen zur Partitionierung der Ordner:
  • Führen Sie das Tool RepositoryFolderSizeReport.exe aus dem Skriptverzeichnis auf einem der Control Room Knoten mit dem folgenden Befehl aus:
    RepositoryFolderSizeReport.exe --root "Z:\Server Files\repository\16933f12-fdee-4a7f-8e76-a9bf127918c6\0\Automation Anywhere\Bots"
  • Stellen Sie sicher, dass Sie das obige Skript durch die richtige Mandanten-ID aus Ihrer Umgebung ersetzen.

    Beispiel: 16933f12-fdee-4a7f-8e76-a9bf127918c6.

  • Verwenden Sie Z:\Server Dateien\repository, um das NAS-Laufwerk zu überprüfen.
  • Erstellen Sie einen folder_sizes.csv-Bericht mit Ordnerpfaden und ihren jeweiligen Größen in MB.
    Auf diese Weise können Sie die Aufteilung Ihrer Ordner planen.
    Anmerkung: Git empfiehlt, die Repository-Größe für eine optimale Leistung auf weniger als 2 GB zu beschränken.
  • Dieses Dienstprogramm gibt die Größe jedes Ordners an, was Ihnen bei der Planung der Ordnerpartitionierung hilft.
Timeout-Einstellungen
Die Repository-Partitionierung startet ein externes Programm, um den Ordner zu partitionieren. Wenn dieses externe Programm innerhalb von 12 Stunden (Standard) keine Ausgabe liefert, wird es beendet und der Benutzer kann den Partitionierungsprozess neu starten. Wenn das Timeout von 12 Stunden zu lang ist, können Sie es auf 2 Stunden ändern, indem Sie die Eigenschaftendatei unter <CR_Folder>\\config\\repository.properties ändern.

Stellen Sie sicher, dass Sie die Eigenschaft repository.partition.read.line.timeout aktualisieren, indem Sie den Wert in Sekunden festlegen. Zum Beispiel, für ein Timeout von 2 Stunden, setzen Sie den Wert auf 7200.

Starten Sie den Kernel nach allen Änderungen neu.

Überwachung der Repository-Partitionierung
  • Überwachen Sie den Fortschritt der Partitionierung in den Protokolldateien mit dem PartitionMonitor Skript.
  • Führen Sie das Skript PartitionMonitor.ps1 auf jedem CR-Knoten aus.

    Der Partitionierungsantrag wird planmäßig auf einem der Knoten bearbeitet. Daher sind die Fortschrittsergebnisse nur auf diesem bestimmten Knoten sichtbar.

  • Öffnen Sie Windows PowerShell und navigieren Sie zum Skriptverzeichnis (C:\scripts). Führen Sie den folgenden Befehl aus:
    .\PartitionMonitor.ps1 -sourceDirectory "C:\ProgramData\AutomationAnywhere\Logs" -outputFile out.log