Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
OPS06-BP02 Implementazioni di test
Testa le procedure di rilascio in pre-produzione utilizzando la stessa configurazione di implementazione, i controlli di sicurezza, i passaggi e le procedure utilizzati nell'ambiente di produzione. Verifica che tutte le fasi implementate siano state completate come previsto, ad esempio l'ispezione di file, configurazioni e servizi. Verifica ulteriormente tutte le modifiche con test funzionali, di integrazione e di carico, oltre ad attivare tutte le attività di monitoraggio come i controlli dell'integrità. Eseguendo questi test, è possibile identificare tempestivamente i problemi di implementazione con l'opportunità di pianificarli e mitigarli prima del passaggio nell'ambiente di produzione.
Puoi creare ambienti paralleli temporanei per testare ogni modifica. Automatizza l'implementazione degli ambienti di test utilizzando il modello Infrastructure as code (IaC) per ridurre la quantità di lavoro necessaria e garantire stabilità, coerenza e una distribuzione più rapida delle funzionalità.
Risultato desiderato: la tua organizzazione adotta una cultura di sviluppo che include il test delle implementazioni. Ciò garantisce che i team siano concentrati sulla realizzazione di valore aziendale anziché sulla gestione delle release. I team vengono coinvolti fin dall'identificazione dei rischi di implementazione per determinare il percorso di mitigazione appropriato.
Anti-pattern comuni:
-
Durante le release di produzione, le implementazioni non testate causano problemi frequenti che richiedono una risoluzione mirata e l'escalation.
-
La tua release contiene porzioni del modello Infrastructure as code (IaC) che aggiornano le risorse esistenti. Non sei sicuro che l'IaC funzionerà correttamente e non avrà un impatto sulle risorse.
-
Viene implementata una nuova funzionalità interessante nella tua applicazione. Non funziona come previsto e non c'è visibilità finché non viene segnalata dagli utenti interessati.
-
I certificati vengono aggiornati. Si installano accidentalmente i certificati sui componenti sbagliati, il che non viene rilevato e influisce sui visitatori poiché non è possibile stabilire una connessione sicura al sito web.
Vantaggi dell'adozione di questa best practice: test approfonditi in fase di pre-produzione delle procedure di implementazione e delle modifiche da queste introdotte riducono al minimo il potenziale impatto sulla produzione causato dalle fasi di implementazione. Ciò aumenta la fiducia durante il rilascio in produzione e riduce al minimo la necessità di supporto operativo senza rallentare la velocità di distribuzione delle modifiche apportate.
Livello di rischio associato se questa best practice non fosse adottata: elevato
Guida all'implementazione
Testare il processo di implementazione è importante quanto testare le modifiche derivanti dall'implementazione. Ciò può essere ottenuto testando le fasi di implementazione in un ambiente di pre-produzione che rispecchi il più fedelmente possibile quello di produzione. I problemi più comuni, come fasi di implementazione incomplete o contenenti errori o configurazioni errate, possono essere individuati di conseguenza prima di passare all'ambiente di produzione. Inoltre, è possibile testare le fasi di ripristino.
Esempio del cliente
Nell'ambito della propria pipeline di integrazione e distribuzione continua (CI/CD), AnyCompany Retail esegue le fasi definite necessarie per rilasciare aggiornamenti dell'infrastruttura e del software per i propri clienti in un ambiente simile a quello di produzione. La pipeline comprende controlli preliminari per rilevare le deviazioni (il rilevamento delle modifiche alle risorse eseguite al di fuori dell'IaC) nelle risorse prima dell'implementazione, nonché per convalidare le azioni che l'IaC intraprende al suo avvio. Convalida le fasi dell'implementazione, ad esempio la verifica che determinati file e configurazioni siano presenti e che i servizi siano in esecuzione e rispondano correttamente ai controlli dell'integrità sull'host locale, prima di effettuare nuovamente la registrazione sul bilanciatore del carico. Inoltre, tutte le modifiche attivano una serie di test automatici, come test funzionali, di sicurezza, di regressione, di integrazione e di carico.
Passaggi dell'implementazione
-
Esegui controlli di pre-installazione per rispecchiare l'ambiente di pre-produzione in produzione.
-
Utilizza il rilevamento della deriva per rilevare quando le risorse sono state modificate all'esterno. AWS CloudFormation
-
Utilizzate i set di modifiche per verificare che l'intento di un aggiornamento dello stack corrisponda alle azioni AWS CloudFormation intraprese all'avvio del set di modifiche.
-
-
Ciò attiva una fase di approvazione manuale in AWS CodePipeline per autorizzare l'implementazione nell'ambiente di preproduzione.
-
Utilizza configurazioni di distribuzione, come AWS CodeDeploy AppSpeci file, per definire le fasi di distribuzione e convalida.
-
Ove applicabile, esegui AWS CodeDeploy l'integrazione con altri AWS servizi o AWS CodeDeploy con prodotti e servizi dei partner.
-
Monitora le distribuzioni utilizzando Amazon e CloudWatch le AWS CloudTrail notifiche SNS degli eventi di Amazon.
-
Esegui test automatici post-implementazione, inclusi test funzionali, di sicurezza, di regressione, di integrazione e di carico.
-
Risoluzione dei problemi relativi alle implementazioni.
-
La corretta convalida dei passaggi precedenti dovrebbe attivare un flusso di lavoro di approvazione manuale per autorizzare l'implementazione nell'ambiente di produzione.
Livello di impegno per il piano di implementazione: elevato
Risorse
Best practice correlate:
Documenti correlati:
Video correlati:
Esempi correlati: