Compromessi per l'eccellenza operativa
L'eccellenza operativa garantisce la qualità del carico di lavoro attraverso l'implementazione di standard chiari del team, responsabilità e responsabilità, attenzione ai risultati dei clienti e coesione del team. L'implementazione di questi obiettivi è radicata in DevOps, che consiglia di ridurre al minimo la varianza dei processi, ridurre l'errore umano e, infine, aumentare la restituzione del valore per il carico di lavoro. Questo valore non viene misurato solo in base ai requisiti funzionali gestiti dai componenti del carico di lavoro. Viene anche misurato in base al valore che il team offre nel tentativo di miglioramento.
Durante la fase di progettazione di un carico di lavoro e nel corso del ciclo di vita, poiché vengono eseguiti passaggi di miglioramento continuo, è importante considerare come le decisioni basate sui principi di progettazione dell'eccellenza operativa e le raccomandazioni nell'elenco di controllo della revisione della progettazione per l'eccellenza operativa potrebbero influenzare gli obiettivi e le ottimizzazioni di altri pilastri. Alcune decisioni potrebbero trarre vantaggio da alcuni pilastri, ma costituiscono compromessi per altri. Questo articolo descrive i compromessi di esempio che un team del carico di lavoro potrebbe riscontrare durante la progettazione dell'architettura e delle operazioni del carico di lavoro.
Compromessi di eccellenza operativa con affidabilità
Compromesso: maggiore complessità. L'affidabilità assegna priorità alla semplicità, perché la progettazione semplice riduce al minimo la configurazione errata e riduce le interazioni impreviste.
Le strategie di distribuzione sicure richiedono spesso una certa quantità di compatibilità avanti e indietro tra la logica dell'applicazione e i dati nel carico di lavoro. Questa maggiore complessità aumenta il carico di test e può causare problemi di integrità o complessità con i dati del carico di lavoro.
Un'infrastruttura altamente a più livelli, modularizzata o con parametri come codice può aumentare la probabilità di errori di configurazione accidentali a causa della complessità dell'interazione tra i componenti di codice.
I modelli di progettazione cloud che traggono vantaggio dalle operazioni talvolta richiedono l'introduzione di componenti aggiuntivi, ad esempio l'uso di un archivio di configurazione esterno o il coordinamento delle distribuzioni sidecar in una piattaforma di applicazioni in contenitori. I componenti aggiuntivi e i livelli aggiunti di riferimento indiretto aumentano i punti di interazione nel sistema, aumentando l'area di superficie per malfunzionamenti o errori di configurazione.
I componenti del carico di lavoro progettati per evolversi in modo indipendente per supportare lo sviluppo agile e l'hosting introducono dipendenze dall'individuazione del servizio come livello di riferimento indiretto. L'individuazione dei servizi potrebbe non rispondere alla modifica e il malfunzionamento può risultare difficile da diagnosticare.
Compromesso: aumento delle attività potenzialmente destabilizzanti. Il pilastro Affidabilità incoraggia l'evitare attività o scelte di progettazione che possono destabilizzare un sistema e causare interruzioni, interruzioni o malfunzionamenti.
La distribuzione di modifiche incrementali di piccole dimensioni è una tecnica per ridurre i rischi, ma si prevede che tali piccole modifiche vengano recapitate più frequentemente all'ambiente di produzione. Le distribuzioni possono destabilizzare un sistema, in modo che il tasso di distribuzione aumenti, quindi questo rischio.
Una cultura che misura se stessa con metriche di velocità come le distribuzioni alla settimana e usa l'automazione che può facilitare l'introduzione di modifiche a un ritmo più rapido è anche probabile che si eseguano più distribuzioni in un periodo più breve.
Aumentare la densità per semplificare le operazioni riducendo il numero di superfici di controllo e osservabilità può comportare anche un aumento del rischio di disponibilità perché il malfunzionamento o la configurazione errata aumenta il raggio di impatto di un evento destabilizzante.
Compromessi per l'eccellenza operativa con la sicurezza
Compromesso: maggiore superficie di attacco. Il pilastro Sicurezza consiglia una superficie di attacco ridotta del carico di lavoro in termini di componenti ed esposizione alle operazioni. Questa riduzione riduce al minimo i vettori di attacco e produce un ambito più piccolo per il controllo e il test di sicurezza.
I componenti che racchiudono il carico di lavoro e supportano le operazioni, ad esempio l'automazione o un piano di controllo personalizzato, devono essere inclusi anche nell'ambito della normale protezione avanzata e test.
Le operazioni di routine, ad hoc e di emergenza aumentano i punti di contatto con il carico di lavoro. Un approccio zero trust richiede che questi processi siano considerati vettori di attacco e che siano inclusi nei controlli di sicurezza e nella convalida per il carico di lavoro.
La piattaforma di osservabilità del sistema raccoglie log e metriche sul carico di lavoro, che possono essere una fonte preziosa di divulgazione di informazioni. Di conseguenza, la sicurezza del carico di lavoro deve estendersi per proteggere i sink di dati da minacce interne ed esterne.
Gli agenti di compilazione, la configurazione esterna e l'attivazione/disattivazione delle funzionalità e gli approcci di distribuzione side-by-side aumentano la superficie di attacco dell'applicazione che richiede la sicurezza.
Una frequenza di distribuzione più elevata causata da piccole modifiche incrementali o da "ottenere l'attuale, rimanere aggiornati" comporta un maggior numero di test di sicurezza nel ciclo di vita dello sviluppo software.
Compromesso: maggiore desiderio di trasparenza. Un carico di lavoro sicuro si basa su progettazioni che proteggono la riservatezza dei dati che passano attraverso i componenti del sistema.
Le piattaforme di osservabilità inseriscono dati di tutti i tipi per ottenere informazioni dettagliate sull'integrità e sul comportamento di un carico di lavoro. Man mano che i team tentano di ottenere una maggiore fedeltà nei dati di osservabilità, c'è un maggiore rischio che i controlli di classificazione dei dati, come il mascheramento dei dati, dei sistemi di origine non si estendono ai log e ai sink di log della piattaforma osservabilità.
Compromesso: segmentazione ridotta. Un approccio di sicurezza chiave per isolare l'accesso e la funzione consiste nel progettare una strategia di segmentazione avanzata. Questa progettazione viene implementata tramite l'isolamento delle risorse e i controlli identità.
L'individuazione condivisa di componenti applicazione diversi nelle risorse di calcolo, rete e dati condivise per semplificare la segmentazione inversa o rende più difficile la segmentazione basata sui ruoli. I componenti localizzati possono anche dover condividere un'identità del carico di lavoro, che può causare l'over-assignment delle autorizzazioni o la mancanza di tracciabilità.
La raccolta di tutti i log da tutto il sistema in un sink di log unificato può semplificare l'esecuzione di query e la compilazione di avvisi. Tuttavia, questa operazione può anche rendere più difficile o impossibile fornire sicurezza basata su righe per gestire i dati sensibili con i controlli di controllo necessari.
Semplificare la gestione della sicurezza basata su attributi o basata su ruoli riducendo la granularità dei ruoli e le relative assegnazioni possono causare autorizzazioni inappropriatamente estese.
Compromessi di eccellenza operativa con l'ottimizzazione dei costi
Il pilastro Dell'eccellenza operativa non consiglia mai attività che riducono la produttività o compromettono il ritorno di un carico di lavoro sugli investimenti. Le raccomandazioni che sembrano spostare l'attenzione dalle attività di recapito prendono in considerazione gli interessi a lungo termine per il carico di lavoro e il team. Se il carico di lavoro sta per raggiungere la data di tramonto, probabilmente non ha senso investire molto nelle raccomandazioni che attivano questi compromessi.
Compromesso: aumento della spesa per le risorse. Un importante driver di costo per un carico di lavoro è il costo delle risorse. La distribuzione di un minor numero di risorse, il ridimensionamento corretto delle risorse e la riduzione del consumo in genere consente di ridurre i costi.
L'implementazione di procedure di distribuzione sicure, anche se le modifiche sono relativamente piccole, può comportare un aumento del numero di risorse distribuite contemporaneamente. Questi modelli richiedono la distribuzione di più istanze simultanee del componente dell'applicazione o dell'infrastruttura in modo che il traffico possa essere spostato in modo controllato. Questo aumento è più pronunciato in un carico di lavoro che usa un approccio di infrastruttura non modificabile.
Il team potrebbe dover introdurre componenti aggiuntivi del carico di lavoro per implementare modelli di progettazione cloud o automazione del carico di lavoro allineati a livello operativo. Ad esempio, per supportare l'agilità della distribuzione, è possibile aggiungere un componente di routing del gateway. Per supportare una migliore gestione della configurazione, potrebbero aggiungere un archivio di configurazione esterno. Per supportare gli eventi del ciclo di vita del tenant, è possibile creare un piano di controllo. Queste risorse influiscono anche sui costi degli ambienti di preproduzione.
L'aumento del numero di ambienti di preproduzione per migliorare l'esperienza di sviluppo e test tramite isolamento aumenta anche il numero di risorse. Queste risorse, che non vengono usate per fornire l'offerta rispetto alla domanda di produzione, aumentano il costo della soluzione.
L'aumento della parità degli ambienti di preproduzione con l'ambiente di produzione, in termini di numero di risorse, SKU e volumi di dati, migliora il processo di controllo della qualità. Il costo aumenta man mano che aumenta la parità.
Anche se i dati di telemetria non sono direttamente una risorsa, per consentire l'efficacia delle piattaforme di osservabilità, questi dati devono essere resi persistenti. La maggior parte degli archivi dati operativi ha prezzi basati su una combinazione di velocità di inserimento e volume. In genere, man mano che aumenta la quantità di dati di telemetria a bassa latenza, aumentano anche i costi. Per le distribuzioni in più aree, è previsto che questi sink di dati operativi vengano distribuiti per ogni area, quindi i costi per risorsa diventano un fattore.
Compromesso: riduzione dell'attenzione sulle attività di consegna. I membri del team del carico di lavoro offrono un maggiore valore del carico di lavoro eseguendo in modo efficiente le attività allineate alle relative funzionalità.
I team del carico di lavoro che dedicano tempo a creare e perfezionare una struttura di supporto sana e responsabile e la risposta agli eventi imprevisti forniscono un servizio prezioso agli utenti del carico di lavoro. Man mano che aumenta il lavoro di supporto (ad esempio, rotazioni formali su chiamata), in genere a causa di un cambiamento di criticità aziendale, i costi di queste attività aumentano. Questo aumento dei costi può essere il risultato di un aumento del personale o può essere indirettamente indotto sotto forma di attenzione che è stata spostata dalle attività di consegna alle funzioni di supporto.
La formazione è una parte fondamentale del processo di miglioramento continuo personale di un team del carico di lavoro. Questa formazione può essere formale o auto-diretta durante il tempo di arricchimento personale. Con l'aumentare del tempo di training, la quantità di tempo disponibile per lo sviluppo diretto del carico di lavoro diminuisce. L'investimento nella formazione è diminuito quando la formazione non è basata sui ruoli o specificamente rilevante per il carico di lavoro o il suo futuro.
Le attività operative di routine standardizzate per proteggere l'affidabilità, la sicurezza e l'efficienza delle prestazioni di un carico di lavoro richiedono tempo per definire, perfezionare ed eseguire operazioni. Questa volta non viene impiegato direttamente per la consegna. Alcuni esempi di queste attività sono l'analisi completa dell'impatto sulle modifiche, i processi di controllo delle modifiche, i test approfonditi e l'aumento della gestione delle patch. Man mano che aumenta la frequenza, la completezza o l'onere operativo di queste attività, aumenta anche il tempo investito.
Compromesso: aumento delle richieste di strumenti e della diversità. Il pilastro Ottimizzazione costi consiglia la riduzione della trazione degli strumenti, il consolidamento dei fornitori e un approccio di dimensioni corrette a tutti gli acquisti di strumenti.
Un team del carico di lavoro acquista strumenti e hardware per supportare le attività eseguite durante l'intero ciclo di vita dello sviluppo software (SDLC), tra cui pianificazione e progettazione, sviluppo e test e monitoraggio. Il marketplace per gli strumenti in questo spazio è in crescita. Gli strumenti sono offerti a vari punti di prezzo che in genere corrispondono alle funzionalità e alle funzionalità degli strumenti. Ad eccezione delle offerte gratuite, questi strumenti comportano costi di licenza iniziali, che potrebbero essere per utente, per dispositivo o a livello di sito. Spesso richiedono anche contratti di manutenzione in corso. Potrebbe essere necessario stabilire nuove relazioni fornitore. Ecco alcuni esempi di spesa prevista per strumenti o hardware associati ai principi di eccellenza operativa:
- Requisiti e gestione del backlog
- Strumenti di progettazione dell'architettura
- Strumenti di progettazione dell'interfaccia utente/esperienza utente
- Hosting di codice e asset
- Ambienti di sviluppo con codice ridotto e codice
- Strumenti di automazione
- Workstation di sviluppo e controllo qualità
- Pipeline di sviluppo e distribuzione
- Esecuzione e rilevamento dei test
- Strumenti di osservabilità
Compromessi di eccellenza operativa con l'efficienza delle prestazioni
Compromesso: aumento dell'utilizzo delle risorse. Il pilastro Efficienza delle prestazioni consiglia l'allocazione del maggior numero possibile di risorse di calcolo e rete disponibili ai requisiti del carico di lavoro.
Il framework di osservabilità di un carico di lavoro richiede che i componenti nell'architettura allocano tempo e risorse per creare, raccogliere e trasmettere log e metriche. Questi punti dati consentono di garantire che sia possibile eseguire avvisi e monitoraggio efficaci per l'affidabilità, la sicurezza e le prestazioni. Man mano che aumenta il livello di strumentazione, anche la tensione sulle risorse di sistema potrebbe aumentare.
Alcuni modelli di distribuzione, ad esempio la distribuzione blu/verde, che un carico di lavoro potrebbe usare per la distribuzione sicura, potrebbe introdurre distribuzioni side-by-side nella piattaforma dell'applicazione di produzione. Queste distribuzioni richiedono una scalabilità preemptive per fornire una quantità sufficiente per soddisfare la domanda futura o lasciare una distribuzione quasi inattiva per un periodo di tempo per supportare il rollback.
Compromesso: maggiore latenza. Per creare carichi di lavoro efficienti, i team cercano modi per ridurre il tempo e le risorse utilizzate dai carichi di lavoro per eseguire le attività.
Molti modelli di distribuzione richiedono l'uso di modelli di accesso al routing del gateway, che possono introdurre latenza. Questa latenza si basa sul budget di destinazione delle prestazioni per i flussi correlati.
Alcuni modelli di progettazione cloud che supportano approcci di "cambiamento indipendente nel tempo" per supportare gli ideali di miglioramento incrementale possono introdurre latenza a causa dell'attraversamento di componenti aggiuntivi. Questa latenza può essere introdotta da gateway, broker di messaggistica o livelli anti-danneggiamento.
Collegamenti correlati
Esplorare i compromessi per gli altri pilastri: