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:
- Ich habe einige grundlegende Datenbankrechte in unserer Live - Datenbankumgebung (
create table
,create view
usw.). 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. - Ich habe einige der erweiterten Berechtigungen wie
create trigger
odercreate function
in 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. - 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?)
quelle
Antworten:
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.
quelle
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.
quelle
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
simserver
Server, den er zum Testen bereitstellt. Sobald sie sagen, dass es fertig ist, wird es an die geschobenquality assurance (QA) environment
. Wir habenjira
Testfä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
simserver
erstellen ist logisch und einfach. Sobald SieVM
Vorlagen fertig haben, stellen die Entwickler sie einfach auf ihrem PC bereit (ohne Zugriff auf den Rest des Netzwerks - nur auf ihren lokalen Computer).quelle