Datenbank-Staging-Umgebung für Nicht-IT-Mitarbeiter

10

Ich bin dabei, meiner IT-Abteilung eine Datenbank-Staging-Umgebung vorzuschlagen. Die Idee ist, dass eine Nicht-IT-Person wie ich (Public Works Data Analyst) einen Ort zum Testen von Lösungen haben und diese dann entweder selbst in der Live-Umgebung implementieren oder die IT bitten kann, sie bei Bedarf zu implementieren. Es gibt einige Gründe / Szenarien, in denen diese Umgebung von Vorteil wäre:

  1. Ich habe einige grundlegende Datenbankrechte in unserer Live - Datenbankumgebung ( create table, create viewusw.). Ich nehme ungefähr einmal pro Woche Schemaänderungen vor, aber es erscheint mir verrückt , diese Änderungen in einer Live-Umgebung zu testen und zu implementieren. Es gibt unzählige Abhängigkeiten von der Datenbank. Wenn also etwas schief geht, kann dies katastrophal sein. Ich würde die Dinge viel lieber vorher in einer separaten Umgebung testen.
  2. Ich habe einige der erweiterten Berechtigungen wie create triggeroder create functionin der Live-Datenbank nicht. Das ist in Ordnung, aber ich habe einige Probleme, die durch Trigger und / oder Funktionen gelöst werden könnten. Ich möchte vorschlagen, dass mir diese Berechtigungen in der Staging-Umgebung erteilt werden, damit ich einige Ideen entwickeln und testen kann. Wenn sie funktionieren, schlage ich vor, dass die IT sie in der Live-Umgebung implementiert.
  3. Im Allgemeinen hat meine IT-Abteilung weder Zeit noch Ressourcen, um Lösungen für mich zu entwickeln. So einfach ist das wirklich. Wenn ich also die Beinarbeit selbst erledigen kann, ist es viel wahrscheinlicher, dass meine Probleme gelöst werden.

Die "Staging-Umgebung für Nicht-IT-Mitarbeiter" scheint mir ein solider Ansatz zu sein, aber um ehrlich zu sein, habe ich mir gerade die Idee ausgedacht. Ich habe keine Ahnung, wie dies normalerweise in der IT- / Datenbankwelt gemacht wird.

Gibt es eine etablierte IT- / Datenbankpraxis, die zu diesem Szenario passt? (Bin ich auf dem richtigen Weg, wenn ich eine Datenbank-Staging-Umgebung für Nicht-IT-Mitarbeiter vorschlage?)

Wilson
quelle
1
Gibt es in der Datenbank supersensible Daten, auf die Sie nicht zugreifen sollten? Es scheint eine einfache Lösung zu sein, wenn sie Ihnen ein Backup der DBs senden, um sie auf Ihrem PC wiederherzustellen, mit dem Sie spielen können, ohne befürchten zu müssen, die Produktion zu unterbrechen. Dies erfordert keine zusätzlichen Ressourcen und alles, was sie tun müssen, ist Ihnen das Backup zuzusenden. Dies hängt jedoch stark von den Sicherheitsanforderungen Ihrer Umgebung ab.
Shaulinator
1
Dann denke ich, dass ein Backup und eine Wiederherstellung zur Verwendung in Ihrer eigenen Umgebung eine kostengünstige und einfache Lösung sind. Im Idealfall sollten Sie jedoch über mehrere Umgebungen mit unterschiedlicher Verarbeitungsstärke verfügen, die sich gegenseitig nachahmen. Wenn Sie Änderungen vornehmen, werden diese langsam in allen Umgebungen abgestuft. Wir haben einen Entwickler, in dem wir spielen und uns ändern können, um zu testen, wo die Qualitätssicherung durchgeführt wird, dann eine andere Umgebung, die fast 1: 1 von Prod für Hardware ist, und dann Prod, wo die Dinge live gehen. Dies ist offensichtlich teuer. Eine andere Datenbank auf dem Server zu haben, die ähnlich ist, ist eine andere Idee.
Shaulinator
1
Ich ziehe es jedoch vor, Umgebungen vollständig getrennt zu halten, um die Wahrscheinlichkeit eines Problems auf ein Minimum zu beschränken, falls Sie eine weggelaufene Abfrage haben.
Shaulinator
1
Die Oracle Database Express Edition ist wahrscheinlich Ihre einfache Wahl. Installieren Sie es auf Ihrem Computer und richten Sie die Tabellen wie auf Ihrer Hauptdatenbank ein. Laden Sie mit repräsentativen Daten und Sie können so viel entwickeln / testen, wie Sie möchten. Sobald Sie bereit sind, können Sie ihnen Änderungen zum Testen / Bewerten senden.
Raj
1
@ Raj, das Problem mit Express Edition ist, dass es kaum nutzbare Funktionen gibt. Wilson, da echte Funktionen für Oracle nur mit Enterprise Edition geliefert werden, ist die Oracle-Lizenzierung wahrscheinlich eines Ihrer größten Hindernisse, die ich noch nicht in Betracht gezogen habe, obwohl Shaulinator sie bis zu einem gewissen Grad berührt. Oracle bietet keine billigere Lizenz für Nicht-Produktionsumgebungen an , die mir bekannt ist. Sie haben also eine ziemlich teure Hürde, wenn Sie nur Lizenzen vergeben. Die Cloud ist möglicherweise nur aus Budgetgründen eine gute Option für Sie.
John Eisbrener

