Tipps zur Produktionsbereitstellung

  • Freigeben Version: Yokohama
  • Aktualisiert 30. Januar 2025
  • 5 Minuten Lesedauer
  • Wenn Sie Anpassungen für Anwendungen auf der Plattform ServiceNow® entwickeln, stellen Sie sie über das Anwendungs-Repository in einer Produktionsinstanz bereit. In diesem Thema werden die Zielkonflikte zwischen der Installation einer Anwendung aus dem Anwendungs-Repository und der Installation einer Anwendung aus dem Git-Repository mit Quellcodeverwaltung untersucht, und geben Warnhinweise.

    Übersicht oder Bereitstellung in der Produktion

    Technisch gesehen können Sie eine Anwendung mithilfe der Quellcodeverwaltung weiterhin aus einem Git-Repository in einer Produktionsinstanz „bereitstellen“. Dies kann unbeabsichtigte Folgen haben.

    Glossar

    Benennung Definition
    Metadaten oder Anwendungsdateien Die sys_metadata-Datensätze, die die Konfiguration in ServiceNow definieren und in einer Anwendung paketisiert sind. Diese Datensätze ändern das Verhalten der Instanz, enthalten jedoch keine Daten wie Incident- oder CMDB-Datensätze. (Siehe Hinweis unten)
    Bereichsbezogene Anwendungen ServiceNow-Anwendungen, die einschränken, dass nur Updates und Vorgänge innerhalb der Grenzen des Bereichs zulässig sind. Dieser Mechanismus wird für die meisten Neuentwicklungen verwendet.
    Globale Anwendungen Globale Anwendungen werden im globalen Legacy-Bereich entwickelt. In diesem Bereich wird häufig daran gearbeitet, vorhandene ServiceNow-Anwendungen wie IT Service Management (ITSM) anzupassen.
    Anwendungs-Repository Anwendungen werden normalerweise zur Bereitstellung in Produktionsinstanzen hier veröffentlicht. Obwohl für das Anwendungs-Repository separate Berechtigungsregeln gelten, funktioniert es ähnlich wie der ServiceNow Store.
    ServiceNow Store Repository für Anwendungen von Drittparteien (Lieferanten) sowie von ServiceNow veröffentlichte Anwendungen. Die meisten Kunden veröffentlichen nicht im Store, installieren jedoch häufig Anwendungen.
    Update Sets Standardmethode zum Packen von Anpassungen für die Bereitstellung in jeder nachfolgenden Instanz. Sie enthalten die inkrementelle Sammlung von Einfügungen, Aktualisierungen und Löschungen.
    Delta-Laden Die effizienteste Lademethode, da sie nur aus der Quellcodeverwaltung und nicht aus früheren Deinstallations-/Neuinstallationsmethoden wechselt.
    Schema Definition der Tabellen und Spalten in den Tabellen.
    Rollback Administratoren können die letzte Installation einer ausgewählten Anwendung rückgängig machen. Bei einem Rollback werden alle Code-, Tabellen- und Dateiaktualisierungen aus der Erstinstallation entfernt.
    Hinweis:
    Die Tabelle „sys_metadata“ ist die übergeordnete Tabelle aller Anwendungsdateien in der Plattform ServiceNow, die das Tabellenvererbungsmodell verwenden. Sie können Zusammenfassungsinformationen für Metadaten anzeigen, indem Sie die übergeordnete Tabelle(n) aufrufen, die direkt oder indirekt erweitert wird, wie im Feld Tabelle erweitern (Super_class) im Datensatz Tabelle (sys_db_object) angegeben. Sie können das gesamte Schema auch anzeigen, indem Sie das Formular „Tabelle (sys_db_object)“ für die Tabelle „sys_metadata“ aufrufen und den zugehörigen Link Schemazuordnung anzeigen unten im Formular auswählen. Das Schema ist groß, und das Rendern dauert einige Zeit.

    Schemazuordnung

    Inhaltsverzeichnis der Schemazuordnung

    Installationsort

    Wenn Sie die Quellcodeverwaltung installieren, erleichtert sie die laufende Entwicklung einer benutzerdefinierten Anwendung. Daher wird die Anwendung in der Tabelle „Anwenderdefinierte Anwendung“ [sys_app] als Anwendung „In Entwicklung“ und nicht als Anwendung „Installiert“ in der Tabelle „Store-Anwendung“ [sys_store_app] verwaltet. Beide Tabellen sind Erweiterungen von „sys_scope“ und bieten daher dieselben Schutzmaßnahmen und Einschränkungen wie der Bereich. Wenn Sie also nach der Installation einer bereitgestellten Quellcodeverwaltungsanwendung suchen, konsultieren Sie die Tabelle „Systemanwendung“ [sys_app] und den Abschnitt „In Entwicklung“ auf der Seite „Anwendungsmanager“.

    Sie können keinen sys_app-Datensatz in der Instanz haben, während Sie dieselbe Anwendung aus dem ServiceNow Store oder dem Anwendungs-Repository bereitstellen. Die beiden Bereitstellungsmodelle schließen sich gegenseitig aus. Wenn sich das Bereitstellungsmodell zu irgendeinem Zeitpunkt ändert, muss der Datensatz „sys_app“ zuerst in einen Datensatz „sys_store_app“ konvertiert werden. Wenden Sie sich an den Support von ServiceNow, um Hilfe bei diesem Vorgang zu erhalten.

    Delta-Laden

    Vor dem Paris-Release ServiceNow wurde bei Auslösung bei der Installation einer Anwendung aus der Quellcodeverwaltung immer die gesamte Anwendung entfernt und neu installiert, einschließlich der Funktion Remote-Changes anwenden. Mit Delta-Ladenwerden jetzt nur die Changes aktualisiert, was den Prozess erheblich vereinfacht.

    Beim Delta-Ladeprozess werden die Changes inkrementell aus der Quellcodeverwaltung geladen. Wenn Sie Remote-Changes anwenden, löschen Sie vorhandene Tabellen oder Spalten nur, wenn sie aus dem Repository entfernt wurden. Dadurch werden die Daten für Tabellen und Felder beibehalten, die weiterhin vorhanden waren.
    Hinweis:
    Mit der Eigenschaft „glide.source_control.allow_delta_loading_in_scopedapp“ können Sie das Delta-Laden in Paris deaktivieren. Dadurch wird jedoch das destruktivere Verhalten des Entfernens und erneuten Installierens der Anwendung wiederhergestellt. Globale Anwendungen in Paris verwenden immer Delta-Loading.
    Nachfolgend finden Sie eine Tabelle der verschiedenen erwarteten Ergebnisse in einer Instanz mit Delta-Laden.
    Anwendungstyp Installationsquelle Schema im Paket vorhanden Schema enthält Daten Anspruch durch andere App (global) Erwartetes Ergebnis für Daten und Schema
    Mit Umfang Anwendungs-Repository oder Store Ja Ja/Nein N/V Erhalten
    Mit Umfang Anwendungs-Repository oder Store Nein Ja/Nein N/V Erhalten
    Mit Umfang Quellcodeverwaltung Ja Ja/Nein N/V Erhalten
    Mit Umfang Quellcodeverwaltung Nein Ja/Nein N/V Entfernt
    Global Quellcodeverwaltung, Anwendungs-Repository oder Store Ja Ja/Nein Ja/Nein Erhalten
    Nein Ja Nein Erhalten (1)
    Nein Nein Ja Erhalten (2)
    Quellcodeverwaltung Nein Nein Nein Entfernt (3)
    Anwendungs-Repository Nein Nein Nein Erhalten
    Hinweis:
    • Das Datenbankschema und die Daten bleiben zwar erhalten, werden jedoch in die globale Standardanwendung verschoben.
    • Das Datenbankschema und die Daten bleiben zwar erhalten, werden jedoch in die globale Anwendung verschoben, die zuvor Anspruch auf diese Dateien hatte, falls installiert. Andernfalls werden sie in die globale Standardanwendung verschoben.
    • Gilt nur für anwenderdefinierte Spalten mit dem Präfix u_. Von der ServiceNow-Plattform erstellte Spalten werden nicht gelöscht.

    Gehen Sie in einer Produktionsumgebung beim Wechseln der Verzweigungen in der Quellcodeverwaltung für eine bereichsbezogene Anwendung mit äußerster Vorsicht vor. Wenn in der Zielverzweigung Schemaelemente fehlen, die in der aktuellen Verzweigung gefunden wurden, wird das zugehörige Schema gelöscht, wodurch alle darin enthaltenen Daten gelöscht werden. (Globale Anwendungen verwerfen kein Schema, wenn Daten vorhanden sind.)

    Wie bei Update Sets muss beim Delta-Laden nur eine Teilmenge der inkrementellen Änderungen angewendet werden. Im Gegensatz zu Update Sets stellt das Anwendungspaket die vollständige Anwendung dar. Dateien, die im neuen Paket fehlen, werden gelöscht. Dies kann die Funktionalität ändern und Daten löschen. Update-Sätze und Anwendungen, die aus dem App-Repository oder ServiceNow dem Store aktualisiert werden, müssen eine explizite Nutzlast des Typs LÖSCHEN aufweisen, um eine Datei zu entfernen oder ein Schema zu löschen.

    Wenn Anwendungsdateien in irgendeiner Weise dynamisch generiert werden, werden diese Datensätze bei der nächsten Remoteinstallation/-anwendung gelöscht, die den Betrieb einer Anwendung ändert. Sie werden im eingehenden Anwendungspaket als nicht vorhanden betrachtet. Wenn Sie Stash für lokale Changes ausführen, können die Anwendungsdateien möglicherweise durch einen Stash-Commit wiederhergestellt werden. Wenn jedoch Daten aufgrund der Changes verloren gehen, werden die Daten nicht wiederhergestellt.
    Hinweis:
    Durch das Entfernen oder Unterdrücken von sys_update_xml-Datensätzen wird verhindert, dass sie durch Delta-Laden entfernt werden. Diese Aktion kann jedoch auch andere schwerwiegende oder unerwünschte Ergebnisse haben.

    Direkte Änderungen am Repository können, insbesondere zum Entfernen von Dateien, erhebliche Auswirkungen haben, einschließlich Datenverlust und kaskadierenden Löschvorgängen. Führen Sie diese Aktion mit Sorgfalt aus.