Sviluppare in modo efficiente e sicuro

Utilizzare queste procedure ottimali per garantire l'efficienza e la sicurezza del processo di sviluppo.

Usa ambiente rigido e controllo codice sorgente

L'uso esclusivo e rigoroso di ambienti separati e il controllo del codice sorgente è fondamentale per un processo di sviluppo pulito e sicuro.

Molti clienti utilizzano almeno due e spesso tre o più ambienti distinti. Gli ambienti di sviluppo, test, posizionamento nell'area intermedia e produzione sono tipici. Usa controllo rigoroso sulla promozione dall'ambiente all'ambiente.

Il sistema di controllo dell'origine deve garantire la coerenza degli artifact:

  • Metadati per la creazione delle tabelle
  • Dati di esempio e di origine
  • Codice ETL
  • Versioni e livelli di patch di PaaS

Si prenda in considerazione uno "steward metadati" che controlla l'evoluzione dei metadati e garantisce che tutti gli sviluppatori utilizzino le stesse definizioni. Esaminare inoltre la designazione di un "responsabile delle release" che controlla quando gli artifact vengono importati in un ambiente diverso dall'ambiente di sviluppo e chi conosce tutte le volte in cui viene utilizzato gli ambienti a scopo specifico.

Gli ambienti dedicati offre diversi vantaggi. Oltre a un ambiente di produzione, è opportuno valutare gli ambienti di sviluppo, test e prestazioni. Tali ambienti possono essere scalati in base alle esigenze.

In un ambiente dev:

  • Tutte le modifiche al codice, anche quelle minori, sono state sviluppate.
  • Viene eseguito un test delle unità (con dati di esempio, spesso un subset dei dati reali per le esecuzioni più rapide).
  • Il codice pronto per la promozione deve essere identificato come tale. È possibile implementare i processi per esaminare e promuovere automaticamente il codice a un ambiente di test o di produzione.