Antworten:

2

Ich stimme der Antwort von @Marcin Gminiski zu, dass Sie idealerweise eine Umgebung wünschen, die die in Ihrer Produktionsumgebung verfügbaren Funktionen nachahmt. Obwohl meine 2 Cent in dieser Angelegenheit alle auf "Was können Sie sich leisten?" Budgetbeschränkungen sind oft der Killer für einen guten Prozess. Was Sie sich also leisten können, bestimmt die Komplexität / Eleganz Ihrer endgültigen Lösung.

Können Sie (oder eher Ihre Abteilung / Ihr Manager) finanzielle Mittel auf den Tisch bringen, weil Sie erwähnen, dass Ihrer IT-Abteilung Zeit und Personal fehlen, um eine Umgebung für Sie zu schaffen? Die Beschaffung eines kleinen Betrags an jährlicher Finanzierung würde die Möglichkeit eröffnen, einen Blick auf die Cloud zu werfen. Cloud-Anbieter bieten alles, was Sie benötigen, und einige Lösungen enthalten sogar die entsprechenden Lizenzen, was im Zusammenhang mit Oracle häufig Ihre größten Kosten darstellt . Wenn Sie keine vertraulichen Daten in diese Umgebung werfen, wird die Cloud noch attraktiver.

Es gibt alle Arten von Cloud-Optionen, aber ich werde Sie auf Oracle RDS-Instanzen in AWS verweisen, nur weil sie eine Option für die Lizenz enthalten bieten. Sie können sie deaktivieren, wenn Sie sie nicht verwenden, um die Kosten weiter zu minimieren. Möglicherweise gibt es bei anderen Cloud-Anbietern ein Äquivalent, aber viele mir vertraute Cloud-Anbieter verlangen, dass Sie Ihre eigene Lizenz (BYOL) für Oracle-basierte Lösungen mitbringen, anstatt eine inklusive Lizenz anzubieten.

Der letzte Hinweis hier ist, dass eine AWS RDS-Instanz NUR die Datenbank ist, sodass jede App-Server-Infrastruktur, die Sie ebenfalls benötigen, zusätzlich berücksichtigt werden muss. Die Cloud ist eine großartige Option, wenn Sie eine schnelle Umgebung zum Testen der Funktionalität benötigen und gleichzeitig ein kostengünstiger Ansatz sind. Stellen Sie einfach sicher, dass Sie den Überblick behalten und die Dinge ausschalten, damit Sie nicht für inaktive Server bezahlen.

John Eisbrener
quelle
3

Normalerweise würde eine anständige Umgebung aus mindestens DEV -> TEST -> PRE-PROD -> PROD bestehen. Die Entwicklung hätte normalerweise Zugriff auf die Entwicklung in DEV, Akzeptanztests in TEST und IT auf PRE und PROD. Wenn Sie die Quellcodeverwaltung verwenden, vermeiden Sie Probleme beim gleichzeitigen Bearbeiten desselben Codes durch verschiedene Entwickler.

Technisch gesehen muss das Schema nur mit dem von prod identisch sein und es müssen keine Produktionsdaten unterhalb von pre-prod benötigt werden. Wenn Sie jedoch damit einverstanden sind, Produktdaten außerhalb der Produktumgebung zu haben, können Sie eine automatische Wiederherstellung in dev / test durchführen. Ich habe ähnliche Arbeit mit Visual Cron geleistet und es wirkt Wunder.

Wahrscheinlich müssen IT-Mitarbeiter Änderungen an Pre- und Prod vornehmen, um die Konformität zu gewährleisten. Damit dies einfacher und widerstandsfähiger wird, können Sie den Weg automatisierter Bereitstellungen beschreiten.

Marcin Gminski
quelle
2

Hier ist meine Erfahrung:

Ursprünglich hatten wir eine zentrale Entwicklungsumgebung namens simserver. Entwickler würden die Dinge gleichzeitig testen und es wurde chaotisch .

Jetzt hat jeder Entwickler einen lokalen simserverServer, den er zum Testen bereitstellt. Sobald sie sagen, dass es fertig ist, wird es an die geschoben quality assurance (QA) environment. Wir haben jiraTestfälle für alles, was überprüft werden muss, und wir testen die neuen Ergänzungen erneut (wir haben engagierte QS-Mitarbeiter, die keine Entwicklung durchführen; nur QA).

Dann wird es live geschoben.

Ein lokales zu simservererstellen ist logisch und einfach. Sobald Sie VMVorlagen fertig haben, stellen die Entwickler sie einfach auf ihrem PC bereit (ohne Zugriff auf den Rest des Netzwerks - nur auf ihren lokalen Computer).

FreeSoftwareServer
quelle
1
Ich denke, für den Simserver bedeutet er eine lokal gehostete SQL-Umgebung, die eine gewisse Spiegelung (einfache Sicherungswiederherstellung?) Der Produktumgebung aufweist ... Sie führen Entwicklungsaufgaben in dieser lokalen Umgebung aus. Jira ist eine Plattform für Projektmanagement und Issue-Tracking, mit der Entwickler und QS Änderungen verfolgen können. Ich denke, er gibt an, dass eine vorgeschlagene Änderung, die an einer lokalen Instanz vorgenommen wird, für dev an jira gesendet wird. Rezension. VM ist eine virtuelle Maschine.
Wes