Compromessi di ottimizzazione dei costi

Quando si progetta un carico di lavoro per ottimizzare il ritorno sugli investimenti (ROI) in vincoli finanziari, è necessario prima di tutto requisiti funzionali e non funzionali definiti in modo chiaro. Una strategia di definizione delle priorità del lavoro e dello sforzo è essenziale. La fondazione è un team che ha un forte senso di responsabilità finanziaria. Il team deve avere una conoscenza approfondita delle tecnologie disponibili e dei relativi modelli di fatturazione.

Dopo aver compreso il ROI di un carico di lavoro, è possibile iniziare a migliorarlo. Valutare il modo in cui le decisioni basate sui principi di progettazione di Ottimizzazione costi e le raccomandazioni nell'elenco di controllo di revisione della progettazione per l'ottimizzazione dei costi potrebbero influenzare gli obiettivi e le ottimizzazioni di altri pilastri di Well-Architected Framework. Per l'ottimizzazione dei costi, è importante evitare di concentrarsi su una soluzione più economica. Le scelte che si concentrano solo sulla riduzione della spesa possono compromettere gli obiettivi aziendali e la reputazione del carico di lavoro. Questo articolo descrive i compromessi di esempio che un team di lavoro potrebbe riscontrare quando si impostano obiettivi, progettando e pianificando le operazioni per l'ottimizzazione dei costi.

Ottimizzazione dei costi e compromessi tra affidabilità

Il costo di un'interruzione del servizio deve essere misurato in base al costo di impedirne una o recuperarne una. Se il costo delle interruzioni supera il costo della progettazione dell'affidabilità, è consigliabile investire di più per evitare o ridurre le interruzioni. Al contrario, il costo degli sforzi di affidabilità potrebbe essere maggiore del costo di un'interruzione, inclusi fattori come i requisiti di conformità e la reputazione. È consigliabile considerare il disinvestimento strategico nella progettazione dell'affidabilità solo in questo scenario.

Compromesso: resilienza ridotta. Un carico di lavoro include misure di resilienza per tentare di evitare e resistere a tipi e quantità specifici di malfunzionamento.

  • Per risparmiare denaro, il team del carico di lavoro potrebbe sottodimensionare un componente o limitare eccessivamente il suo ridimensionamento, rendendo più probabile che il componente fallisca durante picchi improvvisi della domanda.

  • Il consolidamento delle risorse del carico di lavoro (aumento della densità) per l'ottimizzazione dei costi rende più probabile che i singoli componenti non riescano durante i picchi di domanda e durante operazioni di manutenzione come gli aggiornamenti.

  • La rimozione di componenti che supportano modelli di progettazione della resilienza, ad esempio un bus di messaggi e la creazione di una dipendenza diretta riduce le funzionalità di auto-conservazione.

  • Il risparmio di denaro riducendo la ridondanza può limitare la capacità di un carico di lavoro di gestire i malfunzionamenti simultanei.

  • L'uso degli SKU di budget potrebbe limitare l'obiettivo massimo del livello di servizio (SLO) che il carico di lavoro può raggiungere.

  • L'impostazione di limiti di spesa rigidi può impedire il ridimensionamento di un carico di lavoro per soddisfare la domanda legittima.

  • Senza strumenti o test di test di affidabilità, l'affidabilità di un carico di lavoro è sconosciuta ed è meno probabile che soddisfi gli obiettivi di affidabilità.

Compromesso: strategia di ripristino limitata. Un carico di lavoro affidabile ha una risposta agli eventi imprevisti testati e un piano di ripristino per gli scenari di emergenza.

  • I test ridotti o la simulazione del piano di ripristino di emergenza di un carico di lavoro potrebbero influire sulla velocità e sull'efficacia delle operazioni di ripristino.

  • La creazione o la conservazione di un minor numero di backup riduce i possibili punti di ripristino e aumenta la possibilità di perdere dati.

  • La scelta di un contratto di supporto meno costoso con i partner tecnologici potrebbe aumentare il tempo di recupero del carico di lavoro a causa di potenziali ritardi nell'assistenza tecnica.

