Principi di progettazione dell'eccellenza operativa

Al centro del pilastro Di eccellenza operativa sono procedure DevOps che garantiscono la qualità del carico di lavoro tramite flussi di lavoro standardizzati e coesione del team. Questo pilastro definisce le procedure operative per le procedure di sviluppo, l'osservabilità e la gestione delle versioni. L'obiettivo è ridurre al minimo la varianza del processo, le probabilità di errore umano e l'interruzione dei clienti. Per valutare l'integrità operativa, iniziare con queste domande:

  • Eseguire operazioni con disciplina?
  • I clienti usano il carico di lavoro con la stima massima?
  • Come si impara dall'esperienza e raccolti i dati per migliorare continuamente?

Le operazioni del carico di lavoro possono essere devolve in procedure caotice quando non esiste una proprietà o una leadership chiara. In questo tipo di ambiente, i team spesso usano metodi eseguiti con sforzi elevati e producono risultati bassi, che comportano un'esperienza utente scarsa. Questi approcci soddisfano solo gli obiettivi a breve termine. I vantaggi a lungo termine vengono realizzati attraverso la valutazione continua e gli investimenti strategici.

I principi di progettazione forniscono linee guida per le strategie operative che devono essere considerate per affrontare le cause sottostanti e non solo trattare i sintomi. Iniziare con gli approcci consigliati e quindi osservare cosa funziona e cosa non consente di identificare le aree di miglioramento. Dopo aver impostato la strategia, continuare a guidare l'azione usando l'elenco di controllo Di eccellenza operativa.

I requisiti operativi di un carico di lavoro sono importanti come i requisiti aziendali. I processi efficienti garantiscono che il carico di lavoro raggiunga i risultati aziendali entro i vincoli di conformità, indipendentemente dal fatto che la conformità sia organizzativa o esterna. La chiave consiste nel trovare la ripetibilità con la coerenza.

Gli obiettivi del pilastro Dell'Eccellenza operativa sono quello di fare la cosa giusta, di farlo in modo corretto e di risolvere i problemi corretti come team.

Se si soddisfano questi obiettivi, i carichi di lavoro verranno eseguiti in modo affidabile e prevedibile anche durante i tempi di modifica. L'incapacità di soddisfare i requisiti operativi può causare distribuzioni non riuscite, esperienza utente incoerente e costi aggiunti che potrebbero essere stati evitati tramite la pianificazione corretta e l'esecuzione semplificata.

Adottare le impostazioni cultura DevOps

Icona obiettivo Consentire ai team di sviluppo e operazioni di migliorare continuamente la progettazione e i processi del sistema lavorando insieme a una mentalità di collaborazione, responsabilità condivisa e proprietà.

DevOps è una community di pratica in cui la diversità della prospettiva e delle competenze guida verso una missione. Teams deve promuovere un ambiente collaborativo di conoscenze condivise anziché l'apprendimento silo. Usare funzioni condivise per superare i vincoli delle risorse.

Una buona cultura DevOps prospera sulla responsabilità condivisa. I team di sviluppo e operazioni devono allineare gli obiettivi e le priorità alle aspettative dei propri clienti e tenere a mente l'attenzione aziendale. Il team di sviluppo deve coinvolgere il team operativo nel ciclo di feedback, in modo che i miglioramenti siano basati su upstream e altri team beneficino allo stesso modo. Al contrario, i team operativi sono responsabili del successo del team di sviluppo nei risultati aziendali condividendo risorse e feedback rilevanti per il carico di lavoro.

Allo stesso tempo, le procedure devOps applicano linee chiare di proprietà e responsabilità a ogni team. Indipendentemente dalla posizione in cui viene eseguita l'applicazione, il team del carico di lavoro è responsabile di tale applicazione.

DevOps ottimizza le attività operative in modo che siano efficaci ma non complesse. Per sfruttare il vantaggio completo di DevOps, le impostazioni cultura devono ottimizzare i processi tramite la tecnologia e avere processi per le persone dell'organizzazione per promuovere la comunicazione trasparente.

Approccio Vantaggi
Usare sistemi e strumenti comuni che promuovono un ambiente collaborativo per la comunicazione e il rilevamento dello stato di avanzamento. Gli strumenti e i processi comuni consentono la comunicazione trasparente. Sia i team di sviluppo che di operazioni possono trarre vantaggio dalla consapevolezza della situazione in vari ambienti, dai problemi di supporto comuni e dalle sfide complessive e dalle vittorie.

Teams ha già familiarità con i percorsi di escalation esistenti se si verifica un evento imprevisto.

Un backlog condiviso rende chiare le priorità, ad esempio l'uso di nuove funzionalità o la correzione di bug.
Creare una mentalità continua di apprendimento e sperimentazione durante il ciclo di sviluppo.

Supportare la condivisione delle conoscenze tra i team e gestire la documentazione per il riutilizzo.

Condurre analisi senza colpa e debrief post-rilascio e/o revisioni post-evento imprevisto.
Attraverso meccanismi di sperimentazione, ad esempio test A/B e sviluppo di prove di concetto, è possibile incoraggiare l'innovazione mantenendo bassi i costi.

Condividere le conoscenze tramite la collaborazione che rende il team esperto in approcci di progettazione, strumenti e processi.

L'esecuzione di retrospettive dopo un progetto consente di identificare le aree per migliorare e celebrare il successo.
Adottare procedure agile del settore comprovate che si concentrano sull'ottimizzazione delle azioni.

Cercare opportunità di "spostamento a sinistra" nelle operazioni per processi manuali e automatizzati, procedure di distribuzione e garanzia della qualità e osservabilità.
Le procedure di sviluppo agile portano a cicli di vita delle versioni più brevi, che sono un indicatore del valore aziendale.

Rilevare, risolvere e prevenire i problemi in precedenza è spesso meno intrusivo al processo.
Impostare gli standard per tutte le procedure operative e di sviluppo e verificarle e convalidarle a una frequenza regolare.

Queste procedure includono attività di routine, processi fuori banda, esercitazioni di emergenza e situazioni, scelta di strumenti, procedure di monitoraggio, piani di competenza e anche comunicazione con stakeholder e divulgazione dei clienti.

Essere intenzionali ed espliciti sulle decisioni.
Gli standard aggiungono stimabilità alle operazioni e rendono scalabili i processi e le procedure. La convalida degli standard è un ottimo modo per disegnare punti di miglioramento.

Prepararsi per situazioni di emergenza e ripristino eseguendo esercitazioni regolari.

Eseguire con precisione e abilitare la governance per evitare anomalie che comportano rischi.
Sfruttare i team operativi centralizzati con competenze specializzate e una vasta esperienza. È possibile usare risorse condivise sia per le operazioni che per le risorse.

Anche se si è proprietari del carico di lavoro, il team centralizzato consente di acquisire competenze multifunzionali, ad esempio la gestione degli eventi imprevisti, una prospettiva proattiva sul monitoraggio e l'esternalizzazione delle competenze con fiducia.

Stabilire standard di sviluppo

Icona obiettivo Ottimizzare la produttività standardizzando le procedure di sviluppo, applicando i cancelli di qualità e monitorando lo stato di avanzamento e il successo attraverso la gestione sistematica delle modifiche.

Il team di sviluppo è responsabile della risoluzione dei problemi del carico di lavoro prima del rilascio con un attrito minimo. Tenere presente l'efficienza dello sviluppatore e ottimizzare i cicli di turnaround veloci, dalla codifica ai risultati dei test. Implementare processi efficaci e di dimensioni corrette che pianificano e standardizzano le attività tecniche e guidano anche il consenso all'interno del team e degli stakeholder.

Approccio Vantaggi
Funzionalità del carico di lavoro dei documenti e acquisire i vantaggi dei clienti.

Derivare l'ambito e i requisiti funzionali e non funzionali dell'architettura.

Creare modelli di stima di ridimensionamento per segnalare l'ambito e il costo delle attività coinvolte.
Le specifiche valide tagliano i costi operativi e le probabilità di errore supportando cicli di sviluppo più produttivi e semplificati.

Gli sviluppatori comprendono i criteri di progettazione tecnica, obiettivi e completamento prima di avviare il ciclo di codifica.

Una buona documentazione facilita la comunicazione ripetibile e l'onboarding dei nuovi membri del team.
Usare una metodologia di sviluppo software standard del settore ottimizzata in modo appropriato per le esigenze del carico di lavoro e delle dimensioni del team.

Gestire un backlog condiviso tra tutti i ruoli.
L'adozione di una metodologia nota imposta il ritmo del progetto. Rimuove le ambiguità dei processi fornendo ai membri del team aspettative chiare e responsabilità.

Verificando un elenco comune, le attività possono essere affinate e con priorità con le procedure standard. Il progetto avrà migliori probabilità di essere recapitato in tempo.

Le metodologie standard consentono la gestione dei rischi. Con revisioni cardine granulari, gli sviluppatori possono risolvere potenziali problemi prima di diventare showtopper.
Usare il controllo sorgente unificato per tutti i codici, gli script, i modelli di distribuzione, le definizioni della pipeline e la documentazione correlata.

La strategia di branching deve supportare la versione libera da attrito di funzionalità indipendenti e indipendenti, correzioni di bug e hotfix.

Usare le conoscenze condivise nell'organizzazione per creare la strategia di ramo e i processi di distribuzione.
L'uso corretto del controllo del codice sorgente è fondamentale per supportare modifiche e versioni simultanee .

Gestire un flusso di lavoro ripetibile per rilasciare modifiche di varie dimensioni e rischi, condurre revisioni peer come parte del processo e mantenere un audit trail.
Avere processi di garanzia della qualità che sottolineano i test all'inizio del ciclo di vita dello sviluppo.

Includere tutti gli artefatti per le procedure di test pianificate, inclusi i componenti dell'applicazione, l'infrastruttura e le operazioni del piano dati che fanno parte di una versione di funzionalità o di un aggiornamento.

Trattare gli artefatti come non modificabili quando vengono promossi tramite ambienti, ottenendo fiducia ogni volta che passano attraverso un cancello di qualità.

Dove pratica, automatizzare i controlli di routine.
La garanzia di qualità garantisce che i requisiti funzionali e non funzionanti siano stati soddisfatti con fiducia, che comporta un impatto positivo sul cliente.

La presenza di piani di test garantisce la qualità e la completezza e prende in considerazione i possibili casi di errore.

Con i cancelli di qualità è possibile applicare le procedure consigliate per ridurre i rischi.

L'immutabilità offre fiducia perché garantisce che il sistema testato sia esattamente quello che si rilascia.

I cicli di test bloccano in modo efficiente lo stato di avanzamento a meno che non vengano soddisfatti i criteri di qualità.
Guidare la coerenza usando guide e strumenti di stile, che applicano convenzioni e adottano una catena di strumenti comune per lo sviluppo, il test e la comunicazione con gli stakeholder.

Gli standard tecnologici per gli sviluppatori devono richiedere l'implementazione di modelli, progettazione API, registrazione, gestione delle eccezioni e altri processi.
La coerenza nel codice determina la leggibilità e una manutenzione più semplice. Riduce anche la complessità e abilita il riutilizzo del codice.

Gli strumenti e le convenzioni comuni aiutano anche i team a ottimizzare i processi senza la necessità di gestire scelte occasionali.
In modo coerente e deliberatamente insistere sulla documentazione per sviluppatori del codice come scritto. La documentazione del codice chiaro garantisce che la logica e la funzionalità vengano facilmente comprese quando è necessario rivedere il codice precedente o quando i team di sviluppo ruotano.
Segnalare lo stato di avanzamento e le tendenze per misurare l'efficienza. Le tendenze nei bug, gli aggiornamenti non riusciti, il tempo di distribuzione, i cicli di feedback e altre metriche vengono pubblicati e ciò determina miglioramenti.

Evolvere le operazioni con osservabilità

Icona obiettivo Ottenere visibilità sul sistema, derivare informazioni dettagliate e prendere decisioni basate sui dati.

Creare impostazioni cultura che migliorano continuamente la qualità monitorando il carico di lavoro e prendendo in considerazione tutti i pilastri di Azure Well-Architected Framework. Consentire al team e agli stakeholder di prendere decisioni a breve e a lungo termine in molti aspetti fornendo i dati, le statistiche e le tendenze necessari. Informazioni sui dati e sui miglioramenti dell'unità.

Le operazioni create ai fini dell'osservabilità sono fondamentali per la manutenzione proattiva dell'applicazione, della qualità e della sicurezza, della pianificazione della capacità e della gestione dei prodotti.

Un aspetto fondamentale del monitoraggio è l'uso della modellazione dell'integrità da parte dell'applicazione per prevedere i problemi prima che diventino eventi imprevisti e influiscano sull'esperienza dei clienti. Il monitoraggio efficiente riduce i cicli reattivi spesi per la gestione degli eventi imprevisti.

Approccio Vantaggi
Creare un sistema di monitoraggio con uno stack e flussi personalizzati.

Considerare il sistema di monitoraggio come una dimensione del carico di lavoro separato dalla relativa utilità. Lo stack deve coprire tutti i livelli, inclusi i processi di infrastruttura, integrità dell'applicazione e compilazione e rilascio.

L'acquisizione o il campionamento dei dati aziendali non rientra nell'ambito delle implementazioni di osservabilità.
Separare gli stack di monitoraggio e carico di lavoro per separare i requisiti funzionali e l'osservabilità e rendere possibile l'evoluzione indipendente. Le modifiche apportate al codice non devono influire sul monitoraggio e viceversa.

Poiché i requisiti di osservabilità sono separati dai requisiti funzionali, i dati aziendalinon verranno interrotti monitorando le modifiche o le interruzioni della configurazione.
Favorire la coerenza nel processo di raccolta per ogni tipo di origine dati.

Standardizzare la strumentazione nel codice usando gli standard di settore per la telemetria, la raccolta di metriche dell'infrastruttura e gli strumenti.
La coerenza impedisce la varianza nel rilevamento e nella misurazione perché la familiarità tra risorse simili riduce il tempo impiegato per correlare e analizzare i dati. Si ha una prospettiva olistica per anticipare i problemi.

Generare dati di telemetria dal codice dell'applicazione che correla i punti chiave del flusso di esecuzione e offre una visualizzazione end-to-end a diversi livelli di granularità. Classificare in ordine di priorità le azioni in base al livello di gravità e comprendere il contesto in base al livello di dettaglio. Queste informazioni sono fondamentali per la risoluzione dei problemi.
È responsabilità dell'emissione e della raccolta dei dati, anche quando i sink di dati sono condivisi da più team e gestiti da team centrali. Localizzando i dati di monitoraggio nell'ambiente del carico di lavoro, il team può accedere ai log e alle metriche per risolvere i problemi del carico di lavoro.
Raccogliere solo dati sufficienti e conservarli per un tempo sufficiente.

Prendere in considerazione i compromessi sui costi associati alla registrazione e all'archiviazione dei dati.
La raccolta di dati intenzionali consente di ottimizzare i costi finanziari e operativi associati alla raccolta di più dati di quanto necessario.

Ridurre al minimo il rumore ed evitare calcoli intensivi durante l'analisi e ridurre il costo di archiviazione dei dati non più necessari.
Distinguere tra i diversi segnali di monitoraggio: profili, log, metriche e tracce. Usare ogni segnale per lo scopo corretto.

Classificare in ordine di priorità l'uso delle metriche per attivare azioni basate su misurazioni numeriche.

Usare i profili per ottenere visibilità di livello inferiore, ad esempio l'allocazione della memoria, nel sistema.

Riservare l'uso di log e tracce per fornire contesto per flussi e dipendenze.
Usando i segnali a scopo corretto, è possibile evitare un'implementazione inefficiente del sistema di monitoraggio.

Ad esempio, l'uso dei log per le azioni richiede l'analisi. È possibile raggiungere gli stessi obiettivi più velocemente con le metriche.
Aggregare e visualizzare i dati nei dashboard per presentare i dati di monitoraggio destinati ai destinatari e tenere presente il contesto aziendale.

Usare dashboard situazioni per visualizzare i dati per favorire la consapevolezza tra gli stakeholder.

