Share via


Suggerimenti per l'ottimizzazione dei costi del flusso

Si applica a questa raccomandazione per l'ottimizzazione dei costi di Azure Well-Architected Framework:

CO:09 Ottimizzare i costi del flusso. Allineare il costo di ogni flusso con la priorità del flusso. Quando si assegnano priorità ai flussi, considerare le funzionalità, le funzionalità e i requisiti non funzionali di ogni flusso. L'ottimizzazione della spesa del flusso richiede spesso compromessi strategici.

Questa guida descrive le raccomandazioni per ottimizzare il costo di ognuno dei flussi nel carico di lavoro. L'ottimizzazione dei costi dei flussi in un carico di lavoro comporta l'allocazione strategica e la gestione delle risorse per ridurre al minimo le spese mantenendo al tempo stesso le prestazioni. Questa ottimizzazione è fondamentale perché garantisce un utilizzo efficiente delle risorse investite, riduce le spese non necessarie e migliora il ritorno complessivo sugli investimenti per l'infrastruttura. Se non si ottimizzano i costi dei flussi in un carico di lavoro, si rischia di sovraccaricare le risorse, con un aumento dei costi operativi e una riduzione della redditività.

Definizioni

Termine Definizione
Separare Strategia di rimozione di un flusso da una risorsa che contiene più flussi e di inserirlo in una risorsa separata.
Flusso In un carico di lavoro la sequenza di azioni che esegue una funzione specifica. Un flusso implica lo spostamento dei dati e l'esecuzione di processi tra componenti del carico di lavoro.
Flusso di sistema Flusso di informazioni e processi all'interno di un sistema. Il sistema segue automaticamente questo flusso per abilitare i flussi utente o la funzionalità del carico di lavoro.
Flusso utente Percorsi o sequenze di azioni eseguite dagli utenti all'interno di un'applicazione o di un sistema.

Strategie di progettazione chiave

Investire più in flussi ad alta priorità rispetto ai flussi con priorità più bassa. L'allineamento della priorità del flusso e della spesa può comportare il disaccoppiamento dei flussi che attualmente condividono la stessa risorsa. Può anche comportare la combinazione di flussi con requisiti simili, ma eseguiti su risorse separate. Si supponga, ad esempio, di avere un'applicazione Web che include più flussi, ad esempio la registrazione utente, l'accesso e l'elaborazione dei dati. Questi flussi vengono eseguiti in un singolo server, anche se hanno esigenze di risorse diverse. Per ottimizzare i costi e le prestazioni, è possibile separare i flussi o combinare i flussi:

  • Separare i flussi. Ad esempio, è possibile separare il flusso di registrazione utente dagli altri e spostarlo in un server dedicato a costi inferiori. Questo flusso è importante ma non a elevato utilizzo di risorse, quindi è un buon candidato per un server meno costoso.

  • Combinare i flussi. Ad esempio, è possibile combinare i flussi di accesso e di elaborazione dei dati, che hanno entrambi requisiti di risorse più elevati ed eseguirli insieme in un server ad alte prestazioni. La combinazione di questi flussi consente al server di gestire in modo efficiente le esigenze a elevato utilizzo di risorse di entrambi i flussi. Ottimizza le prestazioni e i costi.

In un carico di lavoro possono essere presenti diversi tipi di flussi o percorsi da considerare. Questa guida è incentrata sui tipi di flusso seguenti:

  • Flussi di sistema. L'ottimizzazione dei flussi di sistema comporta la semplificazione della comunicazione e dell'interazione tra i componenti di sistema, la riduzione dei colli di bottiglia e l'efficienza dell'utilizzo delle risorse.

  • Flussi utente. L'ottimizzazione dei flussi utente comporta il miglioramento dell'esperienza utente, la riduzione dei punti di attrito e la fluidità dello spostamento e dell'interazione all'interno dell'applicazione o del sistema.

Creare un inventario dei flussi

Un inventario dei flussi è un elenco completo e una descrizione di tutte le sequenze di azioni, transizioni di dati e interazioni di sistema all'interno di un carico di lavoro. Un inventario dei flussi è il primo passaggio per garantire l'allineamento degli investimenti con la priorità dei flussi. È consigliabile ottimizzare i flussi solo quando si conoscono appieno lo scopo e le dipendenze. Ecco i passaggi per la creazione di un inventario dei flussi di carico di lavoro:

  1. Flussi di documenti. Per iniziare, documentare ed elencare tutti i flussi esistenti nel carico di lavoro per comprendere lo stato completo del sistema. Includere ogni sequenza di azioni, transizioni di dati e interazioni di sistema. Acquisire familiarità con ogni componente, ad esempio servizi esterni, database, middleware e integrazioni di terze parti. Inoltre, tenere traccia o stimare il volume delle richieste nel tempo.

  2. Visualizzare i flussi. Per ottenere una prospettiva più chiara, rappresentare visivamente i risultati, possibilmente in diagrammi di flusso o diagrammi. Le visualizzazioni consentono di visualizzare le interdipendenze tra i componenti. È consigliabile usare uno strumento come Visio per semplificare le visualizzazioni.

  3. Categorizzare i flussi. Aggregare flussi simili, tenendo conto di attributi come la relativa funzionalità (ad esempio, autenticazione, recupero dati ed elaborazione delle transazioni), criticità per le aziende o le risorse usate (CPU, memoria o larghezza di banda).

Classificare in ordine di priorità i flussi

La definizione delle priorità dei flussi è il processo di classificazione dei flussi in base alla loro influenza sui risultati aziendali, sulle implicazioni sull'esperienza utente e sulle risorse utilizzate. I flussi critici richiedono spesso livelli di disponibilità più elevati, tempi di ripristino più rapidi e prestazioni migliori per soddisfare gli obiettivi del carico di lavoro. Assegnando priorità ai flussi, è possibile allineare meglio la spesa alla priorità del flusso. Per classificare in ordine di priorità i flussi, prendere in considerazione i passaggi seguenti:

  • Identificare il valore del flusso. Quando si ottimizzano i costi del flusso di carico di lavoro, è necessario identificare il flusso che fornisce il maggior valore. Non si vuole spendere più di un flusso. Invece di ridurre semplicemente i costi, valutare la possibilità di spostare i costi per classificare in ordine di priorità i flussi più preziosi. Ad esempio, il flusso di pagamento è fondamentale per le aziende, ma la cronologia degli acquisti non è. È consigliabile allocare più risorse e budget al flusso di pagamento.

    I flussi con priorità bassa hanno aspettative inferiori per la disponibilità, il ripristino e le prestazioni. È possibile ridurre i costi usando configurazioni più economiche per ridurre le prestazioni, la disponibilità o la spesa per la continuità aziendale.

  • Prendere in considerazione le metriche del flusso. Se si ha difficoltà a classificare in ordine di priorità i flussi, prendere in considerazione gli obiettivi di disponibilità e ripristino assegnati. I flussi critici hanno spesso requisiti di disponibilità elevata e contratti di servizio. I flussi associati a un RPO e un RTO inferiori sono più importanti rispetto ai flussi con un RPO e un RTO più elevati.

Ottimizzare i flussi indipendenti

In alcuni casi i flussi sono già in esecuzione su risorse diverse. In questi casi, è possibile valutare e ottimizzare più facilmente la spesa. Valutare i componenti e i processi coinvolti in ogni flusso indipendente per determinare se esistono modi per ottimizzarli o semplificarli. Per ottimizzare i flussi indipendenti, è possibile seguire questa procedura:

  • Eliminare i componenti non necessari. Rimuovere tutti gli elementi estranei che non contribuiscono alla funzionalità di base del flusso, riducendo così la complessità e i costi.

  • Riprogettare il flusso. Valutare la possibilità di riprogettare l'architettura del flusso per migliorarne l'efficienza. È possibile modificare la sequenza di operazioni, ridurre la latenza o migliorare la velocità di trasferimento dei dati, ad esempio.

  • Scegliere un livello di prestazioni appropriato. I flussi diversi possono avere esigenze variabili in termini di velocità di elaborazione, memoria o altre metriche delle risorse. Assicurarsi di scegliere un livello di risorsa che sia allineato correttamente ai requisiti specifici di ogni flusso.

  • Modificare le impostazioni di ridimensionamento. Se un flusso presenta una domanda variabile, è consigliabile implementare la scalabilità automatica per regolare dinamicamente le risorse in base alle esigenze in tempo reale, ottimizzando così i costi.

  • Ottimizzare le configurazioni. Ottimizzare altre impostazioni, ad esempio opzioni di rete o archiviazione dei dati, per allinearsi meglio ai requisiti di prestazioni e budget del flusso.

