Ambiente di gestione temporanea del database per personale non IT


10

Sto proponendo un ambiente di gestione temporanea del database al mio reparto IT. L'idea è che una persona non IT come me (analista di dati di lavori pubblici) avrebbe un posto dove testare le soluzioni e quindi implementarle da sole nell'ambiente live o chiedere all'IT di implementarle se necessario. Esistono alcuni motivi / scenari in cui questo ambiente sarebbe utile:

  1. Ho alcuni privilegi di database di base nel nostro ambiente di database dal vivo ( create table, create view, ecc). Apporto modifiche allo schema circa una volta alla settimana, ma mi sembra folle testare e implementare queste modifiche in un ambiente live. Ci sono innumerevoli dipendenze dal database, quindi se qualcosa va storto, potrebbe essere disastroso. Preferirei piuttosto testare le cose in anticipo in un ambiente separato.
  2. Non ho alcuni dei privilegi più avanzati come create triggero create functionnel database live. Questo va bene, ma ho alcuni problemi che potrebbero essere risolti da trigger e / o funzioni. Intendo proporre di ottenere queste autorizzazioni nell'ambiente di gestione temporanea in modo da poter sviluppare e testare alcune idee e, se funzionano, proporre all'IT di implementarle nell'ambiente live.
  3. In generale, il mio dipartimento IT non ha il tempo o le risorse per sviluppare soluzioni per me. È davvero così semplice. Quindi, se posso fare da solo le gambe, allora i miei problemi hanno molte più probabilità di essere risolti.

L '"ambiente di gestione temporanea per il personale non IT" mi sembra un approccio abbastanza solido, ma ad essere sincero, ho appena inventato l'idea. Non ho idea di come ciò avvenga in genere nel mondo IT / database.

Esiste un tipo di pratica IT / database consolidata adatta a questo scenario? (Sono sulla strada giusta quando propongo un ambiente di gestione temporanea del database per il personale non IT?)


1
Ci sono dati super sensibili nel database a cui non dovresti accedere? Sembrerebbe facile aggirare il fatto che ti inviino un backup dei DB da ripristinare sul tuo personal computer con cui puoi giocare senza paura di interrompere la produzione. Ciò non richiede risorse aggiuntive e tutto ciò che devono fare è spedire il backup. Ciò dipende tuttavia in larga misura dalle esigenze di sicurezza del proprio ambiente.
Shaulinator,

1
Quindi penso che un backup e un ripristino da utilizzare nel proprio ambiente sia una soluzione semplice e a basso costo. Idealmente, però, dovresti avere più ambienti che vanno in livelli di potenza di elaborazione che si imitano l'un l'altro e mentre apporti le modifiche, li graduerai lentamente in tutti gli ambienti. Abbiamo uno sviluppatore in cui giocare e cambiare, promuovere per testare dove le cose ottengono il QA, quindi un altro ambiente che è quasi 1: 1 di Prod per hardware, e quindi Prod dove le cose vanno in diretta. Questo è ovviamente costoso. Avere un altro database sul server simile è un'altra idea.
Shaulinator,

1
Preferisco mantenere gli ambienti totalmente separati, mantenendo la possibilità di causare un problema al minimo nel caso in cui si abbia una query di fuga.
Shaulinator,

1
L'edizione Oracle database express è probabilmente la tua scelta facile. Installalo sul tuo computer, imposta le tabelle come sul tuo db principale. Carica con dati rappresentativi e puoi sviluppare / testare quanto vuoi. Una volta che sei pronto, puoi inviare loro le modifiche per testare / valutare.
Raj,

1
@Raj, il problema con Express Edition è che al suo interno non c'è praticamente alcuna funzionalità utilizzabile. Wilson, poiché qualsiasi funzionalità reale per Oracle viene fornita solo con Enterprise Edition, la licenza Oracle è probabilmente uno dei maggiori ostacoli che non ho ancora visto considerato, sebbene Shaulinator lo tocchi in una certa misura. Oracle non offre una licenza più economica per l' opzione di ambienti non di produzione di cui sono a conoscenza, quindi hai un ostacolo piuttosto costoso con le sole licenze. Il cloud può essere una buona opzione per te a causa di problemi di bilancio.
John Eisbrener,

Risposte:


2

Sono d'accordo con la risposta di @Marcin Gminiski che idealmente desideri avere un ambiente che imiti la funzionalità disponibile nel tuo ambiente di produzione. Anche se i miei 2 centesimi sulla questione si riducono a "Cosa puoi permetterti?" I vincoli di budget sono spesso i killer di un buon processo, quindi davvero ciò che puoi permetterti determinerà la complessità / eleganza della tua soluzione finale.

Perché dici che il tuo dipartimento IT non ha tempo e personale per organizzare un ambiente per te, sei (o meglio è il tuo dipartimento / manager) in grado di portare fondi al tavolo? Procurarsi una piccola quantità di finanziamenti annuali aprirebbe la possibilità di guardare al cloud. I fornitori di servizi cloud offrono tutto ciò di cui hai bisogno e alcune soluzioni includono persino le licenze appropriate, che spesso rappresentano il costo maggiore in relazione a Oracle. Se non stai lanciando dati sensibili in questo ambiente, il cloud diventa ancora più attraente.

Esistono tutti i tipi di opzioni cloud disponibili là fuori, ma ti indirizzerò verso le istanze Oracle RDS su AWS solo perché offrono un'opzione Licenza inclusa e puoi disattivarla quando non la utilizzi per minimizzare ulteriormente i costi. Un equivalente potrebbe esistere su altri provider cloud, ma molti provider cloud con cui ho familiarità richiedono che tu porti la tua licenza (BYOL) per soluzioni basate su Oracle invece di offrire una licenza inclusiva.

Nota finale qui, un'istanza di AWS RDS è SOLO il database, quindi qualsiasi infrastruttura del server delle app di cui hai bisogno dovrebbe essere tenuta in considerazione. Il cloud è un'ottima opzione se hai bisogno di un ambiente rapido per testare la funzionalità, il tutto pur essendo un approccio economico; assicurati di tenerti aggiornato e di spegnere le cose in modo da non pagare per i server inattivi.


3

Di solito un ambiente decente sarebbe costituito da almeno DEV -> TEST -> PRE-PROD -> PROD. Lo sviluppo avrebbe normalmente accesso allo sviluppo in DEV, test di collaudo in TEST e IT da rilasciare in PRE e PROD. Se si utilizza il controllo del codice sorgente, si eviteranno problemi durante la modifica dello stesso codice da parte di sviluppatori diversi contemporaneamente.

Tecnicamente hai solo bisogno che lo schema sia lo stesso di in prod e non hai bisogno di dati di produzione sotto pre-prod, ma se sei d'accordo con dati di prod al di fuori dell'ambiente di prod t potresti avere un ripristino automatico in dev / test. Ho fatto un lavoro simile con Visual Cron e funziona a meraviglia.

Probabilmente, al fine di rimanere conforme, il personale IT dovrà rilasciare le modifiche in pre e prod in modo da renderlo più semplice e più resistente, è possibile seguire il percorso delle distribuzioni automatizzate.


2

Ecco la mia esperienza:

Inizialmente, avevamo un ambiente di sviluppo centrale chiamato simserver. Gli sviluppatori testano le cose contemporaneamente e diventa confuso .

Ora, ogni sviluppatore ha un locale in simservercui viene distribuito per il test. Una volta che dicono che è pronto, viene spinto al quality assurance (QA) environment. Abbiamo jiracasi di test per tutto ciò che deve essere verificato, inoltre testiamo di nuovo le nuove aggiunte (abbiamo personale addetto al controllo qualità che non svolge attività di sviluppo; solo controllo qualità).

Quindi viene spinto in diretta.

Creare un locale simserverè logico e facile. Una volta VMpronti i modelli, gli sviluppatori li distribuiscono semplicemente sul proprio personal computer (senza accesso al resto della rete, solo sul proprio computer locale).


1
Penso che, per il simserver, intenda un ambiente SQL ospitato localmente che ha un certo livello di mirroring (semplice ripristino di backup?) Dell'ambiente prod ... Fai attività di sviluppo su quell'ambiente locale. Jira è una piattaforma di gestione dei problemi e di gestione dei progetti che consente agli sviluppatori e al QA di tenere traccia delle modifiche. Penso che stia affermando che una modifica proposta che viene fatta su un'istanza locale viene pubblicata su jira per dev. revisione. La macchina virtuale è una macchina virtuale.
Wes
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.