Procedure consigliate per le applicazioni cloud
Queste procedure consigliate consentono di creare applicazioni affidabili, scalabili e sicure nel cloud. Offrono linee guida e suggerimenti per la progettazione e l'implementazione di sistemi, meccanismi e approcci efficienti e affidabili. Molte includono anche esempi di codice che è possibile usare con i servizi di Azure. Le procedure si applicano a qualsiasi sistema distribuito, indipendentemente dal fatto che l'host sia Azure o una piattaforma cloud diversa.
Catalogo delle procedure
Questa tabella riporta le varie procedure consigliate. La colonna Schemi o concetti fondamentali correlati contiene i collegamenti seguenti:
- Sfide dello sviluppo cloud affrontate da procedure e schemi progettuali correlati.
- Concetti fondamentali di Microsoft Azure Well-Architected Framework su cui sono incentrate le procedure.
Esercitazione | Riepilogo | Schemi o concetti fondamentali correlati |
---|---|---|
Progettazione di API | Progettare API Web per supportare l'indipendenza della piattaforma tramite 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 ed evitare errori temporanei supportando risposte parziali e fornendo modi per filtrare e impaginare i dati. | Progettazione e implementazione, efficienza delle prestazioni, Eccellenza operativa |
Implementazione di API | Implementare API Web per ottenere efficienza, reattività, scalabilità e disponibilità. Rendere le azioni idempotenti, supportare la negoziazione del contenuto e seguire la specifica HTTP. Gestire le eccezioni e supportare l'individuazione delle risorse. Consentire la gestione di richieste di grandi dimensioni e ridurre al minimo il traffico di rete. | Progettazione e implementazione, Eccellenza operativa |
Scalabilità automatica | Progettare app per l'allocazione e la deallocazione dinamica delle risorse per soddisfare i requisiti di prestazioni e ridurre al minimo i costi. Sfruttare la scalabilità automatica di Monitoraggio di Azure e la scalabilità automatica incorporata offerta da molti componenti di Azure. | Efficienza delle prestazioni, Ottimizzazione dei costi |
Processi 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à. Attivare attività con eventi o pianificazioni e restituire risultati alle attività chiamanti. | Progettazione e implementazione, Eccellenza operativa |
Memorizzazione nella cache | Migliorare le prestazioni copiando i dati in una risorsa di archiviazione veloce e vicina alle app. Memorizzare nella cache i dati letti di frequente ma modificati raramente. Gestire la scadenza e la concorrenza dei dati. Informazioni su come popolare le cache e usare il servizio cache di Azure per Redis. | Gestione dei dati, Efficienza delle prestazioni |
Rete per la distribuzione di contenuti | Usare le reti CDN per distribuire i contenuti Web agli utenti in modo efficiente e ridurre il carico sulle app Web. Superare i problemi di distribuzione, controllo delle versioni, sicurezza e resilienza. | Gestione dei dati, Efficienza delle prestazioni |
Partizionamento dei dati | Partizionare i dati per migliorare la scalabilità, la disponibilità e le prestazioni e ridurre i costi di contesa e archiviazione dei dati. Usare il partizionamento orizzontale, verticale e funzionale in modo efficiente. | Gestione dei dati, Efficienza delle prestazioni, Ottimizzazione dei costi |
Strategie di partizionamento dei dati (per servizio) | Partizionare i dati in database SQL di Azure e servizi di archiviazione di Azure come archiviazione tabelle di Azure e archiviazione BLOB di Azure. Partizionare i dati per distribuire i carichi, ridurre la latenza e supportare la scalabilità orizzontale. | Gestione dei dati, Efficienza delle prestazioni, Ottimizzazione dei costi |
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. | Progettazione e implementazione, Affidabilità |
Considerazioni sulla codifica dei messaggi | Usare messaggi asincroni per scambiare informazioni tra i componenti di sistema. Scegliere la struttura del payload, il formato di codifica e la libreria di serializzazione più adatti ai dati. | Messaggistica, Sicurezza |
Monitoraggio e diagnostica | Tenere traccia dell'integrità, dell'utilizzo e delle prestazioni del sistema con una pipeline di monitoraggio e diagnostica. Trasformare i dati di monitoraggio in avvisi, report e trigger utili in diverse situazioni. Gli esempi includono rilevare e correggere i problemi, individuare i potenziali problemi, soddisfare le garanzie di prestazioni e i requisiti di controllo. | Eccellenza operativa |
Indicazioni aggiuntive per servizi specifici | Usare, adattare ed estendere i meccanismi di ripetizione dei tentativi offerti da servizi di Azure e SDK client. Sviluppare un approccio sistematico e affidabile per la gestione di problemi temporanei relativi a connessioni, operazioni e risorse. | Progettazione e implementazione, Affidabilità |
Gestione degli errori temporanei | Gestire gli errori temporanei causati da risorse o reti non disponibili. Risolvere i problemi durante lo sviluppo di strategie di ripetizione dei tentativi appropriate. Evitare di duplicare livelli di codice di ripetizione dei tentativi e altri antipattern. | Progettazione e implementazione, Affidabilità |