Separare i flussi diversi

La separazione di flussi diversi in risorse diverse è un processo di allocazione di attività distinte con esigenze di calcolo diverse alle risorse dedicate. I flussi diversi sono flussi con attributi diversi. Questi attributi possono includere requisiti di calcolo, dipendenze dei dati, operazioni di I/O, riservatezza della latenza, esigenze di sicurezza e requisiti di conformità. È spesso più conveniente eseguire diversi tipi di flussi in risorse separate. In questo modo, l'allocazione precisa delle risorse a ogni flusso riduce le spese non necessarie e garantisce la massima efficienza.

Valutare la possibilità di separare i flussi diversi che sono attualmente combinati. Questa separazione aumenta la scalabilità, la tolleranza di errore e l'adattabilità e semplifica anche i costi. Assicurandosi che ogni flusso funzioni in modo indipendente, è possibile ridurre i rischi di interferenza e allocare risorse in modo più conveniente in base alla priorità di ogni flusso. Si supponga, ad esempio, di aver condiviso CRM (flusso utente) con un motore di dati (flusso di dati). Il traffico degli utenti verso il sistema CRM durante le ore di ufficio potrebbe rallentare il motore dati. Quando si separano i flussi, il motore di dati può ridimensionare ogni componente o servizio in modo indipendente in base alla richiesta del carico di lavoro. Questa separazione ottimizza l'allocazione delle risorse e riduce i costi.

Combinare flussi simili

La combinazione di flussi simili in una singola risorsa è un processo di consolidamento di attività o processi con attributi confrontabili e l'uso di risorse condivise per tali risorse. Questa strategia elimina le ridondanze e garantisce un uso più efficiente delle risorse, con conseguente notevole risparmio sui costi. Tipi simili di flussi condividono attributi simili. È possibile considerare gli stessi attributi esaminati quando si separano i flussi diversi: requisiti di calcolo, dipendenze dei dati, operazioni di I/O, sensibilità alla latenza, esigenze di sicurezza e requisiti di conformità. Ecco alcuni esempi in cui la combinazione di flussi di carico di lavoro simili per l'uso della stessa risorsa può comportare risparmi sostanziali:

  • Server Web. Invece di dedicare server Web separati per ogni applicazione, è consigliabile consolidarli, soprattutto se il traffico non è costantemente elevato. Un server Web condiviso, associato a un proxy inverso, può gestire e instradare efficacemente il traffico a più applicazioni.

  • Gateway API. Invece di gestire singoli gateway API per microservizi o applicazioni separati, è possibile usare un gateway API centralizzato per semplificare le richieste e indirizzarle al servizio pertinente. In questo modo la gestione risulta più semplice e riduce anche i costi.

  • Elaborazione dei log. Invece di avere più applicazioni o servizi che gestiscono le proprie istanze di elaborazione dei log, è consigliabile indirizzarle tutte a uno strumento di elaborazione log condiviso. Questo approccio riduce al minimo il numero di istanze attive, che si traduce in risparmi diretti sui costi.

  • Servizi di autenticazione. Se più applicazioni distribuiscono i propri meccanismi di autenticazione distinti, viene introdotta la ridondanza. L'integrazione di una soluzione Single Sign-On (SSO) o di un servizio di autenticazione comune riduce questa duplicazione e ottimizza l'utilizzo delle risorse, riducendo così i costi.

Rischio: non sbagliare la coincidenza con la progettazione. Due flussi simili non servono necessariamente allo stesso scopo. È necessario comprendere la funzione e la progettazione di ogni flusso prima di unirle o modificarle. L'errata interpretazione di un flusso concentrandosi esclusivamente sul suo aspetto può causare conseguenze impreviste e interrompere il servizio o il processo supportato. Se più flussi servono la stessa funzione e non esistono differenze individuabili nella progettazione o nella finalità, è consigliabile consolidarle.

Monitorare continuamente i flussi

La natura dei flussi e dei carichi di lavoro può cambiare nel tempo, quindi è necessario rivedere la spesa del flusso per garantire che i costi siano allineati alle priorità. Valutare l'utilizzo delle risorse di ogni flusso analizzando l'utilizzo di calcolo, archiviazione e rete associato a ogni flusso. Identificare eventuali inefficienze o aree in cui le risorse sono sottoutilizzate. Questa analisi consente di individuare le opportunità di ottimizzazione dei costi. Ecco alcune considerazioni da tenere in considerazione quando si esamina l'utilizzo del flusso:

  • Analizzare i modelli di utilizzo. Analizzare i modelli di utilizzo dei flussi. Alcuni flussi potrebbero essere più attivi durante determinati orari del giorno o del mese, mentre altri potrebbero avere un carico coerente. Comprendendo questi modelli, è possibile stimare le esigenze delle risorse e regolare l'allocazione per evitare colli di bottiglia e overprovisioning.

  • Monitorare le metriche pertinenti. Determinare le metriche che consentono di valutare l'efficienza e l'efficacia dei costi di ogni flusso. Prendere in considerazione l'utilizzo della CPU, i costi di trasferimento dei dati, i costi delle transazioni e il footprint di archiviazione. Usare gli strumenti di monitoraggio per raccogliere metriche dettagliate sull'utilizzo e sulle prestazioni delle risorse.

  • Prendere in considerazione la manutenzione in corso. Prendere in considerazione il costo della manutenzione, soprattutto quando si usano soluzioni di infrastruttura distribuita come servizio come le macchine virtuali. È necessario tenere conto di attività come l'applicazione di patch, gli aggiornamenti, i backup, il monitoraggio e la sicurezza.

Durante l'analisi, identificare eventuali inefficienze o aree in cui le risorse non vengono usate in modo efficace. Prendere in considerazione istanze di calcolo inattive, dati inutilizzati e larghezza di banda di rete ridotta. Queste inefficienze possono indicare opportunità di ottimizzazione dei costi.

Facilitazione di Azure

Definizione delle priorità, ottimizzazione e monitoraggio dei flussi: Lo strumento Flusso utente in Application Insights offre una rappresentazione visiva dello spostamento utente tra le pagine e le funzionalità del sito. Questo strumento consente di identificare le aree in cui gli utenti lasciano spesso, ripetono azioni o seguono percorsi specifici. Confrontando il comportamento effettivo degli utenti con i risultati e gli obiettivi previsti, è possibile identificare i flussi critici. Consente anche di ottimizzare i potenziali problemi, ad esempio frequenze di varianza elevate, azioni ripetitive o difetti di progettazione. Lo strumento consente anche di filtrare proprietà personalizzate tramite dimensioni, offrendo un'analisi più personalizzata.

Monitoraggio di Azure consente di ottenere informazioni dettagliate sulle prestazioni e sull'integrità delle applicazioni. Fornisce funzionalità di monitoraggio e diagnostica. Queste funzionalità consentono di identificare i colli di bottiglia delle prestazioni, ottimizzare l'utilizzo delle risorse e rilevare e risolvere i problemi che potrebbero influire sui costi.

Log Analytics è uno strumento che consente di raccogliere, analizzare e visualizzare i dati di log da varie origini. Usando Log Analytics, è possibile ottenere informazioni dettagliate sui log dell'applicazione e dell'infrastruttura, identificare le tendenze e ottimizzare i costi gestendo l'utilizzo e la conservazione dei dati. Prendere in considerazione l'individuazione dei log e l'uso di soluzioni dedicate anziché di quelle condivise per gestire meglio i costi.

Elenco di controllo per l'ottimizzazione dei costi

Fare riferimento al set completo di raccomandazioni.