Condividi tramite


Pratiche migliori per l'architettura di Azure Event Grid

Griglia di eventi di Azure è un servizio di pubblicazione-sottoscrizione gestito scalabile che distribuisce i messaggi. Griglia di eventi offre modelli di consumo di messaggi flessibili. Usa i protocolli MQTT (Message Queuing Telemetry Transport) e HTTP per abilitare architetture serverless basate su eventi, pipeline di dati e integrazione delle applicazioni.

Questo articolo presuppone che, come architetto, tu abbia esaminato l'albero delle decisioni di messaggistica e che sia stato scelto Event Grid come servizio di messaggistica per il workload.

Le linee guida presenti in questo articolo forniscono raccomandazioni architettoniche che sono collegate ai principi dei pilastri del Framework Well-Architected.

Ambito della tecnologia

Questa revisione è incentrata sulle decisioni correlate per le risorse di Azure seguenti:

  • Griglia di eventi di Azure

Reliability

Lo scopo del pilastro Affidabilità è fornire funzionalità continue attraverso la costruzione di una resilienza sufficiente e la capacità di recuperare rapidamente dai guasti.

I principi di progettazione dell'affidabilità forniscono una strategia di progettazione di alto livello applicata ai singoli componenti, ai flussi del sistema e al sistema nel suo complesso.

Elenco di controllo per la progettazione del carico di lavoro

Avvia la tua strategia di progettazione basandoti sulla checklist di revisione del progetto per l'affidabilità. Determinare la rilevanza per i requisiti aziendali tenendo presente la natura dell'applicazione e la criticità dei relativi componenti. Estendere la strategia per includere altri approcci in base alle esigenze.

  • Esaminare i limiti e le quote del servizio e usarli per guidare le decisioni relative alla pianificazione dell'affidabilità e alla capacità di velocità effettiva. Tenere conto della limitazione del flusso delle sottoscrizioni che influisce sul recapito degli eventi quando i consumer non possono elaborare gli eventi alla velocità richiesta.

    Progettare payload di eventi entro i limiti delle dimensioni dei messaggi (1 MB per evento) e suddividere i messaggi quando necessario. Prendere in considerazione le quote specifiche dell'area quando si pianificano le strategie di distribuzione e le esigenze di capacità.

  • Prevedere potenziali errori tramite l'analisi sistematica: Usare l'analisi della modalità di errore per identificare potenziali scenari di errore e creare strategie di mitigazione per garantire la resilienza di Griglia di eventi.

    Failure Mitigazione
    Fallimenti di recapito degli eventi ai consumatori Configurare i criteri di ripetizione con backoff esponenziale e le destinazioni per i messaggi non recapitabili. Implementare il monitoraggio della salute dei consumatori con avvisi automatizzati.
    Mancata disponibilità del servizio consumer Distribuire modelli di interruttore e percorsi di elaborazione alternativi. Usare più istanze consumer tra zone di disponibilità.
    Interruzione di Event Grid regionale Replicare argomenti in più regioni e distribuire consumatori in più regioni con funzionalità di routing del traffico.
  • Implementare strategie di ridondanza per ottenere la disponibilità elevata: Gli argomenti di Griglia di eventi usano automaticamente le zone di disponibilità nelle aree supportate. Questa configurazione offre ridondanza a livello di zona senza alcuna configurazione. Le aree abilitate per la zona di disponibilità abilitano questa funzionalità per impostazione predefinita.

    Distribuire applicazioni utente tra zone di disponibilità usando Azure Kubernetes Service (AKS) o le distribuzioni ridondanti per zona di App Service di Azure. Questo approccio consente il failover a livello di zona. Per la ridondanza attiva-attiva tra aree, usare l'infrastruttura come codice (IaC) per distribuire le configurazioni di Griglia di eventi in più aree. Includere argomenti, domini, spazi dei nomi e sottoscrizioni di eventi.

    Configurare le applicazioni producer per pubblicare eventi nelle risorse di Griglia di eventi in tutte le aree distribuite contemporaneamente. Questa configurazione consente di ottenere la ridondanza dei dati degli eventi tra aree. Per implementare la ridondanza attiva-attiva per il carico di lavoro, implementare le applicazioni consumer in più regioni e usare Gestione traffico di Azure o il routing di Azure Front Door. Usare il modello di indicatori di distribuzione per ottenere la ridondanza a livello di carico di lavoro tra aree.

  • Progettare un ridimensionamento affidabile per i caricamenti di eventi variabili: Usare la scalabilità automatica in Griglia di eventi per gestire volumi di eventi variabili senza intervento manuale. Configurare i criteri di recapito delle sottoscrizioni per gestire le operazioni di ridimensionamento, inclusi i criteri di ripetizione dei tentativi e le destinazioni dei messaggi non recapitabili. Progettare strategie di unità di scala per le applicazioni consumer usando la scalabilità orizzontale tra istanze e aree.

    Monitorare le operazioni di ridimensionamento per mantenere l'elaborazione continua degli eventi quando cambiano i modelli di carico. Quando si progettano le strategie di ridimensionamento, tenere conto dei limiti di limitazione delle sottoscrizioni per evitare errori di recapito. Configurare la scalabilità automatica per le applicazioni consumer in modo che possano gestire picchi nei volumi di eventi. Basare decisioni di ridimensionamento degli utenti sulle metriche di Event Grid, come gli eventi non recapitati e il numero di tentativi di consegna.

  • Implementare il monitoraggio e l'invio di avvisi per mantenere l'affidabilità: Configurare le metriche per tenere traccia degli indicatori di affidabilità chiave, ad esempio percentuali di esito positivo del recapito, conteggi recapito non riusciti e volumi di messaggi non recapitabili. Configurare il monitoraggio della disponibilità degli argomenti e dello stato di salute degli endpoint consumer.

    Implementare gli avvisi di rilevamento degli errori con soglie definite per i fallimenti di consegna, l'indisponibilità del consumatore e l'integrità delle dipendenze. Tenere traccia del tempo di ripristino per misurare i ritardi di elaborazione rispetto agli obiettivi. Monitorare l'integrità delle dipendenze, come gli account di archiviazione, le Funzioni di Azure e i servizi consumer, che influiscono sull'elaborazione degli eventi.

    Configurare il monitoraggio della salute composita per combinare le metriche di Event Grid con gli indicatori di prestazioni dei consumatori. Configurare le procedure di escalation degli avvisi per gli eventi di affidabilità critici.

  • Implementare strategie di test di affidabilità per i sistemi basati su eventi: Generare eventi sintetici per testare l'affidabilità del recapito in diversi scenari, inclusi carichi di volumi elevati e case perimetrali. Usare chaos engineering per convalidare la resilienza dell'elaborazione degli eventi durante gli errori dell'infrastruttura simulata. Configurare i test automatizzati per verificare che i criteri di ripetizione dei tentativi, la gestione dei messaggi non recapitabili e il failover del consumer funzionino come previsto.

  • Progettare una strategia di ripristino di emergenza per la continuità aziendale: Scegliere tra due opzioni di failover. Per il failover avviato da Microsoft, usare l'impostazione tra aree geografiche. Questa impostazione replica automaticamente i metadati in aree abbinate e tenta un failover ottimale quando si verifica un'interruzione a livello di area. Per il failover avviato dal cliente, usare l'impostazione a livello di area e implementare modelli di ripristino di emergenza lato client quando è necessario il controllo completo sulla selezione dell'area secondaria e sui tempi di failover.

    Usare IaC per configurare il backup automatico per le configurazioni delle sottoscrizioni e le regole di routing. Progettare il disaster recovery attivo-passivo con implementazioni consumer in standby nelle regioni secondarie. Definire l'obiettivo del tempo di ripristino (RTO) e l'obiettivo del punto di ripristino (RPO) in base alle esigenze aziendali.

    Configurare le destinazioni dei messaggi non recapitabili con ridondanza geografica usando la replica di archiviazione tra aree per evitare la perdita di eventi. Testare regolarmente le procedure di ripristino di emergenza, compreso il failover tra aree e il reindirizzamento del produttore. Progettare funzionalità di riproduzione degli eventi da destinazioni di messaggi non recapitabili per recuperare l'elaborazione persa durante le interruzioni.

  • Implementare tecniche di auto-protezione per garantire la resilienza operativa: Integrare l'auto-protezione nel carico di lavoro di Event Grid in modo che possa essere ripristinato rapidamente da errori e continuare a funzionare.

    • Configurare i criteri di ripetizione con backoff esponenziale per gestire automaticamente i temporanei errori dei client.

    • Usare le destinazioni per lettere morte per conservare gli eventi non recapitabili e prevenire la perdita di dati.

    • Aggiungere modelli di interruttore alle applicazioni consumer per evitare errori a catena.

    • Configurare filtri di sottoscrizione e routing per isolare gli errori e ridurre al minimo l'impatto.

    • Creare strategie di riduzione delle prestazioni che mantengono in esecuzione l'elaborazione di eventi critici quando le dipendenze non essenziali hanno esito negativo.

    • Usare le garanzie di recapito predefinite e l'ordinamento per mantenere la coerenza dei dati durante gli errori parziali.

    • Impostare valori TTL (Time-to-Live) appropriati per gli eventi per evitare l'esaurimento delle risorse durante le interruzioni estese.

Consigli sulla configurazione

Raccomandazione Beneficio
Configurare il ridimensionamento delle applicazioni consumer in base alle metriche di Griglia di eventi, ad esempio i conteggi degli eventi non recapitati e i tentativi di recapito. Creare regole di ridimensionamento personalizzate che vengono attivate nei volumi delle code dei messaggi non recapitabili.

Implementare il monitoraggio a livello di sottoscrizione che include soglie diverse per ogni tipo di evento. Usare App per la logica di Azure o Funzioni per automatizzare il ridimensionamento delle risposte in base a queste metriche.
Ridimensiona i consumer in base alla domanda effettiva di elaborazione degli eventi anziché solo all'uso delle risorse. Rileva in anticipo i problemi di capacità per evitare errori di recapito. Consente di personalizzare le strategie di ridimensionamento per diversi tipi di eventi.
Monitorare le metriche del tasso di successo del recapito e configurare le notifiche con soglie che rispettano gli SLO. Creare dashboard che mostrano percentuali di successo del recapito, latenza e tempi di risposta degli utenti. Aggregare le metriche nelle finestre temporali appropriate per misurare gli indicatori a livello di servizio. Mostra quanto bene soddisfi i tuoi obiettivi di livello di servizio tramite metriche in tempo reale. Consente di identificare i problemi di affidabilità prima che influiscano sull'azienda. Fornisce dati cronologici per migliorare i miglioramenti.
Configurare il monitoraggio delle code dei messaggi non recapitabili con notifiche di avviso per i volumi che superano le soglie, tipicamente l'1% degli eventi. Configurare i controlli di integrità degli endpoint di consumo che monitorano la disponibilità e i tempi di risposta.

Creare controlli di integrità compositi che combinano Griglia di eventi e metriche consumer. Impostare l'escalation degli avvisi quando più indicatori peggiorano contemporaneamente.
Rileva i problemi sistemici nelle prime fasi della pipeline di eventi. Consente di rispondere rapidamente agli eventi imprevisti notificando automaticamente alle persone giuste quando si verificano problemi. Offre visibilità end-to-end dalla pubblicazione di eventi all'elaborazione consumer.
Creare gruppi di test automatizzati che generano eventi sintetici con dimensioni e tipi di payload diversi. Usare Test di carico di Azure per simulare volumi di eventi realistici. Configurare test automatizzati per verificare che i criteri di ripetizione dei tentativi funzionino correttamente per errori temporanei e permanenti. Controlla l'affidabilità del recapito in condizioni di carico realistiche. Verifica la gestione dei tentativi e degli errori prima della distribuzione nell'ambiente di produzione. Convalida la configurazione in modo continuo tramite la pipeline di integrazione continua e distribuzione continua (CI/CD).
Usare Azure Chaos Studio per introdurre guasti nei clienti e nelle dipendenze. Configurare scenari di errore controllati, ad esempio interruzioni di zona, interruzioni dei consumatori e partizioni di rete.

Progettare test di inserimento degli errori per gli account di archiviazione che supportano le destinazioni di messaggi non recapitabili. Configurare i controlli di ripristino automatizzato per verificare che i sistemi tornino a uno stato integro.
Convalida la resilienza dell'elaborazione degli eventi in condizioni di errore realistiche. Identifica i gap di affidabilità prima che causino eventi imprevisti di produzione. Crea fiducia nelle procedure di ripristino di emergenza tramite simulazione sistematica.
Abilitare il failover avviato da Microsoft configurando gli argomenti con l'impostazione predefinita di residenza dei dati tra aree geografiche. Questa impostazione replica automaticamente i metadati in aree abbinate durante le interruzioni. In alternativa, è possibile configurare l'impostazione di residenza dei dati a livello di area e implementare il failover avviato dal cliente usando modelli di ripristino di emergenza lato client. Usare questa opzione quando è necessario il controllo completo sulle aree secondarie.

Configurare procedure di failover automatizzate per le applicazioni dei produttori per reindirizzare verso argomenti secondari regionali in caso di guasto della regione primaria.
Esegue automaticamente il failover dei metadati in regioni accoppiate durante le interruzioni regionali quando si usa la configurazione transgeografica. Fornisce il controllo completo sulle aree secondarie da usare e su quando attivare il failover quando si usa la configurazione a livello di area e il ripristino di emergenza lato client. Riduce l'intervento manuale durante le emergenze tramite failover automatizzato.
Implementare il backup automatico della configurazione usando l'interfaccia della riga di comando di Azure o gli script di Azure PowerShell. Archiviare script e modelli di backup nel sistema di controllo delle versioni insieme ai runbook per il ripristino di emergenza. Per proteggere gli eventi non recapitati da guasti regionali, configurare l'archiviazione con ridondanza geografica per le destinazioni di messaggi non recapitabili. Abilita il ripristino rapido della configurazione durante gli scenari di emergenza e impedisce la perdita di eventi tramite l'archiviazione con ridondanza geografica. Garantisce procedure di ripristino coerenti tramite l'automazione controllata dalla versione.
Configurare le applicazioni dei consumatori in standby nelle aree secondarie con un'infrastruttura pre-provisionata. Per attivare i consumatori secondari, implementare il failover automatizzato usando Automazione di Azure o Logic Apps. Configurare la capacità di riproduzione degli eventi dall'archiviazione delle lettere non recapitate per recuperare le elaborazioni perse. Consente di attivare rapidamente i clienti durante i disastri regionali e di raggiungere gli obiettivi RTO e RPO tramite procedure testate. Consente di ripristinare completamente l'elaborazione tramite funzionalità di riproduzione.
Configurare le politiche di ritentativo con il backoff esponenziale (1 secondo iniziale, massimo 24 ore) per gestire gli errori temporanei dei consumatori. Configurare le destinazioni dei messaggi non recapitabili usando le code di Archiviazione di Azure o le code di Azure Service Bus per preservare gli eventi non recapitabili.

Impostare il TTL dell'evento in base ai requisiti aziendali (in genere da uno a sette giorni) per evitare l'esaurimento delle risorse. Usare il filtro delle sottoscrizioni per inviare i tipi di evento alle destinazioni appropriate e ridurre al minimo il raggio dell'esplosione.
Consente alla piattaforma di eseguire automaticamente il ripristino da errori temporanei senza intervento manuale. Mantiene gli eventi durante interruzioni prolungate in modo da poterli rielaborare e analizzarli in un secondo momento.

Implementa la gestione degli errori tramite il routing degli eventi e TTL (Time to Live) per prevenire il sovraccarico a livello di sistema.
Implementare schemi circuit breaker usando librerie di resilienza come Polly per .NET o resilience4j per Java per prevenire errori a catena. Configurare l'interruttore per interrompere l'invio di richieste a un consumer non riuscito dopo un numero specifico di errori, in genere cinque errori consecutivi.

Progettare meccanismi di fallback in modo che gli eventi critici continuino l'elaborazione quando le dipendenze non essenziali hanno esito negativo. Configurare gli endpoint di controllo dell'integrità per il monitoraggio dei consumatori in modo che il traffico possa essere reindirizzato automaticamente.
Impedisce gli errori a catena isolando automaticamente le dipendenze quando i clienti falliscono. Mantiene l'elaborazione di eventi critici tramite meccanismi di fallback durante errori parziali del sistema.

Consente il ripristino automatico e la gestione intelligente del traffico tramite il routing basato sullo stato di salute.

Security

Lo scopo del pilastro Sicurezza è fornire garanzie di riservatezza, integrità e disponibilità al carico di lavoro.

I principi di progettazione della sicurezza forniscono una strategia di progettazione di alto livello per raggiungere tali obiettivi applicando approcci alla progettazione tecnica di Griglia di eventi.

Elenco di controllo per la progettazione del carico di lavoro

Avvia la tua strategia di progettazione in base alla checklist di revisione della progettazione per la sicurezza e identifica vulnerabilità e controlli per migliorare il profilo di sicurezza.

  • Stabilire una baseline di sicurezza per le distribuzioni: Esaminare la baseline di sicurezza e usarla per configurare i controlli per le operazioni, la protezione dei dati e la gestione degli accessi. L'implementazione deve includere la gestione delle identità e degli accessi, la sicurezza di rete, la crittografia e la registrazione.

    Usare le linee guida di base per esigenze specifiche di Griglia di eventi, ad esempio il controllo di accesso agli argomenti e la sicurezza delle sottoscrizioni. Allinea i controlli di Microsoft Cloud Security Benchmark per mantenere coerente il comportamento di sicurezza. Rivedere regolarmente la linea di base al variare dei requisiti e delle minacce.

  • Implementare controlli di segmentazione per l'isolamento del carico di lavoro basato su eventi: Stabilire l'identità come limite di sicurezza principale usando il controllo degli accessi in base al ruolo di Azure per controllare l'accesso alle risorse di Griglia di eventi. Assegnare ruoli RBAC predefiniti, inclusi Collaboratore Griglia di Eventi, Collaboratore Sottoscrizione Eventi Griglia e Mittente Dati Griglia di Eventi.

    Usare argomenti separati per isolare domini applicazione e funzioni aziendali diversi. Configurare i controlli di accesso a livello di sottoscrizione in modo che solo i consumer autorizzati possano ricevere eventi. Per creare limiti di separazione e accesso chiari, organizzare le risorse di Griglia di eventi usando gruppi di risorse e sottoscrizioni.

    Mantenere separate le identità del publisher e del subscriber usando identità gestite e principali del servizio. Configurare il filtro e il routing degli eventi per ridurre al minimo il raggio di esplosione e indirizzare gli eventi solo ai consumer desiderati.

  • Eseguire l'integrazione con Microsoft Entra ID per la gestione centralizzata delle identità e degli accessi: Usare Microsoft Entra ID per gestire l'autenticazione e l'autorizzazione per Griglia di eventi. Configurare le identità gestite per l'autenticazione da servizio a servizio in modo da non dover archiviare le credenziali. Configurare i criteri di accesso condizionale di Microsoft Entra che rispondono al contesto utente, allo stato del dispositivo e al percorso di rete.

    Mantenere le autorizzazioni del piano dati (pubblicazione e utilizzo di eventi) separate dalle autorizzazioni del piano di controllo (gestione delle risorse). Applicare i principi di accesso JUST-In-Time e Just-Enough per le operazioni amministrative.

    Configurare le tracce di audit tramite il registro delle attività in Monitoraggio di Azure per tenere traccia delle decisioni relative all'accesso e all'autorizzazione delle identità. Usare i gruppi di ID Entra di Microsoft per assegnare ruoli e gestire l'accesso.

  • Applicare i controlli di sicurezza di rete per la comunicazione sicura degli eventi: Configurare endpoint privati per gli argomenti di Griglia di eventi per eliminare l'esposizione a Internet e integrare endpoint privati con la rete virtuale. Configurare il filtro degli indirizzi IP e le regole del firewall a livello di argomento per consentire l'accesso solo da indirizzi e intervalli di origine autorizzati.

    Pianificare l'integrazione della rete virtuale per connettere editori, Event Grid e consumatori entro i limiti di rete. Usare i gruppi di sicurezza di rete e le tabelle di route per controllare il flusso del traffico e creare micro-segmentazione.

    Configurare il monitoraggio e la registrazione di rete per tenere traccia dei modelli di traffico e dei tentativi di connessione di Griglia di eventi.

  • Implementare la crittografia dei dati per la protezione degli eventi: Griglia di eventi crittografa automaticamente i dati inattivi usando le chiavi della piattaforma gestita da Microsoft per gli eventi e i metadati archiviati. Richiedere Transport Layer Security (TLS) 1.2 come versione minima per tutte le comunicazioni di Griglia di eventi, inclusa la pubblicazione e l'utilizzo di eventi. Configurare la gestione dei certificati per le connessioni TLS per automatizzare il rinnovo e la convalida.

    La piattaforma crittografa l'archiviazione degli eventi temporanei durante gli scenari di elaborazione e ripetizione dei tentativi di recapito. Gli argomenti e i domini di Event Grid non supportano chiavi gestite dal cliente.

  • Rafforzare le configurazioni di Griglia di eventi per ridurre al minimo la superficie di attacco: Ridurre al minimo la superficie di attacco di Griglia di eventi tramite la protezione sistematica delle configurazioni:

    • Disabilitare i metodi e i protocolli di autenticazione non necessari. Mantenere solo i meccanismi necessari.

    • Configurare le impostazioni di argomento e sottoscrizione seguendo i principi relativi ai privilegi minimi. Rimuovere le funzionalità inutilizzate.

    • Rimuovere o disabilitare il supporto del protocollo legacy e i metodi di autenticazione che creano rischi per la sicurezza.

    • Configurare le impostazioni a livello di risorsa con impostazioni predefinite incentrate sulla sicurezza per i valori di timeout e i criteri di ripetizione dei tentativi.

    • Usare convenzioni di denominazione sicure e organizzare le risorse per evitare perdite di informazioni.

    • Configurare le autorizzazioni minime necessarie per le entità servizio e le identità gestite di Event Grid.

    • Assegnare i criteri predefiniti di Azure Policy per Event Grid a livello di sottoscrizione, ad esempio gli argomenti di Azure Event Grid devono usare un collegamento privato.

  • Proteggere segreti e credenziali per le integrazioni di Griglia di eventi: È consigliabile usare Microsoft Entra ID con identità gestite perché elimina la necessità di segreti archiviati. Se non si usa Microsoft Entra ID, archiviare le stringhe di connessione, le chiavi API e i token di autenticazione in Azure Key Vault con controlli di accesso e criteri di rotazione.

    Usare chiavi separate per ambienti e consumer diversi in modo da non condividere le credenziali. Configurare la rotazione automatica dei segreti per le chiavi di accesso di Event Grid e i token webhook per ridurre al minimo le interruzioni. Non incorporare segreti in modo fisso nelle applicazioni del gestore degli eventi, nei file di configurazione o nelle pipeline di deployment.

    Monitorare i modelli di accesso ai segreti tramite il controllo di Key Vault e configurare avvisi per tentativi insoliti. Creare procedure di ripristino per le credenziali compromesse, tra cui come rigenerare rapidamente le chiavi.

  • Implementare il monitoraggio e la registrazione della sicurezza per Griglia di eventi: Configurare le impostazioni di diagnostica di Monitoraggio di Azure per acquisire eventi rilevanti per la sicurezza, inclusi i tentativi di accesso e le modifiche alla configurazione. Implementare la registrazione attività per le operazioni di Event Grid, tra cui la creazione di argomenti, la gestione delle sottoscrizioni e le modifiche ai criteri. Monitorare i modelli di identità e di accesso tramite il log attività in Monitoraggio di Azure per identificare modelli e errori di autorizzazione insoliti.

    Configurare avvisi per eventi di sicurezza come l'autenticazione non riuscita, l'accesso non autorizzato e i modelli sospetti. Integrare i log di Griglia di eventi con Microsoft Sentinel per il rilevamento delle minacce e l'analisi della sicurezza. Usare la registrazione strutturata con timestamp e metadati degli eventi per analizzare i problemi di sicurezza e analizzare gli eventi imprevisti.

    Monitorare i modelli di recapito degli eventi per comportamenti insoliti che potrebbero segnalare eventi imprevisti di sicurezza. Configurare i criteri di conservazione dei log che soddisfano i requisiti di sicurezza e conformità dell'organizzazione.

  • Convalidare i controlli di sicurezza tramite test e valutazione sistematici: Eseguire test di convalida regolari sui controlli di accesso di Griglia di eventi, sulla sicurezza di rete e sulle impostazioni di crittografia.

    • Eseguire test di penetrazione incentrati su endpoint, meccanismi di autenticazione e tentativi di ignorare i controlli di accesso.

    • Testare i controlli di sicurezza di rete, ad esempio la configurazione dell'endpoint privato, il filtro degli indirizzi IP e l'integrazione della rete virtuale.

    • Testare la gestione delle identità e degli accessi, incluse le assegnazioni di controllo degli accessi basato su ruolo, i criteri di accesso condizionale e l'autenticazione delle identità gestite. Verificare che gli eventi rimangano protetti nell'intera pipeline, dagli editori tramite Event Grid ai consumatori.

    • Implementare test di sicurezza automatizzati nelle pipeline di distribuzione per rilevare errori di configurazione.