Compromesso: maggiore complessità. Un carico operativo che usa approcci semplici ed evita complessità superflue o eccessivamente complesse è in genere più facile da gestire in termini di affidabilità.

  • L'uso di modelli cloud di ottimizzazione dei costi può aggiungere nuovi componenti, ad esempio una rete per la distribuzione di contenuti (CDN) o spostare i compiti ai dispositivi perimetrali e client per i quali un carico di lavoro deve fornire obiettivi di affidabilità.

  • Il ridimensionamento basato su eventi può essere più complesso da ottimizzare e convalidare rispetto al ridimensionamento basato sulle risorse.

  • La riduzione del volume di dati e la suddivisione in livelli dei dati tramite azioni del ciclo di vita dei dati, possibilmente in combinazione con l'implementazione di punti dati aggregati prima di un evento del ciclo di vita, introduce fattori di affidabilità da considerare nel carico di lavoro.

  • L'uso di aree diverse per ottimizzare i costi può rendere più difficile la gestione, la rete e il monitoraggio.

Bilanciamenti dell'ottimizzazione dei costi con la sicurezza

Il costo di una compromissione della riservatezza, dell'integrità o della disponibilità deve essere sempre bilanciato rispetto al costo di impedirlo. Un evento imprevisto di sicurezza può causare danni finanziari, legali e di reputazione significativi. L'investimento in sicurezza riduce i rischi e gli investimenti devono essere misurati in base al costo di riscontrare il rischio. Di norma, non compromettere la sicurezza per ottenere ottimizzazioni dei costi che scendono sotto il livello accettabile di mitigazione dei rischi concordato. L'ottimizzazione dei costi di sicurezza tramite la dimensionamento corretto delle soluzioni è una pratica di ottimizzazione importante, ma è importante tenere presente i compromessi come quelli che seguono quando si intraprende questa pratica.

Compromesso: controlli di sicurezza ridotti. I controlli di sicurezza vengono stabiliti in più livelli, a volte ridondanti, per fornire una difesa approfondita.

Una tattica di ottimizzazione dei costi consiste nel cercare modi per rimuovere componenti o processi che accumulano costi operativi o unità. La rimozione di componenti di sicurezza come gli esempi seguenti per risparmiare denaro influisce sulla sicurezza. È necessario eseguire attentamente un'analisi dei rischi su questo impatto.

  • La riduzione o la semplificazione delle tecniche di autenticazione e autorizzazione compromette il principio verify in modo esplicito dell'architettura di Zero Trust. Esempi di queste semplificazioni includono l'uso di uno schema di autenticazione di base come chiavi precondivise anziché investire tempo per apprendere gli approcci OAuth del settore o l'uso di assegnazioni semplificate di controllo degli accessi in base al ruolo per ridurre il sovraccarico di gestione.

  • La rimozione della crittografia in transito o a riposo per ridurre i costi dei certificati e dei relativi processi operativi espone i dati a potenziali violazioni dell'integrità o della riservatezza.

  • La rimozione o la riduzione dell'analisi della sicurezza, degli strumenti di ispezione o dei test di sicurezza a causa del costo e del tempo di investimento associati possono influire direttamente sulla riservatezza, l'integrità o la disponibilità che tali strumenti e test sono destinati a proteggere.

  • La riduzione della frequenza di applicazione delle patch di sicurezza per risparmiare tempo operativo sulla catalogazione e l'applicazione di patch influisce sulla capacità di un carico di lavoro di affrontare le minacce in continua evoluzione.

  • La rimozione di controlli di rete come i firewall potrebbe causare un errore nel bloccare il traffico in ingresso e in uscita dannoso.

Compromesso: maggiore superficie del carico di lavoro. Il pilastro sicurezza assegna priorità a una superficie ridotta e contenuta per ridurre al minimo i vettori di attacco e la gestione dei controlli di sicurezza.

I modelli di progettazione cloud che ottimizzano i costi a volte richiedono l'introduzione di componenti aggiuntivi. Questi componenti aggiuntivi aumentano la superficie del carico di lavoro. I componenti e i dati all'interno di essi devono essere protetti, possibilmente in modi non già usati nel sistema. Questi componenti e dati sono spesso soggetti alla conformità. Esempi di modelli che possono introdurre componenti includono:

  • Uso del modello di hosting di contenuti statici per eseguire l'offload dei dati in un nuovo componente della rete CDN.

  • Uso del pattern Valet Key per eseguire l'offload dell'elaborazione e proteggere l'accesso alle risorse sul calcolo del client.

  • Utilizzo del modello di livellamento del carico basato su coda per ridurre i costi introducendo un bus di messaggi.