Usare dashboard operativi e cartelle di lavoro con funzionalità di drill-down per le attività degli operatori come la risposta agli eventi imprevisti. Aggiornare spesso i dashboard e fornire dati granulari.
Con le visualizzazioni è possibile analizzare le tendenze, tenere traccia degli obiettivi aziendali e gestire gli eventi imprevisti.

I dashboard personalizzati per l'interesse del cliente rendono rilevante l'interpretazione e accelerano il tempo di rilevamento e azione.
Rendere gli avvisi interattivi notificando i ruoli responsabili con descrizioni standardizzate e livelli di gravità. Fornire informazioni che vengono confrontate da varie origini e tenere traccia delle deviazioni dagli obiettivi aziendali.

Attivare avvisi solo per gli eventi imprevisti che richiedono un'azione.

Cercare avvisi proattivi e provocatori che avviano azioni prima che uno stato danneggiato diventi un errore.
Gli avvisi portano attenzione a eventi significativi, come definito dall'organizzazione.

Un sistema di avviso valido identifica le azioni e la gravità e fornisce solo dati sufficienti per favorire chiarezza e scopo. Gli operatori possono iniziare in caso di correzione senza ritardi.

Eseguire la distribuzione con fiducia

Icona obiettivo Raggiungere lo stato desiderato della distribuzione con prevedibilità.

Creare una supply chain del carico di lavoro che consenta di raggiungere in modo coerente l'obiettivo della prevedibilità in tutti gli ambienti, tra le piattaforme di hosting, le applicazioni, i dati e le risorse di configurazione del carico di lavoro. Il meccanismo di distribuzione deve essere in grado di automazione, test, monitoraggio e controllo delle versioni. Deve essere modularizzato e pronto per l'esecuzione su richiesta. Non deve essere rappresentato come processo end-to-end monolitico. La supply chain non è necessariamente per un'esecuzione più rapida, ma per ottenere coerenza e auto-documentazione su più iterazioni.

Il team del carico di lavoro è responsabile della supply chain in relazione al proprio carico di lavoro.

Approccio Vantaggi
Usare Infrastructure as Code (IaC) per definire gli aspetti ripetibili della supply chain pronti per la produzione.

Preferisce approcci dichiarativi rispetto ai metodi imperativi.
Le tecnologie IaC dichiarative sono progettate tenendo conto dell'automazione e della riutilizzabilità. È possibile eseguire l'offload delle distribuzioni dell'infrastruttura da singoli utenti in strumenti e ottenere una qualità coerente.

Dal punto di vista dell'infrastruttura, la riduzione delle scelte tecnologiche comporta la rimozione della varianza negli strumenti e semplifica il rilevamento della deriva della configurazione. La manutenzione sarà anche più semplice. Se si allineano le scelte con il set di competenze esistente del team, il team può facilmente adottarli.
Preparare il team per usare la tecnologia IaC scelta. Informazioni sul modello di estendibilità, sulle funzionalità e sulle limitazioni.

Sfruttare la specializzazione all'interno del team e condividere le conoscenze all'interno dell'organizzazione.
L'upskilling aumenta la produttività e promuove un ambiente di collaborazione attraverso l'apprendimento condiviso.

È possibile colmare le lacune con la formazione invece di assumere.
Seguire le raccomandazioni software per lo sviluppo e la manutenzione IaC.

Modularizzare in moderazione. Evitare astrazioni personalizzate o di basso valore.

Seguire un approccio a più livelli per riflettere i diversi cicli di vita. Formare livelli fondamentali in cui i livelli inferiori rimangono costanti e i livelli superiori cambiano in base alle esigenze.

Gli artefatti della distribuzione, ad esempio file binari dell'applicazione, modelli IaC e parametri, fanno parte della superficie di attacco. Applicare garanzie, ad esempio la gestione dei segreti, il controllo di accesso e altri principi del pilastro Sicurezza.
Gli artefatti hanno lo stesso livello di rigore tecnico del codice dell'applicazione. I controlli di qualità tramite verifiche peer e test offrono fiducia nella distribuzione.

Un approccio a più livelli semplifica la manutenzione e crea limiti che stabiliscono linee chiare di responsabilità.

L'aggiunta di controlli di sicurezza agli artefatti consente di rafforzare il sistema durante il processo di distribuzione.
Sviluppare un manifesto di distribuzione comune usato in tutti gli ambienti. Usare tale manifesto come meccanismo predefinito per i progetti greenfield, gli aggiornamenti incrementali del carico di lavoro o il ripristino di emergenza. Rimuovere il sovraccarico di gestione di più asset.

In caso di emergenza, il ripristino sarà rapido e affidabile perché è possibile distribuire un manifesto provato e testato invece di creare un ambiente improvvisato.
Cercare un'infrastruttura non modificabile e temporanea distribuita tramite l'automazione IaC. Impedire la deriva della configurazione e rendere idempotente la distribuzione.

Questo tipo di infrastruttura rimuove notevoli oneri operativi, ad esempio l'applicazione di patch. Offre anche vantaggi per gli scenari di convalida principali, ad esempio le distribuzioni di infrastrutture blu-verde.

Nota

Ridurre l'ambito dell'utilizzo del portale solo a attività di investigatori non ripetute.

Automatizzare l'efficienza

Icona ObiettivoSostituire le attività manuali ripetitive con l'automazione software che li completa più rapidamente, con maggiore coerenza e accuratezza e riduce i rischi.

Il carico di lavoro potrebbe avere flussi di lavoro con processi che coinvolgono i membri del team che eseguono attività banali, ripetitive e dispendiose in termini di tempo che non necessitano effettivamente dell'intelletto umano. A seconda della frequenza, è possibile dedicare molto tempo a queste attività, investendo più tempo man mano che aumenta il carico di lavoro. Inoltre, questi processi sono spesso soggetti a errori a causa dell'input umano.

Grazie all'automazione, si risparmia tempo, impegno e denaro ed è possibile evitare errori.

Approccio Vantaggi
Valutare tutti i flussi di lavoro in base ai criteri a livello corretto di complessità, sforzo, frequenza, accuratezza, tempestività e durata.

Automatizzare i flussi di lavoro in base a tale valutazione e classificare in ordine di priorità i flussi di lavoro con i rendimenti previsti più elevati.

Rimuovere flussi di lavoro ridondanti o aggiungere valore per giustificare lo sforzo umano.
È possibile reinvestire la capacità del team in un lavoro di valore superiore e aumentare la produttività e la coerenza.

La creazione di un inventario dei flussi di lavoro garantisce l'automazione delle attività corrette. La rimozione di attività ridondanti riduce la complessità e gli errori.
Essere espliciti sulla decisione quando si valuta se creare strumenti personalizzati o acquistare software.

Riservare l'automazione dell'edificio per lavori altamente specializzati e di alto valore.
Acquistando software off-the-shelf e sfruttando il contratto di supporto, si risparmiano sui costi di manutenzione.

Creando software, si ha un maggiore controllo e si può soddisfare i casi d'uso univoci per il team e il carico di lavoro. Tuttavia, si verifica un impatto sul costo.

La scelta degli strumenti offre un livello di standardizzazione alle operazioni. Con la formazione è possibile ottenere un livello uniforme di idoneità per l'adozione.
Progettare i componenti del carico di lavoro per supportare le funzionalità di automazione. Evitare la situazione in cui la mancanza di automazione nella progettazione del sistema promuove il modello anti-modello di attività ripetitive, rallenta la crescita e inizia ad accumulare debito tecnico.
Considerare tutta l'automazione come una dipendenza critica del carico di lavoro. Adattarsi alla crescita prevista del carico di lavoro.

Gli strumenti di automazione sono parte integrante del carico di lavoro e devono rispettare i cinque pilastri di Well-Architected Framework.
Progettare il componente di automazione per resistere ai rischi, ad esempio le minacce alla sicurezza. Con le procedure consigliate applicate, è possibile evitare lo sprawl dell'implementazione.

Il carico di lavoro continuerà a funzionare con una garanzia di alto livello se questa dipendenza viene mantenuta funzionante e sicura.
Automatizzare su larga scala esplorando le opzioni oltre il carico di lavoro.

Favorire un modello "design once, run everywhere" fornendo modelli e framework per caricare nuovi progetti e promuovere il riutilizzo di progettazioni e implementazioni esistenti.
Usare metodi provati e testati e ridurre le probabilità di errore.

Adottare procedure di distribuzione sicure

Icona obiettivo Implementare protezioni nel processo di distribuzione per ridurre al minimo l'effetto di errori o condizioni impreviste.

Durante il ciclo di sviluppo, gli artefatti del carico di lavoro passano attraverso molte modifiche man mano che vengono implementate e testate e man mano che vengono corretti bug.

Il processo di distribuzione deve seguire una procedura operativa standard. Qualsiasi modifica deve essere distribuita con lo stesso livello di rigore. Questo principio si applica allo stesso modo al codice, alla configurazione e a tutti gli artefatti correlati. La chiave consiste nell'applicare le procedure sicure il prima possibile, in modo da avere una prevedibilità nell'ambiente di produzione. Anche se gli errori raggiungono i clienti, dovrebbe essere possibile implementare le modifiche di ripristino il prima possibile.

Approccio Vantaggi
Standardizzare il processo per distribuire qualsiasi modifica usando processi di distribuzione automatizzati, ad esempio le pipeline.

Tutti gli ambienti devono usare pipeline.

Classificare asset e versioni per ogni ambiente per renderli facilmente tracciabili e identificabili.
I metodi di distribuzione coerenti riducono i problemi causati da errori di processo e varianza e consentono di concentrarsi sulle problematiche del carico di lavoro.

La standardizzazione garantisce che la distribuzione venga completata in modo sicuro, affidabile e ripetibile.

La classificazione semplifica la visualizzazione dei log delle distribuzioni e dei problemi precedenti che si sono verificati. È possibile usare tali informazioni per accelerare le operazioni di rollback e roll forward.
Distribuire piccoli aggiornamenti incrementali a cadenza regolare. Gli aggiornamenti frequenti e ben testati rendono più semplice la convalida della versione.

Risolvere i problemi più velocemente con un impatto minimo sul cliente a causa di un footprint minore.
Testare gli aggiornamenti rigorosamente usando meccanismi diversi per tutto il ciclo di vita dello sviluppo. Rilevare i problemi nelle fasi iniziali dello sviluppo. Le correzioni iterative e le procedure di distribuzione coerenti causano problemi quando l'aggiornamento è pronto per la produzione.
Implementare gli aggiornamenti gradualmente, con due diligence.

Usare i modelli di distribuzione che offrono il controllo per aumentare progressivamente il numero di istanze e clienti fino a quando l'aggiornamento non viene adottato in modo sicuro da tutti.
Testare ogni aggiornamento in modo controllato in modo che i problemi vengano risolti all'inizio della produzione. Evitare di implementare un aggiornamento difettoso che influisce sull'intera base clienti.

Verificare se l'aggiornamento è compatibile con le versioni precedenti e successive.
Avere una strategia di mitigazione per il ripristino rapido da errori di distribuzione.

La strategia deve coprire il processo decisionale in merito al rollback o all'inoltro in base alla criticità del problema.

Avere processi ben definiti e sistemi automatizzati in grado di implementare rapidamente le correzioni usando le pipeline di distribuzione standard.
Ridurre la durata del potenziale impatto.

Ripristinare la versione di lavoro precedente o eseguire il roll forward del sistema a una versione con correzioni che sono state testate accuratamente.
Disporre di un piano di fallback che reimposta il sistema su uno stato di lavoro in caso di emergenza e per il ripristino da errori imprevisti. Usare questa strategia solo quando necessario e con l'approvazione.

Cercare di migliorare il piano nel tempo.
È possibile correggere rapidamente le correzioni ad alta priorità, ad esempio la correzione della sicurezza.

La pipeline accelerata potrebbe non avere tutti i controlli delle procedure operative standard, ma si otterrà ai clienti una versione sicura nel modo più rapido possibile, che supera gli errori di impatto inferiore.

Passaggi successivi

È consigliabile esaminare l'elenco di controllo per l'eccellenza operativa per esplorare altri concetti.