Procedure consigliate nelle applicazioni cloud

La creazione di applicazioni cloud affidabili, scalabili e sicure richiede decisioni di architettura intenzionali. Le procedure consigliate in questo articolo forniscono indicazioni per problemi comuni che si verificano nei sistemi distribuiti, ad esempio la memorizzazione nella cache, il partizionamento dei dati, la progettazione dell'API e la gestione degli errori temporanei. Ogni pratica si rivolge a uno o più pilastri della Azure Well-Architected Framework, che definisce i cinque attributi di qualità seguenti per la progettazione del carico di lavoro:

Queste procedure integrano altre linee guida fondamentali nel Centro architetture di Azure. I principi di progettazione per le applicazioni Azure offrono strategie di alto livello, ad esempio la progettazione per la riparazione automatica e la scalabilità orizzontale. I modelli di progettazione cloud offrono soluzioni riutilizzabili a problemi architetturali ricorrenti. Gli antipattern delle prestazioni descrivono i difetti comuni che causano problemi di scalabilità sotto carico. Queste risorse consentono di effettuare scelte architetturali informate.

Catalogo delle procedure

Ogni procedura in questa tabella è mappata a uno o più pilastri del framework diWell-Architected. Usare questi mapping per identificare quali procedure sono più rilevanti per gli attributi di qualità a cui si assegna la priorità nel carico di lavoro.

Pratica Sommario Pilastri correlati
progettazione dell'API Progettare API Web per supportare l'indipendenza della piattaforma usando protocolli standard e formati di dati concordati. Promuovere l'evoluzione del servizio in modo che i client possano individuare le funzionalità senza richiedere modifiche. Migliorare i tempi di risposta supportando risposte parziali e fornendo modi per filtrare e impaginare i dati. Eccellenza operativa, efficienza delle prestazioni
'implementazione dell'API Implementare API Web per essere efficienti, reattive, scalabili e disponibili. Implementare azioni idempotenti, supportare la negoziazione dei contenuti e seguire la specifica HTTP. Gestire le eccezioni e supportare l'individuazione delle risorse. Fornire modi per gestire richieste di grandi dimensioni e ridurre al minimo il traffico di rete. Eccellenza operativa, efficienza delle prestazioni
la scalabilità automatica Progettare app per allocare e deallocare in modo dinamico le risorse per soddisfare i requisiti di prestazioni e ridurre al minimo i costi. Sfruttare la funzionalità autoscale in Monitoraggio di Azure e la scalabilità automatica predefinita che molti componenti Azure forniscono. Ottimizzazione dei costi, efficienza delle prestazioni
attività in background Implementare processi batch, attività di elaborazione e flussi di lavoro come processi in background. Usare i servizi della piattaforma Azure per ospitare queste attività. Usare eventi o pianificazioni per attivare le attività e restituire i risultati alle attività chiamanti. Affidabilità, Eccellenza operativa
memorizzazione nella cache Migliorare le prestazioni copiando i dati in una risorsa di archiviazione veloce vicina alle app. Memorizzare nella cache i dati letti spesso ma raramente modificarli. Gestire la scadenza e la concorrenza dei dati. Informazioni su come popolare le cache e usare il servizio Redis gestito di Azure . efficienza delle prestazioni
Rete per la distribuzione di contenuti Usare le reti per la distribuzione di contenuti (CDN) per distribuire in modo efficiente contenuto Web agli utenti e ridurre il carico nelle app Web. Superare le sfide di distribuzione, controllo delle versioni, sicurezza e resilienza. Affidabilità, Efficienza delle prestazioni
Partizionamento dei dati Partizionare i dati per migliorare scalabilità, disponibilità e prestazioni e ridurre i costi di contesa e archiviazione dei dati. Usare il partizionamento orizzontale, verticale e funzionale in modo efficiente. Ottimizzazione dei costi, efficienza delle prestazioni
strategie di partizionamento dei dati (per servizio) Applicare strategie di partizionamento tra i servizi di Azure, tra cui database SQL di Azure, Azure Cosmos DB, Archiviazione BLOB di Azure, Azure Managed Redis e bus di servizio di Azure. Distribuire carichi, ridurre la latenza e supportare il ridimensionamento orizzontale. Ottimizzazione dei costi, efficienza delle prestazioni
conservazione dei nomi host Informazioni sul motivo per cui è importante mantenere il nome host HTTP originale tra un proxy inverso e l'applicazione Web back-end e come implementare questa raccomandazione per i servizi di Azure più comuni. Affidabilità, Sicurezza
considerazioni sulla codifica dei messaggi Scegliere la struttura del payload, il formato di codifica e la libreria di serializzazione per i messaggi asincroni scambiati tra i componenti di sistema. Prendere in considerazione compromessi, ad esempio interoperabilità, dimensioni, leggibilità umana ed evoluzione dello schema. sicurezza
Monitoraggio e diagnosi Tenere traccia dell'integrità, dell'utilizzo e delle prestazioni del sistema usando una pipeline di monitoraggio e diagnostica. Trasformare i dati di monitoraggio in avvisi, report e trigger che consentono di intervenire in varie situazioni. Alcuni esempi includono il rilevamento e la correzione dei problemi, l'individuazione di potenziali problemi, la conformità alle garanzie di prestazioni e il rispetto dei requisiti di controllo. Eccellenza operativa
Gestione degli errori temporanei Gestire gli errori temporanei causati da reti o risorse non disponibili. Superare le sfide con lo sviluppo di strategie di ripetizione appropriate. Evitare di duplicare livelli di codice di ripetizione dei tentativi e altri antipattern. affidabilità

Principi di progettazione

Prima di affrontare problemi tecnici specifici, stabilire una solida base architetturale. I principi di progettazione per le applicazioni Azure offrono strategie di alto livello che si applicano tra carichi di lavoro, ad esempio la progettazione per la riparazione automatica, la scalabilità orizzontale e la riduzione al minimo del coordinamento. Questi principi modellano le decisioni che le procedure consigliate elencate nella tabella precedente consentono di implementare.

modelli di progettazione cloud

Dopo aver stabilito i principi di progettazione, i modelli di progettazione cloud offrono soluzioni riutilizzabili per problemi ricorrenti nei sistemi distribuiti. Molte delle procedure consigliate in questo articolo si basano su uno o più di questi modelli. Ad esempio, le linee guida sulla gestione degli errori transitori si basano sui pattern Retry e Circuit Breaker. Le linee guida per la memorizzazione nella cache sono correlate al modello diCache-Aside. Le linee guida per i processi in background usano modelli come Competing Consumers e Queue-Based Load Leveling. Esaminare il catalogo completo per identificare i modelli che affrontano le sfide dell'architettura nel carico di lavoro.

Antimodelli delle prestazioni

I difetti possono emergere sotto il carico di produzione anche quando si applicano principi validi, modelli validi e procedure consigliate. Gli anti-pattern relativi alle prestazioni nelle applicazioni cloud descrivono schemi comuni che non sono scalabili o scorciatoie che causano l'accumularsi di problemi man mano che si aggiungono funzionalità. Per rilevare i problemi prima di raggiungere la produzione, usare questi antipattern come elenco di controllo durante le revisioni di progettazione e le revisioni del codice.

Passaggio successivo