Compromesso: segmentazione rimossa. Il pilastro Sicurezza assegna priorità alla segmentazione avanzata per supportare l'applicazione di controlli di sicurezza mirati e per controllare il raggio dell'esplosione.

La condivisione delle risorse, ad esempio in situazioni di multi-tenancy o la condivisione di più applicazioni in una piattaforma applicativa condivisa, è un approccio per ridurre i costi aumentando la densità e riducendo la superficie di gestione. Questa maggiore densità può causare problemi di sicurezza come i seguenti:

  • Lo spostamento laterale tra i componenti che condividono le risorse è più semplice. Un evento di sicurezza che compromette la disponibilità dell'host della piattaforma dell'applicazione o di una singola applicazione ha anche un raggio di esplosione maggiore.

  • Le risorse condivise possono condividere un'identità del carico di lavoro e avere audit trail meno significativi nei log di accesso.

  • I controlli di sicurezza di rete devono essere sufficientemente ampi per coprire tutte le risorse co-localizzate. Questa configurazione viola potenzialmente il principio dei privilegi minimi per alcune risorse.

  • La co-locazione di applicazioni o dati disparati su un host condiviso può portare all'estensione dei requisiti di conformità e dei controlli di sicurezza anche a quelle applicazioni o dati che altrimenti non sarebbero considerati pertinenti. L'ampliamento dell'ambito richiede ulteriori sforzi di verifica e controllo della sicurezza sui componenti colocati.

Trade-off nell'ottimizzazione dei costi con l'eccellenza operativa

Compromesso: capacità compromesse del ciclo di vita del software (SDLC). Il processo SDLC di un carico di lavoro offre rigore, coerenza, specificità e priorità nella gestione delle modifiche.

  • Riducendo le attività di test per risparmiare tempo e il costo associato al personale di test, alle risorse e agli strumenti può comportare un maggior numero di bug nell'ambiente di produzione.

  • Il ritardo del pagamento del debito tecnico per concentrare gli sforzi del personale sulle nuove funzionalità può causare cicli di sviluppo più lenti e una riduzione complessiva dell'agilità.

  • La deprecazione della documentazione per concentrare le attività del personale sullo sviluppo di prodotti può portare a tempi di onboarding più lunghi per i nuovi dipendenti, influire sull'efficacia della risposta agli eventi imprevisti e compromettere i requisiti di conformità.

  • La mancanza di investimenti nella formazione comporta la stagnazione delle competenze, riducendo la capacità del team di adottare tecnologie e pratiche più recenti.

  • La rimozione degli strumenti di automazione per risparmiare denaro può comportare una maggiore spesa per il personale per le attività che non sono più automatizzate. Aumenta anche il rischio di errori e incoerenze.

  • La riduzione delle attività di pianificazione, come la definizione di priorità e l'assegnazione delle priorità alle attività, per ridurre le spese può aumentare la probabilità di rielaborazione a causa di specifiche vaghe e di scarsa implementazione.

  • Evitare o ridurre le attività di miglioramento continuo, come le analisi retrospettive e i report sugli eventi imprevisti, per mantenere il team del carico di lavoro incentrato sul recapito può creare opportunità perse per ottimizzare i processi di routine, non pianificati e di emergenza.