Consigli sulla configurazione

Raccomandazione Beneficio
Assegnare i ruoli predefiniti di RBAC (controllo degli accessi basato sul ruolo) agli ambiti appropriati per implementare un accesso con privilegi minimi. Assegnare il ruolo Collaboratore a Event Grid agli utenti che gestiscono argomenti e sottoscrizioni. Assegnare agli utenti che gestiscono solo le sottoscrizioni di eventi il ruolo di Collaboratore delle sottoscrizioni agli eventi di Event Grid. Assegnare il ruolo di Mittente dei dati di Event Grid per le applicazioni che pubblicano eventi. Allinea i controlli di accesso con le responsabilità operative. Applica l'accesso con privilegi minimi mantenendo separate le operazioni di gestione e piano dati.
Organizzare gli argomenti usando gruppi di risorse che corrispondono ai limiti di sicurezza e operativi. Usare le convenzioni di denominazione che riflettono i limiti di sicurezza e i requisiti di accesso. Configurare il filtro delle sottoscrizioni per inviare eventi solo ai consumer autorizzati. Separa i flussi di eventi in base ai criteri di sicurezza e riduce il raggio dell'esplosione attraverso strutture di argomento isolate. Stabilisce limiti organizzativi chiari per la conformità.
Assegnare identità gestite ad argomenti, sottoscrizioni e gestori eventi di Event Grid per l'autenticazione del servizio Azure. Usare le identità assegnate dal sistema per scenari a singola risorsa o identità assegnate dall'utente quando è necessario condividere le identità. Configurare le identità gestite per Funzioni di Azure, App per la logica e account di archiviazione che gestiscono gli eventi. Elimina le credenziali archiviate e i relativi rischi di sicurezza associati. Fornisce la rotazione automatica delle credenziali tramite Azure e abilita l'autenticazione sicura da servizio a servizio senza la gestione manuale dei segreti.
Abilitare i criteri di accesso condizionale per le operazioni di gestione di Griglia di eventi. Richiedere l'autenticazione a più fattori (MFA) per operazioni con privilegi come la creazione di argomenti e le modifiche ai criteri. Impostare controlli basati sulla posizione che limitano la gestione alle aree autorizzate.

Assicurarsi che i dispositivi soddisfino i requisiti di conformità per l'accesso amministrativo.
Applica i controlli di sicurezza in base al rischio e al contesto. Riduce l'accesso non autorizzato richiedendo l'autenticazione aggiuntiva. Consente di adattare i criteri di sicurezza man mano che cambiano le minacce.
Distribuire endpoint privati per gli argomenti di Event Grid nella rete virtuale. Configurare le impostazioni DNS (Domain Name System) per la risoluzione corretta dei nomi.

Configurare i gruppi di sicurezza di rete (NSG) e le tabelle di routing per controllare il flusso del traffico.
Elimina l'esposizione a Internet tramite l'isolamento a livello di rete e abilita la comunicazione sicura all'interno della rete virtuale. Fornisce il controllo di accesso centralizzato tramite i gruppi di sicurezza.
Configurare le regole di filtro degli indirizzi IP a livello di argomento usando un elenco elementi consentiti. Negare l'accesso per impostazione predefinita e consentire solo gli indirizzi di origine autorizzati e gli intervalli CIDR (Classless Inter-Domain Routing). Configurare il monitoraggio e l'invio di avvisi per i tentativi di accesso bloccati. Controlla l'accesso alla rete a livello di servizio e riduce la superficie di attacco limitando l'accesso alle origini note. Consente di rilevare tentativi di accesso non autorizzati.
Richiedere TLS 1.2 come versione minima per tutte le comunicazioni di Griglia di eventi. Configurare le impostazioni TLS per gli endpoint di dominio personalizzati e le destinazioni webhook. Implementare la convalida del certificato per gli endpoint webhook che ricevono eventi. Protegge dagli attacchi di downgrade del protocollo usando la crittografia standard del settore per i dati in transito. Impedisce attacchi man-in-the-middle tramite la convalida del certificato.
Usare Criteri di Azure per applicare gli standard di configurazione della sicurezza e prevenire la deriva. Usare IaC per configurazioni di sicurezza coerenti in tutti gli ambienti. Disabilitare i metodi di autenticazione non necessari e il supporto del protocollo legacy. Impostare i valori minimi di timeout necessari e i criteri di ripetizione dei tentativi.

Monitorare le modifiche alla configurazione e configurare avvisi automatizzati per modifiche non autorizzate.
Riduce la superficie di attacco rimuovendo le funzionalità non necessarie e impedendo la deriva della configurazione applicando i criteri. Mantiene il comportamento di sicurezza coerente tra gli ambienti e consente di rilevare rapidamente modifiche non autorizzate.
Archiviare le credenziali client di Event Grid in Key Vault con controlli di accesso basati sui ruoli. Abilitare la rotazione automatica dei segreti per le chiavi di accesso e i token webhook.

Usare chiavi separate per ogni ambiente e applicazione.
Fornisce archiviazione sicura con controllo di accesso e verifica. Automatizza la gestione del ciclo di vita delle credenziali e mantiene l'accesso separato tramite chiavi specifiche dell'ambiente.
Abilitare le impostazioni di diagnostica per inviare i log di Griglia di eventi all'area di lavoro Log Analytics. Configurare le regole di avviso per l'autenticazione non riuscita, l'accesso non autorizzato e le modifiche alla configurazione. Eseguire l'integrazione con Microsoft Sentinel per il rilevamento delle minacce e l'analisi della sicurezza.

Impostare i criteri di conservazione dei log che soddisfano i requisiti di conformità.
Offre visibilità sugli eventi di sicurezza e sulle potenziali minacce. Consente di rispondere rapidamente agli eventi imprevisti tramite avvisi automatizzati e supporta la conformità tramite la registrazione strutturata e la conservazione. Rileva le minacce tramite l'analisi della sicurezza.

Ottimizzazione dei costi

L'ottimizzazione dei costi è incentrata su rilevare modelli di spesa, assegnare priorità agli investimenti in aree critiche e ottimizzare in altri per soddisfare il budget dell'organizzazione rispettando i requisiti aziendali.

I principi di progettazione di ottimizzazione dei costi forniscono una strategia di progettazione di alto livello per raggiungere tali obiettivi e implementare compromessi quando necessario nella progettazione tecnica correlata a Event Grid e al relativo ambiente.

Elenco di controllo per la progettazione del carico di lavoro

Avvia la tua strategia di progettazione basata sulla checklist di revisione del design per l'ottimizzazione dei costi negli investimenti. Ottimizzare la progettazione in modo che il carico di lavoro sia allineato al budget allocato per esso. La progettazione deve usare le funzionalità di Azure appropriate, monitorare gli investimenti e trovare opportunità per ottimizzare nel tempo.

  • Analizzare i modelli di determinazione dei prezzi e le strutture dei costi per ottimizzare le spese di Griglia di eventi: Valutare i livelli Basic e Standard di Griglia di eventi per comprendere in che modo i modelli tariffari influiscono sui costi della soluzione. Il livello Basic usa i prezzi per operazione, che offre costi prevedibili per scenari di distribuzione push semplici e con volume ridotto. Il livello Standard combina unità di throughput pre-acquistate (UT) con addebiti per operazione.

    Ogni TU offre una capacità fissa per sessioni, tasso di ingresso messaggi al secondo e argomenti per namespace. Le TU hanno un costo orario fisso indipendentemente dall'utilizzo. Il sotto-approvvigionamento causa la limitazione e la riduzione delle prestazioni del servizio. Il sovraprovisionamento spreca denaro per capacità inutilizzata.

    Le operazioni MQTT costano più delle operazioni degli eventi. Pianificare addebiti per la larghezza di banda per il trasferimento dei dati tra aree quando si recapitano eventi in aree di Azure diverse. Includere i costi di conservazione degli eventi e di archiviazione dei messaggi non recapitabili oltre ai prezzi di base di Event Grid.

  • Ottimizzare la capacità e la velocità effettiva per un'elaborazione di eventi economicamente conveniente: Configurare il raggruppamento di eventi in batch per recapitare più eventi in singole operazioni e ridurre i costi per ogni operazione. Ottimizzare le dimensioni del batch durante i test di carico. Applicare il filtro degli eventi a livello di sottoscrizione per impedire l'elaborazione e il recapito non necessari di eventi irrilevanti. Configurare i criteri di gestione e ripetizione dei messaggi non recapitabili per gestire i tentativi di elaborazione e i costi di archiviazione.

    Definire i criteri di conservazione degli eventi per bilanciare la disponibilità dei dati con i costi di archiviazione. Pianificare la capacità di tenere conto dei volumi di eventi di picco e dei modelli di elaborazione.

  • Eliminare gli sprechi di risorse e ottimizzare le configurazioni: Rimuovere sistematicamente gli sprechi di risorse di Griglia di eventi tramite procedure di ottimizzazione:

    • Rimuovere gli argomenti, le sottoscrizioni e gli endpoint di Griglia di eventi inutilizzati che generano costi senza valore.

    • Pulire le risorse abbandonate, incluse le destinazioni dei messaggi non recapitabili e gli argomenti personalizzati inutilizzati.

    • Configurare i criteri di conservazione degli eventi per bilanciare la disponibilità dei dati con i costi di archiviazione.

    • Ottimizzare le impostazioni di recapito, i criteri di ripetizione dei tentativi e le regole di filtro per migliorare l'efficienza dei costi.

    • Eseguire verifiche regolari delle risorse per identificare le risorse sottoutilizzate che si possono ottimizzare o dismettere.

    • Consolidare sottoscrizioni simili per ridurre il sovraccarico di gestione.

  • Implementare meccanismi di monitoraggio e controllo dei costi: Monitorare i modelli di utilizzo, i volumi operativi e le tendenze di spesa per stabilire la visibilità dei costi. Usare l'analisi dei costi per identificare i driver dei costi, inclusi volumi di eventi, tentativi di recapito e trasferimento dei dati tra aree.

    Configurare avvisi di budget, limiti di spesa e criteri automatizzati per controllare i costi. Per il livello Standard, monitorare le percentuali di utilizzo delle TU per trovare opportunità di ottimizzazione e configurare avvisi per le soglie di utilizzo delle risorse. Abilitare il monitoraggio in tempo reale per rilevare le anomalie dei costi in anticipo.

    Implementare la creazione di report sui costi per ottenere visibilità dettagliata in base a risorse, ambiente e business unit. Per prevedere i costi futuri, eseguire analisi cronologiche per identificare tendenze e modelli stagionali.

  • Stabilire criteri e controlli di governance dei costi: Definire la governance dei costi usando i criteri dell'organizzazione per incoraggiare la spesa responsabile. Usare i criteri delle risorse per applicare configurazioni consapevoli dei costi e impedire configurazioni errate costose.

    Creare flussi di lavoro di approvazione per distribuzioni a costi elevati e utilizzo delle funzionalità. Eseguire revisioni dei costi regolari e valutazioni di ottimizzazione per mantenere la disciplina dei costi. Applicare controlli basati su criteri per applicare requisiti di assegnazione di tag, limiti delle risorse e standard di allocazione dei costi.

Consigli sulla configurazione

Raccomandazione Beneficio
Usare le linee guida per il confronto dei livelli per scegliere il livello griglia di eventi in base alle funzionalità e ai vincoli di costo necessari. Controllare regolarmente i modelli di utilizzo per convalidare la selezione del livello. Impedisce di pagare per funzionalità Premium inutilizzate e adegua le capacità di livello ai tuoi modelli di utilizzo.
Configurare batch di eventi per recapitare più eventi in singole operazioni. Applicare filtri eventi a livello di sottoscrizione per elaborare solo gli eventi rilevanti. Riduce i costi per operazione tramite il recapito in batch ed elimina il costo dell'elaborazione di eventi irrilevanti.
Monitorare i modelli di elaborazione degli eventi e il picco di utilizzo usando il monitoraggio della distribuzione di eventi per stabilire la capacità di base. Usare le metriche di portata dati per ottimizzare le risorse.

Tenere conto delle variazioni stagionali e delle proiezioni di crescita quando si pianifica la capacità.
Impedisce il provisioning eccessivo. Garantisce prestazioni sufficienti per i carichi di picco regolando la capacità in base ai modelli di utilizzo.
Ottimizzare le configurazioni di recapito, ad esempio le impostazioni di timeout e ripetizione dei tentativi, per bilanciare l'affidabilità con i costi. Per ulteriori informazioni, vedere Consegna e ritentativo. Usare il filtro eventi per configurare politiche di gestione dei messaggi non recapitabili. Riduce i costi dei tentativi e mantiene l'affidabilità riducendo al minimo i costi di archiviazione e mantenendo la visibilità degli errori.
Usare Gestione costi Microsoft per tenere traccia dei modelli di spesa e implementare l'analisi dei costi. Configurare la creazione di report automatizzati sui costi che organizzano i costi in base a risorse, ambiente e business unit.

Usare l'analisi dei costi per identificare le operazioni a costi elevati e le opportunità di ottimizzazione.
Offre visibilità sugli schemi di spesa. Consente di assegnare i costi ai team e di identificare le operazioni a costi elevati.
Configurare gli avvisi sui costi che includono più livelli di soglia a livello di sottoscrizione, gruppo di risorse e argomento. Abilitare il rilevamento anomalie dei costi per identificare modelli di spesa insoliti. Configurare i limiti del budget con avvisi automatizzati e limiti di spesa.

Implementare la previsione di bilancio in base alle tendenze di elaborazione.
Impedisce il sovraccarico dei costi con avvisi iniziali a più livelli dell'organizzazione, rileva problemi di configurazione o modelli di utilizzo insoliti e consente di pianificare la spesa futura in base alla crescita stimata.
Applicare tag di risorsa usando convenzioni di denominazione coerenti, ad esempio ambiente, applicazione, business unit, centro di costo e progetto. Aggiungere tag a livello di argomento, sottoscrizione ed endpoint per il rilevamento granulare. Consente di assegnare costi a business unit e progetti specifici per il chargeback e di identificare modelli di elaborazione di eventi a costi elevati.

Eccellenza operativa

L'eccellenza operativa si concentra principalmente sulle procedure per le pratiche di sviluppo , l'osservabilità e la gestione dei rilasci. I principi di progettazione di eccellenza operativa forniscono una strategia di progettazione di alto livello per raggiungere tali obiettivi relativi ai requisiti operativi del flusso di lavoro.

Elenco di controllo per la progettazione del carico di lavoro

Avvia la strategia di progettazione basata sull'elenco di controllo della revisione della progettazione per l'eccellenza operativa per definire i processi per l'osservabilità, i test e la distribuzione correlati a Event Grid.

  • Valutare l'idoneità del team per le operazioni di Griglia di eventi: Sviluppare le conoscenze operative del team nella progettazione dello schema di eventi, nella configurazione del routing, nei modelli consumer, nella gestione dei messaggi non recapitabili, nei criteri di ripetizione dei tentativi e nella gestione delle sottoscrizioni.

    Creare la documentazione per le linee guida per la progettazione dello schema, i modelli di configurazione delle sottoscrizioni e la risoluzione dei problemi dei runbook. Documentare i modelli di routing degli eventi, i requisiti degli endpoint e le strategie di gestione degli errori.

    Definire gli standard per il controllo delle versioni dello schema e le procedure di distribuzione consumer. Definire i processi di gestione del ciclo di vita del servizio, inclusi il provisioning degli argomenti, il ciclo di vita della sottoscrizione e i flussi di lavoro di dismissione.

  • Stabilire procedure di distribuzione sicure: Implementare la distribuzione blu-verde usando configurazioni di argomenti parallele con il routing del traffico. Usare la distribuzione progressiva con il controllo delle versioni dello schema nei payload degli eventi e nelle implementazioni di consumer a fasi.

    Definire le procedure di rollback per il ripristino rapido tramite la riversione della configurazione e il rollback della distribuzione. Configurare controlli di qualità, tra cui la convalida dello schema, i controlli di integrità degli endpoint e la verifica del recapito.

  • Implementare IaC per la gestione delle risorse: Usare strumenti IaC come i modelli di Azure Resource Manager (modelli arm), Bicep e Terraform per configurare le risorse e gestire le configurazioni. Configurare i file di parametri per impostazioni specifiche dell'ambiente, ad esempio la denominazione degli argomenti, i filtri delle sottoscrizioni e i criteri di sicurezza. Includere argomenti, sottoscrizioni, filtri eventi, destinazioni di messaggi non recapitabili e impostazioni di sicurezza nella configurazione.

    Implementare la distribuzione a più livelli per gestire le dipendenze tra le risorse di Event Grid, i servizi consumer e i provider di identità. Configurare il rilevamento delle deviazioni per individuare deviazioni dai filtri di abbonamento desiderati, criteri di ripetizione e impostazioni di sicurezza.

  • Progettare pipeline di compilazione e distribuzione per carichi di lavoro: Progettare l'architettura della pipeline per coordinare la distribuzione degli argomenti, la configurazione della sottoscrizione e le versioni delle applicazioni consumer. Implementare una distribuzione specifica dell'ambiente per configurazioni diverse, ad esempio la denominazione degli argomenti, i filtri delle sottoscrizioni e i criteri di sicurezza.

    Usare strumenti CI/CD come Azure DevOps e GitHub Actions per supportare la distribuzione delle risorse e il coordinamento degli utenti. Impostare controlli di sicurezza come la convalida dello schema, la verifica della sicurezza degli endpoint di rete e i controlli di conformità.

    Implementare la gestione degli artefatti per modelli di configurazione, definizioni dello schema e pacchetti di distribuzione consumer. Configurare l'integrazione del monitoraggio per ottenere visibilità sul successo della distribuzione e sulla salute post-distribuzione.

  • Implementare il monitoraggio e la registrazione per le operazioni: Definire una strategia di osservabilità per tenere traccia delle metriche di recapito, dei dati di telemetria dell'elaborazione dei consumer e del flusso di eventi end-to-end. Monitorare le metriche del servizio, ad esempio le percentuali di esito positivo del recapito, i conteggi dei tentativi, i volumi di messaggi non recapitabili e la latenza di elaborazione. Implementare la registrazione strutturata per acquisire GLI ID di correlazione degli eventi, elaborare i risultati, i dettagli degli errori e il contesto di risoluzione dei problemi.

    Integrare Azure Monitor per ottenere analisi di Event Grid come tendenze operative e informazioni dettagliate. Configurare un framework di allerta per supportare avvisi specifici per pilastro per affidabilità, prestazioni, sicurezza e costi.

    Abilitare il tracciamento distribuito per la visibilità end-to-end dalla pubblicazione di eventi attraverso l'elaborazione del consumatore. Creare dashboard di monitoraggio per ottenere visibilità in tempo reale sulle operazioni del carico di lavoro e sulla integrità del servizio Event Grid.

  • Stabilire operazioni e procedure di risposta di emergenza: Definire i processi di risposta agli incidenti per gli errori di recapito, le interruzioni per i consumatori, le interruzioni del servizio regionali e gli errori a catena. Stabilire operazioni di failover per interruzioni regionali tramite la replica di topic tra aree e il coordinamento dei consumatori.

    Creare procedure di risposta di emergenza per scenari di recapito di eventi critici, incluse le priorità di elaborazione e ripristino critiche dell'azienda. Definire protocolli di comunicazione per coordinare la risposta agli eventi imprevisti tra i team distribuiti che gestiscono l'infrastruttura e le applicazioni.

  • Automatizzare le operazioni di gestione e supporto di Griglia di eventi: Automatizzare le attività amministrative, ad esempio la creazione di argomenti, la gestione delle sottoscrizioni, la configurazione del filtro eventi e la configurazione dei messaggi non recapitabili. Automatizzare le operazioni di supporto, ad esempio la risoluzione dei problemi di raccolta dati, l'aggregazione dei log, la riproduzione degli eventi e le attività di manutenzione. Configurare il rilevamento della deviazione per monitorare i filtri delle sottoscrizioni, i criteri di ripetizione e le impostazioni di sicurezza.

    Usare Automation, Logic Apps e le API di Event Grid per costruire l'automazione. Creare moduli di automazione riutilizzabili che è possibile condividere tra carichi di lavoro.

  • Implementare strategie di test e convalida: Definire strategie di test come la convalida dello schema, la verifica degli endpoint, l'elaborazione end-to-end e i test di integrazione. Implementare framework di automazione dei test che convalidano continuamente la compatibilità degli schemi e l'elaborazione dei dati dei consumatori.

    Creare ambienti di test che corrispondano alla configurazione di produzione, incluse configurazioni degli argomenti, sottoscrizioni e distribuzioni consumer. Applicare approcci di test di produzione come la pubblicazione di eventi di tipo canary, la validazione dello stato di salute del consumer e la riproduzione controllata degli eventi. Usare strumenti di test come framework di convalida dello schema, utilità di test degli endpoint e funzionalità di simulazione.

    Testare le procedure di rollback per assicurarsi di poter eseguire il ripristino tramite il ripristino della configurazione e il rollback della distribuzione.

Consigli sulla configurazione

Raccomandazione Beneficio
Sviluppare moduli IaC usando modelli arm, Bicep o Terraform per argomenti, sottoscrizioni, domini e configurazioni di sicurezza. Creare progettazioni modulari con parametri per diversi scenari e impostazioni specifiche dell'ambiente. Offre distribuzioni coerenti tra ambienti, consente di riutilizzare i componenti e semplificare la manutenzione.
Configurare le impostazioni di diagnostica per instradare gli argomenti di sistema di Griglia di eventi, gli argomenti personalizzati e i log di dominio all'area di lavoro Log Analytics. Abilitare i log delle risorse per operazioni del piano dati, ad esempio tentativi di recapito di eventi e risposte webhook.

Creare dashboard di monitoraggio usando cartelle di lavoro di Monitoraggio di Azure che mostrano metriche come le percentuali di esito positivo del recapito, i conteggi dei tentativi, i volumi di messaggi non recapitabili e la latenza di elaborazione. Configurare regole di avviso per problemi di salute operativa, ad esempio errori di recapito, latenza elevata e accumulo di messaggi non recapitabili.
Offre visibilità sulle prestazioni di recapito degli eventi e sullo stato di salute del servizio. Consente di rilevare i problemi in anticipo e risolvere rapidamente i problemi tramite la registrazione centralizzata e gli avvisi.
Monitorare gli errori di recapito, la degradazione della latenza e l'accumulo di code morte con gli avvisi di Azure Monitor. Usare le regole di avviso basate sulle metriche per tenere traccia di questi problemi. Configurare i gruppi di azioni per rispondere automaticamente inviando notifiche, eseguendo flussi di lavoro di App per la logica o richiamando runbook.

Implementare avvisi intelligenti usando soglie dinamiche. Questa funzionalità apprende i modelli normali e solo gli avvisi quando le metriche deviano dalla linea di base, riducendo i falsi allarmi. Eliminare gli avvisi durante le finestre di manutenzione pianificata e le distribuzioni per ridurre le notifiche relative alle modifiche previste.
Consente di rispondere rapidamente ai problemi operativi tramite avvisi e azioni automatizzati. L'avviso intelligente riduce i falsi allarmi e il sovraccarico operativo, mantenendoti comunque informato sull'integrità dei servizi.
Sviluppare procedure di risposta agli eventi imprevisti per errori di recapito, interruzioni dei servizi agli utenti e failover regionali. Creare runbook che automatizzano attività comuni come l'elaborazione delle code di messaggi non recapitabili, il rollback delle configurazioni e il ripristino del servizio.

Stabilire protocolli di comunicazione che definiscono a chi eseguire l'escalation, come inviare notifiche agli stakeholder e come segnalare lo stato. Definire gli RTO e le procedure per diversi scenari di guasto, dalle interruzioni parziali alle interruzioni complete del servizio.
Abilita la risposta coordinata agli eventi imprevisti che riduce al minimo l'impatto del servizio e il tempo di ripristino. Fornisce procedure standardizzate che garantiscono una risposta coerente in diversi scenari di errore.
Automatizzare le attività amministrative, ad esempio la gestione di sottoscrizioni, gli argomenti di provisioning e la gestione delle configurazioni tramite Automazione, App per la logica e API griglia di eventi. Creare moduli di automazione riutilizzabili per operazioni comuni come gli aggiornamenti dei filtri, la configurazione degli endpoint e l'applicazione dei criteri di sicurezza.

Usare Azure Policy per rilevare la deviazione della configurazione nei filtri delle sottoscrizioni, nei criteri di ripetizione e nelle impostazioni di sicurezza. Implementare una correzione automatizzata per correggere queste deviazioni senza intervento manuale.
Riduce le attività operative manuali garantendo al tempo stesso coerenza e conformità della configurazione. Consente di gestire in modo proattivo la configurazione per evitare problemi operativi tramite il monitoraggio automatizzato e la correzione.

Efficienza delle prestazioni

L'efficienza delle prestazioni riguarda mantenere l'esperienza utente anche quando si verifica un aumento del carico gestendo la capacità. La strategia include il ridimensionamento delle risorse, l'identificazione dei potenziali colli di bottiglia e la loro risoluzione, e l'ottimizzazione per prestazioni di picco.

I principi di progettazione efficienza delle prestazioni forniscono una strategia di progettazione di alto livello per raggiungere tali obiettivi di capacità rispetto all'utilizzo previsto.

Elenco di controllo per la progettazione del carico di lavoro

Inizia la tua strategia di progettazione basandoti sull'elenco di controllo per la revisione della progettazione per l'Efficienza delle Prestazioni. Definire una linea di base basata su indicatori di prestazioni chiave per Griglia di eventi.

  • Pianificare la capacità per la velocità effettiva e la scalabilità degli eventi: Stimare i requisiti del volume di eventi in base alle esigenze aziendali, ad esempio i picchi di frequenza degli eventi, le dimensioni dei messaggi e i modelli di sottoscrizione. Analizzare le tendenze dei dati cronologici degli eventi, le variazioni stagionali e le proiezioni di espansione aziendale per pianificare la crescita. Incorporare limiti e quote del servizio nella progettazione, inclusi gli eventi per argomento, i limiti delle sottoscrizioni e i limiti di velocità effettiva a livello di area.

    Tenere conto della capacità di elaborazione dei consumer quando si pianifica la velocità effettiva. I consumatori lenti creano una contropressione che influisce sulle prestazioni del sistema.

    Prima della produzione, validare le stime della capacità tramite test di carico e implementazioni proof-of-concept.

  • Definire strategie di scalabilità per argomenti e consumer: Scegliere tra due approcci di scalabilità. Usa il dimensionamento dei temi oppure il dimensionamento degli utenti in base alle caratteristiche del carico di lavoro. Per la scalabilità dei topic, ripartire il carico su più topic quando ci si avvicina ai limiti di throughput. Organizzare gli argomenti in base ai limiti funzionali o alle aree geografiche. Per il ridimensionamento dei consumer, si consiglia di usare i piani Premium di Funzioni, le App container di Azure o il servizio Azure Kubernetes per eseguire il ridimensionamento automatico in base alla profondità della coda e alle esigenze di elaborazione.

    Configurare il filtro e il routing delle sottoscrizioni per distribuire il carico tra i consumatori. Per progettare l'automazione del ridimensionamento, usare le metriche di Monitoraggio di Azure e le funzionalità di scalabilità automatica.

    Testare l'efficacia del ridimensionamento tramite test di carico per convalidare trigger, ritardi e impatto sulle prestazioni.

  • Monitorare le prestazioni per il recapito degli eventi: Stabilire baseline di prestazioni come soglie di latenza (p50, p95, p99 percentili), obiettivi di velocità effettiva e benchmark del tempo di elaborazione. Monitorare l'utilizzo della capacità per determinare quando modificare il ridimensionamento o l'ottimizzazione. Monitorare i colli di bottiglia nella pipeline di distribuzione, incluse le prestazioni del pubblicatore, la latenza del servizio, la connettività di rete e il tempo di elaborazione dei consumatori.

    Configurare avvisi per ridurre le prestazioni, inclusi i picchi di latenza, la riduzione della velocità effettiva e i rallentamenti dell'elaborazione. Analizzare le tendenze delle prestazioni per identificare modelli, variazioni stagionali, riduzione graduale e opportunità di ottimizzazione.

    Usare la tracciatura distribuita per analizzare le prestazioni a livello di singola transazione e identificare i colli di bottiglia nella pipeline di consegna degli eventi.

  • Eseguire test delle prestazioni per i modelli di recapito degli eventi e la capacità del consumer: Progettare scenari di test che simulano il carico normale, il picco di carico e le condizioni di stress con modelli di pubblicazione realistici degli eventi. Allinea la tua configurazione di produzione il più vicino possibile per ottenere risultati significativi. Usare gli strumenti di test di carico per verificare le prestazioni di consegna, inclusi il traffico a esplosione e il carico prolungato.

    Eseguire test sistematici per stabilire le linee di base. Questo approccio consente di comprendere le funzionalità del servizio, le latenze e le limitazioni della velocità effettiva. Testare la configurazione della scalabilità automatica per assicurarsi che si attivi correttamente e distribuisca il carico correttamente in condizioni diverse.

    Analizza i risultati per individuare eventuali colli di bottiglia, ritardi di scalabilità e opportunità di ottimizzazione.

  • Ottimizzare la distribuzione degli eventi e le configurazioni delle prestazioni dei consumer: Configurare le impostazioni di recapito, come i criteri di ripetizione dei tentativi, i timeout e le destinazioni dei messaggi non recapitabili, per migliorare i tassi di successo riducendo al minimo la latenza. Implementare filtri di sottoscrizione per ridurre l'elaborazione non necessaria e recapitare solo gli eventi rilevanti. Per ottimizzare la velocità effettiva, ottimizzare i modelli di consumer, tra cui l'invio in batch, l'elaborazione parallela e il pool di connessioni.

    Ottimizzare i payload tramite una serializzazione, una compressione e una progettazione dello schema efficienti. Monitorare e ottimizzare le prestazioni usando metriche, dati di telemetria e risultati dei test.

Consigli sulla configurazione

Raccomandazione Beneficio
Creare più argomenti e organizzarli in base a limiti funzionali, aree geografiche o tipi di eventi. Configurare le convenzioni di denominazione degli argomenti e la logica di routing per la selezione automatica degli argomenti.

Monitorare le metriche a livello di argomento per identificare quando gli argomenti si avvicinano ai limiti di velocità effettiva.
Supera le limitazioni della velocità effettiva di un singolo argomento e consente la separazione logica che migliora la gestibilità e la sicurezza. Consente di ridimensionare domini di eventi specifici in modo indipendente.
Progettare le applicazioni consumer affinché siano ridimensionate automaticamente in base al volume di eventi di Event Grid. Per il recapito push, implementare le applicazioni consumer usando il piano Funzioni Premium o Dedicato per la scalabilità in base agli eventi in ingresso.

Per il recapito pull con gli argomenti dello spazio dei nomi, progettare applicazioni consumer con funzionalità di ridimensionamento dinamico. Configurare i criteri di ripetizione dei tentativi e le destinazioni dei messaggi non consegnati di Event Grid per garantire un recapito affidabile durante le operazioni di ridimensionamento dei consumer. Usare i filtri delle sottoscrizioni per distribuire gli eventi tra più istanze consumer.
Le applicazioni consumer gestiscono i picchi di traffico tramite la scalabilità automatica. Garantisce l'efficienza delle risorse tramite il ridimensionamento dinamico. Le funzionalità di ripetizione dei tentativi e di gestione della lettera morta di Event Grid migliorano la resilienza durante le transizioni di ridimensionamento.
Configurare Monitoraggio di Azure per raccogliere le metriche delle prestazioni, ad esempio DestinationProcessingDurationInMs, PublishSuccessDurationInMse i percentili di latenza di recapito. Configurare le metriche personalizzate con Application Insights per i tempi di elaborazione specifici dell'utente e la latenza end-to-end.

Creare dashboard delle prestazioni usando cartelle di lavoro di Monitoraggio di Azure che visualizzano tendenze di latenza, velocità effettiva e distribuzioni del tempo di elaborazione.
Abilita l'ottimizzazione delle prestazioni tramite l'analisi della latenza e della velocità effettiva. Identifica le tendenze delle prestazioni e i modelli di riduzione delle prestazioni. Supporta la pianificazione della capacità tramite il monitoraggio della velocità effettiva.
Configurare avvisi in caso di riduzione della latenza, tra cui quando le soglie percentili p95 e p99 superano le baseline delle prestazioni. Configurare soglie dinamiche per rilevare i rallentamenti di elaborazione e riduzione della velocità effettiva.

Configurare avvisi per l'aumento del tempo di elaborazione dei consumatori che indicano colli di bottiglia delle prestazioni. Configurare gli avvisi per il momento in cui l'utilizzo della capacità si avvicina alle soglie di scalabilità.
Rileva una riduzione delle prestazioni prima che influisca sull'esperienza utente. Ottimizza in modo proattivo le prestazioni tramite il rilevamento anticipato. Identifica i colli di bottiglia attraverso il monitoraggio dei tempi di elaborazione.
Usare i dati di tracciamento distribuito per analizzare i colli di bottiglia delle prestazioni nella pipeline di consegna degli eventi. Monitorare le metriche delle prestazioni a livello di transazione per identificare le dipendenze lente e ottimizzare l'elaborazione dei consumer.

Analizzare il mapping dell'applicazione per identificare le dipendenze a latenza elevata e ottimizzare i percorsi del flusso di eventi. Configurare la profilazione delle prestazioni per ottenere un'analisi dettagliata del tempo di elaborazione del pubblicatore e del consumer.
Identifica specifici colli di bottiglia delle prestazioni a livello di transazione. Ottimizzazione delle destinazioni basata sull'analisi dettagliata delle prestazioni. Migliora le prestazioni tramite l'ottimizzazione delle dipendenze.
Usare Test di carico per generare modelli di pubblicazione realistici in varie condizioni di carico. Implementare script personalizzati usando JMeter o K6 per pubblicare eventi durante i test con dimensioni e frequenze realistiche.

Configurare scenari di test per portare il sistema ai suoi limiti di capacità e alle soglie del servizio. Misurare le percentuali di successo del recapito, latenza, velocità effettiva e velocità di errore.
Convalida le prestazioni di recapito prima della produzione. Identifica i limiti del servizio in modo da poter pianificare con precisione la capacità. Fornisce dati concreti per guidare le decisioni di ottimizzazione.
Testare il comportamento di scalabilità automatica in carichi di lavoro realistici usando Funzioni, Container Apps o AKS. Misurare la latenza di elaborazione, la gestione della profondità della coda e i ritardi di ridimensionamento durante le variazioni di carico.

Verificare i criteri di ripetizione dei tentativi, la gestione dei messaggi non recapitabili e l'elaborazione degli errori sotto carico elevato. Verificare l'efficacia del filtro delle sottoscrizioni e la distribuzione del carico tra istanze.
Impedisce colli di bottiglia delle prestazioni tramite il ridimensionamento convalidato. Garantisce che i consumer possano gestire gli schemi di consegna sotto carico elevato. Migliora la fiducia nelle prestazioni di elaborazione end-to-end.
Ottimizzare il modo in cui il sistema gestisce gli errori temporanei per evitare un impatto sulle prestazioni. Configurare i criteri di ripetizione dei tentativi di sottoscrizione con ritardo esponenziale ottimizzato per gli schemi dei consumatori. Impostare i valori di timeout per la consegna in base alle capacità dei consumer e alle caratteristiche della rete.

Implementare il filtro delle sottoscrizioni usando la sintassi avanzata per recapitare solo gli eventi rilevanti. Configurare le destinazioni dei messaggi non recapitabili con archiviazione e monitoraggio.
Accelera il recapito ottimizzando i tentativi e filtrando gli eventi non necessari. Riduce il traffico e l'overhead di elaborazione. Bilancia l'affidabilità e le prestazioni.

Criteri di Azure

Azure offre un set completo di criteri predefiniti correlati a Griglia di eventi e alle relative dipendenze. È possibile controllare alcune delle raccomandazioni precedenti tramite Criteri di Azure. Ad esempio, è possibile verificare se:

  • I domini di Griglia di eventi usano un collegamento privato
  • Gli argomenti di Griglia di eventi usano un collegamento privato
  • La registrazione per gruppo di categorie per i domini di Griglia di eventi è abilitata per Log Analytics
  • La registrazione per gruppo di categorie per gli argomenti di Griglia di eventi è abilitata per Log Analytics

Per una governance completa, esaminare le definizioni predefinite di Azure Policy per Event Grid e altri criteri che potrebbero influire sulla sicurezza dell'infrastruttura di messaggistica.

Raccomandazioni di Azure Advisor

Azure Advisor è un consulente cloud personalizzato che consente di seguire le procedure consigliate per ottimizzare le distribuzioni di Azure.

Per altre informazioni, vedere Azure Advisor.