In un ambiente QA:

  • Consolidamento delle modifiche apportate nello sviluppo (solo modifiche convalidate per la promozione).
  • Convalida della coerenza delle modifiche (utilizzando gli stessi metadati, un'orchestrazione coerente e così via) e questo codice viene eseguito correttamente.
  • Non sono consentite modifiche al codice.

L'ambiente aggiuntivo utilizzato per i test delle prestazioni può essere vantaggioso. In un ambiente delle prestazioni:

  • Stabilire una baseline per le prestazioni del codice.
  • Modifiche limitate ai codici consentite solo da un team prestazioni per convalidare i miglioramenti delle prestazioni.
  • Identificare i punti critici, le indagini e segnalare le modifiche richieste in modo che possano essere implementate in Sviluppo.
  • Continuare a monitorare le prestazioni con tutti i codici certificati dal team QA per identificare le deviazioni delle prestazioni e risolvere i problemi.

È importante continuare a monitorare le prestazioni nell'ambiente di produzione. Il peggioramento delle prestazioni è talvolta un'avvertenza del peggioramento dell'ambiente. In particolare, Oracle consiglia di controllare i piani di esecuzione utilizzando SQL Plan Management (SPM). Le modifiche al piano di esecuzione in produzione possono causare errori e i caricamenti di tabelle causano rischi di modifica del piano di esecuzione.

Automatizzare i task di amministrazione

I task amministrativi manuali richiedono tempo e aggiungono rischio:

  • Reimpostare manualmente l'ambiente per riprovare un caricamento (a causa di un errore di codice, di un bug del prodotto, di una modifica del codice e così via) si basa su sviluppatori che eseguono le istruzioni SQL manualmente.
  • I processi manuali sono costituiti da un errore e possono ritardare ulteriormente il tentativo successivo.
  • I processi manuali sono lenti: gli sviluppatori devono prestare particolare attenzione con ciò che accade e perdono una notevole quantità di tempo per controllare il fatto che abbiano effettivamente fatto.
  • Gli errori sono costosi: la necessità di correggere gli errori (possibile caricare di nuovo i dati cancellati) può ritardare il lavoro di sviluppo.
  • L'inserimento dei nuovi sviluppatori è più lento e comporta un rischio poiché devono essere formati da processi manuali.

I task di amministrazione devono essere completamente automatici in modo che gli sviluppatori possano impostare alcuni parametri ed eseguire un job già convalidato per eseguire i task corretti ogni volta.

Considerare l'eventualità di rendere automatici i seguenti task:

  • Reimposta i dati, le variabili e i parametri di ambiente per consentire il nuovo tentativo di caricamento.
  • Ambienti di ricreazione: strumenti e patch di PaaS quando necessario, metadati, dati e codice PaaS. Deve includere la possibilità di eseguire un caricamento iniziale dell'ambiente di destinazione.
  • Rimuove i log di Oracle Data Integrator e i report degli scenari (con conseguente miglioramento delle prestazioni): lo strumento OdiPurgeLog disponibile nei package consente di creare rimozioni dedicate agli scenari e alle pianificazioni.
  • Rimuovere le tabelle intermedie utilizzate per i caricamenti la cui esecuzione è riuscita.
  • Rimuovere o rilocare i file caricati.
  • Quando si applicano le patch, utilizzare le installazioni in background (processo di applicazione delle patch ai record in un ambiente di sviluppo e quindi ripetizione in altri ambienti).

Gestisci applicazione patch

L'applicazione delle patch è importante per mantenere aggiornati i sistemi con le correzioni di sicurezza e bug più recenti, ma un'area di applicazione patch gestita in modo insoddisfacente può creare vulnerabilità e causare eventi di tempo di inattività imprevisti.

Oracle consiglia:

  • Convalidare chi nell'organizzazione riceverà e rispondere agli alert da Oracle sull'applicazione delle patch.
  • Documentare il livello di applicazione di patch di tutti gli ambienti. Tenere presente che le patch e l'aggiornamento di alcuni servizi vengono eseguiti automaticamente da Oracle, ma potrebbe essere necessario applicare manualmente i patch ai servizi non nativi e in particolare a qualsiasi istanza in locale.
  • Definire le finestre di applicazione delle patch; Per l'applicazione manuale delle patch, identificare le finestre temporali con minore interruzione del funzionamento per gli utenti.

Segui le migliori prassi dell'account utente

Attenersi alle procedure ottimali con i conti utente per garantire la sicurezza dei dati, degli ambienti e delle integrazioni.

Ogni sviluppatore deve disporre del proprio account utente Oracle Data Integrator, anche se dispone dei privilegi di supervisore. Non condividere gli account. Gli account utente separati migliora la comunicazione e garantisce la responsabilità:

  • Gli oggetti bloccati mostreranno gli utenti che modificano l'oggetto.
  • Gli ultimi aggiornamenti mostrano l'autore dell'ultima modifica di un oggetto e la data dell'ultima modifica.

Quando Oracle Data Integrator richiede l'accesso a un database:

  • Creare un utente di database dedicato in modo specifico per Oracle Data Integrator. Non riutilizzare l'account di un singolo utente o un account utilizzato da un altro servizio.
  • L'utente Oracle Data Integrator deve essere il proprietario dello schema intermedio (utilizzato per eseguire operazioni di creazione, eliminazione, inserimento, aggiornamento ed eliminazione).
  • L'utente Oracle Data Integrator deve disporre dei privilegi limitati all'uso effettivo per gli altri schemi (select, insert, update, and delete).

Usa utility collaudate

Alcuni strumenti sono più efficaci in modo che altre persone: siano collegati all'ambiente e documentano lo standard in modo che i nuovi membri del team conoscano l'utilizzo.

Ad esempio:

  • Generazione delle chiavi: esistono diversi formati per le chiavi. Assicurarsi di documentare il formato di chiave corretto che gli sviluppatori debbano utilizzare (ad esempio, potrebbe richiedere l'uso del formato RSA e garantire il formato OpenSSH).
  • Utility ZIP: non tutto il contenuto viene compresso allo stesso modo di utility diverse. Assicurarsi di avere il controllo sull'algoritmo di compressione utilizzato per comprimere i file. Oracle consiglia di utilizzare 7Zip.