Effizient und sicher entwickeln

Verwenden Sie diese Best Practices, um sicherzustellen, dass der Entwicklungsprozess effizient und sicher ist.

Strenge Umwelt und Quellcodesteuerung verwenden

Eine sorgfältige und strikte Verwendung separater Umgebungen und Quellcodesteuerung ist für einen sauberen und sicheren Entwicklungsprozess von wesentlicher Bedeutung:

Viele Kunden verwenden mindestens zwei und häufig drei oder mehr separate Umgebungen. Entwicklungs-, Test-, Staging- und Produktionsumgebungen sind typische. Verwenden Sie strenge Kontrolle über Promotion von Umgebung zu Umgebung.

Das Versionskontrollsystem muss die Konsistenz der Artefakte gewährleisten:

  • Metadaten für das Erstellen von Tabellen
  • Beispiel- und Quelldaten
  • ETL-Code
  • PaaS-Versionen und Patchebenen

Betrachten Sie einen "Metadatenschritt", der die Weiterentwicklung von Metadaten kontrolliert und sichergestellt, dass alle Entwickler dieselben Definitionen verwenden. Außerdem sollten Sie einen "Releasemanager" angeben, der steuert, wann Artefakte in eine andere Umgebung als die Entwicklungsumgebung importiert werden, und wer wissen, wann welche Umgebungen für welchen Zweck verwendet werden.

Dedizierte Umgebungen bieten mehrere Vorteile. In einer Production-Umgebung sollten Sie Entwicklungs-, Test- und Performance-Umgebungen berücksichtigen. Diese Umgebungen können nach Bedarf skaliert werden.

In einer Entwicklungsumgebung:

  • Alle Änderungen am Code, auch kleinere, werden entwickelt.
  • Unit-Tests (anhand von Beispieldaten - häufig eine Teilmenge der echten Daten für schnellere Ausführungen) werden durchgeführt.
  • Ein zum Hochstufen bereiter Code muss beispielsweise identifiziert werden. Sie können Prozesse zum Prüfen und automatischen Hochstufen von Code in eine Test- oder Production-Umgebung implementieren.

In einer QA-Umgebung:

  • Konsolidierung der in dev vorgenommenen Änderungen (nur Änderungen für Promotion validiert).
  • Validierung der Änderungskonsistenz (mit denselben Metadaten, konsistenten Orchestrierung usw.) und diesem Code wird ordnungsgemäß ausgeführt.
  • Codeänderungen sind nicht zulässig.

Eine zusätzliche Umgebung für Performancetests kann von Vorteil sein. In einer Performanceumgebung:

  • Erstellen Sie eine Baseline für die Performance des Codes.
  • Begrenzte Codeänderungen, die nur von einem Leistungsteam zur Validierung von Performanceverbesserungen zulässig sind.
  • Ermitteln Sie Engpässe, untersuchen Sie die erforderlichen Änderungen, und melden Sie sie an, damit sie in der Entwicklung implementiert werden können.
  • Überwachen Sie die Performance mit allen Codes, die vom QA-Team zertifiziert sind, um Performance-Entwürfe und Adressprobleme zu ermitteln.

Beachten Sie, dass es wichtig ist, die Performance in der Production-Umgebung weiter zu überwachen. Eine Performanceverringerung ist gelegentlich eine Warnung bei einer Verringerung der Umgebung. Oracle empfiehlt insbesondere die Kontrolle von Ausführungsplänen mit SQL Plan Management (SPM). Änderungen des Ausführungsplans in der Produktion können zu Fehlern führen, und Tabellenladevorgänge führen zu Risiken bei den Änderungen des Ausführungsplans.

Administrationsaufgaben automatisieren

Manuelle Admin-Aufgaben erfordern Zeit und fügen Risiko hinzu:

  • Durch die manuelle Zurücksetzung der Umgebung zur Wiederholung eines Ladevorgangs (aufgrund von Codefehler, Produkt-Bug, Codeänderung usw.) werden Entwickler, die SQL-Anweisungen manuell ausführen, auf manuelle Weise zurückgesetzt.
  • Manuelle Prozesse sind fehleranfällig, und der nächste Versuch kann weiter verzögert werden.
  • Manuelle Prozesse sind langsam: Entwickler müssen sorgfältig sein, was sie dabei machen, und eine große Zeit für eine doppelte Prüfung verlieren, dass sie die richtige Vorgehensweise getroffen haben.
  • Fehler sind aufwändig: Die Fehler müssen behoben werden (potenziell beim erneuten Laden gelöschter Daten) können die Entwicklungsarbeiten verzögern.
  • Das Onboarding neuer Entwickler ist langsamer und birgt ein höheres Risiko, weil sie auf manuelle Prozesse folgen müssen.

Admin-Aufgaben müssen vollständig automatisiert sein, sodass Entwickler nur einige Parameter festlegen und einen Job ausführen können, der bereits validiert wurde, um die richtigen Aufgaben jedes Mal auszuführen.

Sie sollten die folgenden Aufgaben automatisieren:

  • Umgebungsdaten, Variablen und Parameter zurücksetzen, um die Wiederholung eines Ladevorgangs zu ermöglichen.
  • Umgebungen neu erstellen: PaaS-Tools und -Patches, wenn erforderlich, Metadaten, Daten, PaaS-Code. Dies muss die Möglichkeit umfassen, ein anfängliches Laden der Zielumgebung auszuführen.
  • Oracle Data Integrator-Logs und Szenarioberichte bereinigen (wodurch die Performance verbessert wird): Mit dem in Packages verfügbaren OdiPurgeLog-Tool können Sie dediziertes Szenario erstellen und Löschvorgänge planen.
  • Löschen Sie Staging-Tabellen, die für erfolgreiche Ladevorgänge verwendet wurden.
  • Dateien, die erfolgreich geladen wurden, löschen oder erneut suchen.
  • Beim Patching verwenden Sie automatische Installationen (Datensatz-Patching-Prozess in einer Entwicklungsumgebung und anschließend in anderen Umgebungen wiedergeben).

Patching verwalten

Das Patching ist wichtig, damit die Systeme mit den neuesten Sicherheits- und Bugfixes aktualisiert werden, ein schlecht verwaltetes Patching-System kann jedoch Sicherheitslücken erzeugen und unerwartete Ausfallzeitereignisse verursachen.

Oracle empfiehlt Folgendes:

  • Prüfen Sie, wer in Ihrem Unternehmen Alerts von Oracle über das Patching erhält und auf diese reagieren wird.
  • Dokumentieren Sie die Patching-Ebene aller Umgebungen. Beachten Sie, dass einige Services automatisch von Oracle gepatcht und aktualisiert werden, jedoch möglicherweise müssen Sie nicht native Services und insbesondere On-Premise-Instanzen manuell patchen.
  • Definieren Sie Patching-Fenster. Identifizieren Sie zum manuellen Patching Zeitfenster, die für die Benutzer am wenigsten nicht unterbrechungsfrei sind.

Best Practices für Benutzeraccounts folgen

Befolgen Sie Best Practices mit Benutzeraccounts, um die Sicherheit Ihrer Daten, Umgebungen und Integrationen sicherzustellen.

Jeder Entwickler muss sein eigenes Oracle Data Integrator-Benutzerkonto haben, selbst wenn ihm Supervisor Berechtigungen erteilt wurden. Verwenden Sie keine Konten gemeinsam. Getrennte Benutzeraccounts verbessern die Kommunikation und stellen die Verantwortung sicher:

  • Gesperrte Objekte zeigen an, wer das Objekt bearbeitet.
  • In den letzten Aktualisierungen wird angegeben, wer ein Objekt zuletzt geändert hat, und wann.

Wenn Oracle Data Integrator Zugriff auf eine Datenbank benötigt:

  • Erstellen Sie einen dedizierten Datenbankbenutzer speziell für Oracle Data Integrator. Verwenden Sie nicht den Account eines einzelnen Benutzers oder einen Account, der von einem anderen Service verwendet wird.
  • Der Oracle Data Integrator-Benutzer muss der Eigentümer des Staging-Schemas sein (wird zum Erstellen, Löschen, Einfügen, Aktualisieren und Löschen verwendet).
  • Der Oracle Data Integrator-Benutzer muss über Berechtigungen verfügen, die auf die tatsächliche Verwendung für andere Schemas beschränkt sind (Auswählen, Einfügen, Aktualisieren und Löschen).

Proven-Utilitys verwenden

Einige Tools eignen sich besser, wenn andere: die Tools für die Arbeit in Ihrer Umgebung verwenden und den Standard dokumentieren, sodass neue Teammitglieder wissen, was sie verwenden können.

Beispiel:

  • Schlüsselgenerierung: Es gibt mehrere Formate für Schlüssel. Stellen Sie sicher, dass Sie das korrekte Schlüsselformat dokumentieren, das Ihre Entwickler verwenden sollten (Beispiel: Sie müssen das RSA-Format verwenden und das OpenSSH-Format verhindern).
  • ZIP-Utilitys: Nicht alle Inhalte werden von verschiedenen Utilitys auf dieselbe Weise komprimiert. Stellen Sie sicher, dass Sie die Kontrolle über den Komprimierungsalgorithmus haben, mit dem Dateien komprimiert werden. Oracle empfiehlt die Verwendung von 7Zip.