Compromesso: riduzione dell'osservabilità. L'osservabilità è necessaria per garantire che un carico di lavoro disponga di avvisi significativi e di risposta corretta agli eventi imprevisti.

  • La riduzione del volume di log e metrica per risparmiare sui costi di archiviazione e trasferimento riduce l'osservabilità del sistema e può causare:

    • Meno punti dati per la creazione di avvisi correlati a affidabilità, sicurezza e prestazioni.
    • Gap di copertura nelle attività di risposta agli eventi imprevisti.
    • Osservabilità limitata in interazioni o limiti correlati alla sicurezza o alla conformità.
  • I modelli di progettazione dell'ottimizzazione dei costi possono aggiungere componenti a un carico di lavoro, aumentandone la complessità. La strategia di monitoraggio del carico di lavoro deve includere questi nuovi componenti. Alcuni modelli, ad esempio, possono introdurre flussi che si estendono su più componenti o spostano i processi dal server al client. Queste modifiche possono aumentare la complessità della correlazione e delle informazioni di rilevamento.

  • Un investimento ridotto negli strumenti di osservabilità e la manutenzione di dashboard efficaci può ridurre la capacità di apprendere dalla produzione, convalidare le scelte di progettazione e informare la progettazione del prodotto. Questa riduzione può anche ostacolare le attività di risposta agli eventi imprevisti e rendere più difficile soddisfare l'obiettivo del tempo di ripristino e lo SLO.

Compromesso: manutenzione posticipata. I team del carico di lavoro devono mantenere il codice, gli strumenti, i pacchetti software e i sistemi operativi con patch e aggiornati in modo tempestivo e ordinato.

  • Consentire la scadenza dei contratti di manutenzione con fornitori di strumenti può causare la mancata disponibilità di funzionalità di ottimizzazione, risoluzioni di bug e aggiornamenti della sicurezza.

  • L'aumento del tempo tra le patch di sistema per risparmiare tempo può causare correzioni di bug perse o mancanza di protezione dalle minacce alla sicurezza in continua evoluzione.

Scelte di ottimizzazione dei costi con efficienza delle performance

I pilastri Ottimizzazione dei costi e Efficienza delle prestazioni assegnano entrambe priorità all'ottimizzazione del valore di un carico di lavoro. L'efficienza delle prestazioni evidenzia il raggiungimento degli obiettivi di rendimento senza spendere più del necessario. L'ottimizzazione dei costi evidenzia l'ottimizzazione del valore prodotto dalle risorse di un carico di lavoro senza superare gli obiettivi di prestazioni. Di conseguenza, l'ottimizzazione dei costi spesso migliora l'efficienza delle prestazioni. Tuttavia, esistono compromessi per l'efficienza delle prestazioni associati all'ottimizzazione dei costi. Questi compromessi possono rendere più difficile raggiungere gli obiettivi di prestazioni e ostacolare l'ottimizzazione continua delle prestazioni.

Compromesso: risorse sottoapprovvigionate o sottodimensionate. Un carico di lavoro efficiente in termini di prestazioni ha risorse sufficienti per soddisfare la domanda, ma non ha un surplus eccessivo inutilizzato, anche quando gli schemi di utilizzo fluttuano.

  • Ridurre i costi riducendo le risorse può privare le applicazioni di risorse. L'applicazione potrebbe non essere in grado di gestire fluttuazioni significative del modello di utilizzo.

  • La limitazione o il ritardo del ridimensionamento per limitare o ridurre i costi potrebbe comportare un'offerta insufficiente per soddisfare la domanda.

  • Le impostazioni di scalabilità automatica che si riducono in modo aggressivo per ridurre i costi potrebbero lasciare un servizio impreparato per i picchi improvvisi della domanda o causare frequenti fluttuazioni di ridimensionamento (flapping).

Compromesso: mancanza di ottimizzazione nel tempo. La valutazione degli effetti delle modifiche apportate alle funzionalità, ai cambiamenti nei modelli di utilizzo, alle nuove tecnologie e ai diversi approcci sul carico di lavoro è un modo per provare ad aumentare l'efficienza.

  • Limitando l'attenzione allo sviluppo di competenze nell'ottimizzazione delle prestazioni per classificare in ordine di priorità il recapito può causare opportunità perse per migliorare l'efficienza dell'utilizzo delle risorse.

  • La rimozione degli strumenti di test delle prestazioni di accesso o di monitoraggio aumenta il rischio di problemi di prestazioni non rilevati. Limita inoltre la capacità di un team di gestione dei carichi di lavoro di portare avanti cicli di misurazione e miglioramento.

  • L'abbandono di aree soggette a riduzione delle prestazioni, ad esempio gli archivi dati, può gradualmente peggiorare le prestazioni delle query e elevare l'utilizzo complessivo del sistema.

Esplorare i compromessi per gli altri pilastri: