Condividi tramite


Prospettiva sul Framework Well-Architected di Azure sulle Funzioni di Azure

Funzioni di Azure è un servizio di calcolo serverless che consente di eseguire codice basato su eventi senza dover gestire l'infrastruttura in modo esplicito. Offerta Funzioni come servizio (FaaS), Funzioni di Azure astrae l'infrastruttura sottostante, consentendo di concentrarsi sul codice. Questo servizio viene ridimensionato automaticamente in base alla domanda e addebita a te solo per le risorse consumate nell'arco dell'esecuzione.

Questo documento presuppone che in qualità di architetto sia stato esaminato l'albero delle decisioni di calcolo e si sia scelto Funzioni di Azure come soluzione di calcolo per il carico di lavoro. Le linee guida fornite di seguito sono allineate ai principi dei pilastri di Azure Well-Architected Framework .

Importante

Come usare questa guida

Ogni sezione contiene un elenco di controllo di progettazione che evidenzia le aree di interesse dell'architettura con strategie di progettazione specifiche correlate a Funzioni di Azure.

Le raccomandazioni offrono funzionalità tecnologiche per implementare queste strategie. Questo elenco non è esaustivo, ma include raccomandazioni chiave che consentono di creare o ottimizzare i carichi di lavoro con Funzioni di Azure.

Architettura di base che illustra le raccomandazioni principali: progettazione dell'architettura delle funzioni serverless

Ambito della tecnologia

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

  • App per le funzioni

Nota

Questa guida al servizio si basa sulle indicazioni disponibili nella guida del servizio App (App Web). Funzioni di Azure è un servizio di calcolo serverless. Le funzioni vengono distribuite nei piani di servizio app, che forniscono l'infrastruttura di calcolo sottostante per il carico di lavoro. È possibile scegliere tra diversi piani di hosting. Il piano a consumo è completamente gestito e non supporta l'accesso all'istanza del servizio app associata, mentre Dedicato e Premium consente di configurare e gestire l'istanza del servizio app. Fare riferimento alla guida al servizio app per consigli e considerazioni quando si sceglie un piano di hosting Dedicato o Premium.

Affidabilità

Il pilastro Affidabilità garantisce funzionalità continue la creazione di resilienza e l'abilitazione del ripristino rapido da errori.

I principi di progettazione affidabilità forniscono strategie di progettazione di alto livello che si applicano a singoli componenti, flussi di sistema e al sistema complessivo.

Elenco di controllo per la progettazione

Avvia la strategia di progettazione in base ai principi di progettazione di affidabilità . Valutare la pertinenza dei requisiti aziendali considerando al tempo stesso le funzionalità e le configurazioni specifiche di Funzioni di Azure.

  • Comprendi i trigger: Assicurati di comprendere appieno come vengono attivate le Funzioni di Azure. I trigger includono richieste HTTP, timer, code di messaggi e altro ancora. Scegliere i trigger che soddisfano i requisiti di affidabilità dell'applicazione.

    Ad esempio, se la funzione elabora i messaggi da una coda, assicurarsi che la coda stessa sia resiliente e che i messaggi possano essere rielaborati in caso di errore.

  • Implementare nuovi tentativi e modelli durevoli: usare criteri di ripetizione predefiniti per gli errori temporanei. Per flussi di lavoro più complessi, è consigliabile usare Durable Functions, che offrono la gestione dello stato e il coordinamento tra più esecuzioni di funzioni.

    Durable Functions è particolarmente utile per gli scenari che richiedono affidabilità nei flussi di lavoro a esecuzione prolungata. Supportano i tentativi automatici e la gestione delle attività persistenti.

  • Garantire una corretta gestione delle eccezioni: implementare una gestione affidabile delle eccezioni per garantire che le funzioni falliscano in modo controllato. Registrare gli errori e prendere in considerazione l'implementazione di meccanismi di avviso per gli errori critici.

  • Pianificare la scalabilità: Le Funzioni di Azure scalano automaticamente in base alla domanda. Assicurarsi che l'applicazione sia progettata per gestire i picchi testandone le prestazioni sotto carico.

    È consigliabile usare Application Insights per monitorare le prestazioni e tenere traccia del ridimensionamento delle funzioni in tempo reale.

  • Progettazione per idempotenza: assicurarsi che le funzioni possano essere ritentate senza causare effetti collaterali imprevisti. L'idempotenza è fondamentale per le funzioni che interagiscono con sistemi esterni o modificano i dati.

  • Usare Durable Functions per operazioni a esecuzione prolungata: per le operazioni che richiedono l'orchestrazione o i processi a esecuzione prolungata, usare Durable Functions per mantenere lo stato e garantire l'affidabilità in più passaggi.

  • Monitorare l'integrità della soluzione: integrare la soluzione Funzioni di Azure nel sistema generale di monitoraggio e avviso dell'integrità del carico di lavoro.

Consigli
Raccomandazione Beneficio
Configurare tentativi automatici per gli errori temporanei. Ulteriori informazioni sulla gestione degli errori e i tentativi di Azure Functions Migliora l'affidabilità ritentando automaticamente le esecuzioni non riuscite, riducendo la probabilità di perdita o interruzione dei dati.
Usare Durable Functions per orchestrare flussi di lavoro complessi e processi a esecuzione prolungata. Per saperne di più su Durable Functions. Fornisce un'esecuzione affidabile dei workflow di lunga durata, con la gestione integrata dello stato e i tentativi automatici.
Implementare il Monitoraggio e il log centralizzato usando Application Insights. Configurare Application Insights. Migliora il monitoraggio e la risoluzione dei problemi fornendo informazioni dettagliate sulle esecuzioni e sulle dipendenze delle funzioni.
Ridimensionare orizzontalmente automaticamente in base al piano di hosting delle funzioni, al tipo di trigger e la domanda. Informazioni sul ridimensionamento. Assicura che l'applicazione possa gestire gli aumenti del traffico senza intervento manuale, migliorando l'affidabilità e le prestazioni.

Sicurezza

Il pilastro Sicurezza è incentrato su come garantire la riservatezza, l'integrità e la disponibilità dei dati e dei servizi.

I principi di progettazione della sicurezza offrono una strategia di alto livello per proteggere Funzioni di Azure, incluse le procedure consigliate per l'autenticazione, l'autorizzazione e la protezione dei dati.

Elenco di controllo per la progettazione

Inizia la strategia di progettazione con l'elenco di controllo della revisione del design per la sicurezza e identifica potenziali vulnerabilità. Estendere la strategia incorporando misure di sicurezza aggiuntive in base alle esigenze.

  • Usare identità gestite: abilitare le identità gestite per le app per le funzioni per accedere in modo sicuro ad altri servizi di Azure senza dover gestire le credenziali. Informazioni sulle identità gestite.

  • Proteggere l'app per le funzioni con Microsoft Entra ID: limitare l'accesso alle funzioni configurando Funzioni di Azure per richiedere l'autenticazione di Microsoft Entra ID. Configurare l'autenticazione di Microsoft Entra.

  • Applicare i controlli di sicurezza di rete: comprendere le opzioni disponibili per il modello di hosting per proteggere la configurazione di rete delle Funzioni. Proteggere la rete per soddisfare i requisiti.

Consigli
Raccomandazione Beneficio
Abilitare identità gestite per proteggere l'accesso alle risorse di Azure. Abilitare le identità gestite Semplifica la gestione delle credenziali eliminando la necessità di archiviare e ruotare i segreti, migliorando la sicurezza.
Usare di Azure Key Vault per la gestione dei segreti e la rotazione regolare. Integrare Key Vault con Funzioni di Azure. Protegge le informazioni riservate, ad esempio le chiavi API e le stringhe di connessione, archiviandole in modo sicuro e automatizzando la rotazione dei segreti quando l'uso di un'identità gestita non è fattibile.
integra con una rete virtuale e usa endpoint privati . Protegge le app per le funzioni limitando l'accesso alla rete interna e impedendo l'esposizione a Internet pubblico.

l'integrazione della rete virtuale e gli endpoint privati non sono disponibili nel piano di hosting a consumo.

Ottimizzazione costi

Il pilastro Ottimizzazione costi è incentrato sull'identificazione di modi per ridurre i costi mantenendo i livelli di prestazioni necessari.

I principi di progettazione Ottimizzazione costi forniscono strategie per bilanciare i costi e le prestazioni, assicurandosi che la distribuzione di Funzioni di Azure sia efficiente e conveniente.

Elenco di controllo per la progettazione

Inizia la tua strategia di ottimizzazione dei costi con l'elenco di controllo di revisione della progettazione per l'ottimizzazione dei costie adatta la progettazione ai requisiti di budget.

  • Scegliere il piano tariffario appropriato: Funzioni di Azure offre più piani tariffari, tra cui il piano a consumo, il piano Premium e il piano dedicato (servizio app). Scegliere un piano in linea con il carico di lavoro e le considerazioni sui costi. Confrontare i piani tariffari.

    Il piano a consumo è ideale per carichi di lavoro imprevedibili con esecuzioni poco frequenti, in quanto si paga solo per il tempo di esecuzione e le risorse utilizzate. Quando l'app è inattiva, non ti viene addebitato nulla.

  • Ottimizzare il tempo di esecuzione: ridurre il tempo di esecuzione ottimizzando il codice della funzione. Ridurre al minimo l'uso di dipendenze esterne e ottimizzare la logica del codice per ridurre la durata di ogni esecuzione.

  • Monitorare e analizzare i costi: monitorare regolarmente l'utilizzo e i costi delle app per le funzioni usando Gestione costi di Azure e configurare gli avvisi rilevano anomalie dei costi. Informazioni sulla gestione dei costi e sull'ottimizzazione.

Consigli
Raccomandazione Beneficio
Usare il piano a consumo per i carichi di lavoro con traffico imprevedibile. Informazioni sul piano a consumo. Riduce i costi caricando solo le risorse usate durante l'esecuzione della funzione, evitando i costi associati alle risorse inattive.
Riservare capacità per piani di Elastic Premium o piani di servizio app dedicati se il carico di lavoro è prevedibile. Riduce i costi tramite prezzi scontati per carichi di lavoro prevedibili con modelli di esecuzione costanti.
Monitorare regolarmente i costi e configurare avvisi per le anomalie. Configurare gli avvisi dei costi. Consente di identificare in anticipo i picchi di costo, consentendo la gestione e l'ottimizzazione proattive.

Eccellenza operativa

L'eccellenza operativa è incentrata su processi e procedure per la distribuzione, l'osservabilità e la gestione delle applicazioni di Funzioni di Azure.

I principi di progettazione dell'eccellenza operativa forniscono strategie per garantire che le applicazioni funzionali vengano distribuite, gestite e monitorate in modo efficiente.

Elenco di controllo per la progettazione

Inizia la tua strategia di progettazione in base ai principi di progettazione per l'eccellenza operativa; offri strategie per mantenere la qualità operativa di Azure Functions.

  • Automatizzare le distribuzioni: Utilizzare le pipeline CI/CD per automatizzare la distribuzione delle app per le funzioni. Eseguire l'integrazione con Azure DevOps o GitHub Actions per flussi di lavoro di distribuzione senza problemi.

  • Implementare il monitoraggio dell'integrità: usare Monitoraggio di Azure e Application Insights per tenere traccia dell'integrità e delle prestazioni delle funzioni. Configurare gli avvisi per le metriche critiche e usare dashboard personalizzati per informazioni dettagliate in tempo reale. Monitorare la funzione di Azure.

  • Distribuire la soluzione in modo sicuro: comprendere i modelli di distribuzione disponibili per Funzioni di Azure e adottare il modello più adatto alle procedure di distribuzione sicure.

  • Pianificare il ripristino di emergenza: implementare strategie di ripristino di emergenza usando il ripristino di emergenza tra aree e la zona di disponibilità per le funzioni critiche. Piano per il ripristino dopo disastri.

Consigli
Raccomandazione Beneficio
Automatizzare le distribuzioni con pipeline CI/CD usando Azure DevOps o GitHub Actions. Configurare CI/CD Migliora la coerenza della distribuzione, riduce gli errori manuali e accelera il time-to-market per le nuove funzionalità.
Usare slot di distribuzione per testare le modifiche prima del rilascio in produzione. Distribuire usando slot. Riduce il rischio di introdurre errori nell'ambiente di produzione e abilita i rollback sicuri se vengono rilevati problemi.
Implementare monitoraggio centralizzato usando Application Insights e Monitoraggio di Azure usando le metriche disponibili . Migliora la visibilità delle prestazioni delle funzioni, consentendo di identificare e risolvere rapidamente i problemi.

Efficienza delle prestazioni

L'efficienza delle prestazioni garantisce 'esperienza utente ottimale anche in caso di maggiore carico gestendo in modo efficace la capacità.

I principi di progettazione efficienza delle prestazioni forniscono strategie che consentono di progettare app per le funzioni che soddisfano i requisiti di prestazioni, anche quando aumenta la domanda.

Elenco di controllo per la progettazione

Inizia la tua strategia di prestazioni con i principi di progettazione di Efficienza delle prestazioni e progetta le app delle tue funzioni per scalare e funzionare in modo ottimale.

  • Ottimizzare l'avvio a freddo: Ridurre al minimo l'impatto dell'avvio a freddo usando piani Premium Flex con un'istanza pre-riscaldata o assicurarsi che le funzioni rimangano attive con strategie come il trigger di pre-riscaldamento di Azure Functions.

  • Ottimizzare il codice della funzione: scrivere codice efficiente per ridurre il tempo di esecuzione e l'utilizzo delle risorse. Evitare operazioni a esecuzione prolungata e ottimizzare le chiamate al servizio esterno.

  • Abilitare la scalabilità automatica: Sfruttare le funzionalità di scalabilità automatica di Funzioni di Azure per aumentare le istanze automaticamente in base alla richiesta. Assicurarsi che le regole di ridimensionamento siano ben definite e testate.

  • Monitorare le metriche delle prestazioni: usare Application Insights per monitorare le metriche delle prestazioni chiave, ad esempio il tempo di esecuzione, l'utilizzo della CPU e della memoria. Configurare gli avvisi per la riduzione delle prestazioni. Monitorare le prestazioni.

Consigli
Raccomandazione Beneficio
Usare il piano Elastic Premium con un'istanza pre-riscaldamento per ridurre al minimo la latenza di avvio a freddo. Comprendere l'avvio a freddo. Riduce la latenza associata agli avvii a freddo, migliorando i tempi di risposta per le applicazioni sensibili al tempo.
ottimizzare il codice della funzione per ridurre il tempo di esecuzione. Procedure consigliate per Funzioni di Azure. Migliora le prestazioni riducendo il tempo e le risorse necessarie per ogni esecuzione della funzione.
Abilitare la scalabilità automatica per regolare automaticamente la capacità in base alla richiesta. Configurare la scalabilità automatica. Assicura che le app per le funzioni possano gestire carichi variabili senza intervento manuale, mantenendo le prestazioni sotto pressione.

Criteri di Azure

Azure offre un set completo di criteri predefiniti per controllare e applicare le configurazioni per Funzioni di Azure e le relative dipendenze. È possibile usare Criteri di Azure per assicurarsi che le app per le funzioni siano conformi agli standard dell'organizzazione per la sicurezza, l'ottimizzazione dei costi e le prestazioni.

Ad esempio, è possibile applicare criteri che richiedono:

  • Identità gestite da abilitare per tutte le app per le funzioni.
  • App di funzione per utilizzare solo endpoint privati per la sicurezza della rete.
  • La registrazione diagnostica deve essere abilitata per tutte le applicazioni funzione.

Esaminare le definizioni predefinite di Criteri di Azure per trovare criteri allineati ai requisiti dell'organizzazione.

Raccomandazioni di Azure Advisor

Azure Advisor è un consulente cloud personalizzato che consente di seguire le procedure consigliate per ottimizzare le distribuzioni di Azure. Le raccomandazioni di Advisor sono allineate ai pilastri di Well-Architected Framework.

Per altre informazioni, vedere le raccomandazioni in Azure Advisor.

Passaggi successivi

Considerare le risorse seguenti per esplorare ulteriormente le raccomandazioni evidenziate in questo documento: