Sviluppo e distribuzione di applicazioni

Per sviluppare e distribuire applicazioni serverless con Funzioni di Azure, esaminare modelli e procedure, configurare le pipeline DevOps e implementare le procedure consigliate SRE (Site Reliability Engineering).

Per informazioni dettagliate sulle architetture serverless e sulle Funzioni di Azure, vedere:

Pianificazione

Per pianificare lo sviluppo e la distribuzione di app:

  1. Preparare l'ambiente di sviluppo e configurare il flusso di lavoro.
  2. Strutturare i progetti per supportare lo sviluppo di app Funzioni di Azure.
  3. Identificare trigger, associazioni e requisiti di configurazione dell'app.

Informazioni sull'architettura basata su eventi

Un evento diverso attiva ogni funzione in un progetto funzioni serverless. Per altre informazioni sulle architetture guidate dagli eventi, vedere:

Preparare l'ambiente di sviluppo

Configurare il flusso di lavoro di sviluppo e l'ambiente con gli strumenti per creare Funzioni. Per informazioni dettagliate sugli strumenti di sviluppo e sulla struttura del progetto di codice di Funzioni, vedere:

Sviluppo

Decidere il linguaggio di sviluppo da usare. Funzioni di Azure supporta C#, F#, PowerShell, JavaScript, TypeScript, Java e Python. Tutte le funzioni di un progetto devono trovarsi nello stesso linguaggio. Per altre informazioni, vedere Lingue supportate in Funzioni di Azure.

Definire trigger e associazioni

Un trigger richiama una funzione e ogni funzione deve avere esattamente un trigger. L'associazione a una funzione connette in modo dichiarativo un'altra risorsa alla funzione. Per altre informazioni sui trigger e le associazioni di Funzioni, vedere:

Creare l'applicazione Funzioni

Le funzioni seguono il principio di responsabilità singola: eseguire una sola operazione. Per altre informazioni sullo sviluppo di funzioni, vedere:

Usare Durable Functions per flussi di lavoro con stato

Durable Functions in Funzioni di Azure consente di definire flussi di lavoro con stato in un ambiente serverless scrivendo funzioni dell'agente di orchestrazione e entità con stato scrivendo funzioni di entità. Durable Functions gestisce lo stato, i checkpoint e i riavvii, consentendo di concentrarsi sulla logica di business. Per altre informazioni, vedere Che cosa sono Durable Functions.

Comprendere e risolvere gli avvii ad accesso sporadico

Se il numero di istanze host serverless si riduce a zero, la richiesta successiva ha la latenza aggiunta del riavvio dell'app per le funzioni, denominata avvio a freddo. Per ridurre al minimo l'impatto sulle prestazioni degli avvii a freddo, ridurre le dipendenze che l'app Funzioni deve caricare all'avvio e usare il minor numero possibile di chiamate e operazioni sincrone di grandi dimensioni. Per altre informazioni sulla scalabilità automatica e sull'avvio a freddo, vedere Operazioni di Funzioni serverless.

Gestire i segreti dell'applicazione

Per motivi di sicurezza, non archiviare le credenziali nel codice dell'applicazione. Per usare Azure Key Vault con Funzioni di Azure per archiviare e recuperare chiavi e credenziali, vedere Usare i riferimenti a Key Vault per servizio app e Funzioni di Azure.

Per altre informazioni sulla sicurezza delle applicazioni funzioni serverless, vedere Sicurezza delle funzioni serverless.

Distribuzione

Per preparare l'applicazione Funzioni serverless per l'ambiente di produzione, assicurarsi di:

  • Soddisfare i requisiti delle risorse dell'applicazione.
  • Monitorare tutti gli aspetti dell'applicazione.
  • Diagnosticare e risolvere i problemi dell'applicazione.
  • Distribuire nuove versioni dell'applicazione senza influire sui sistemi di produzione.

Definire la tecnologia di distribuzione

Decidere la tecnologia di distribuzione e organizzare le versioni pianificate. Per altre informazioni sul modo in cui la distribuzione delle app per le funzioni abilita aggiornamenti affidabili e senza tempi di inattività, vedere Tecnologie di distribuzione in Funzioni di Azure.

Evitare di usare troppe connessioni alle risorse

Le funzioni in un'app per le funzioni condividono le risorse, incluse le connessioni a HTTPS, i database e i servizi, ad esempio Archiviazione di Azure. Quando molte funzioni vengono eseguite contemporaneamente, è possibile esaurire le connessioni disponibili. Per altre informazioni, vedere Gestire le connessioni in Funzioni di Azure.

Configurare la registrazione, gli avvisi e il monitoraggio delle applicazioni

Application Insights in Monitoraggio di Azure raccoglie i dati di log, prestazioni e errori. Application Insights rileva automaticamente le anomalie delle prestazioni e include potenti strumenti di analisi per diagnosticare i problemi e comprendere l'utilizzo delle funzioni.

Per altre informazioni sul monitoraggio e la registrazione delle applicazioni, vedere:

Diagnosticare e risolvere i problemi

Informazioni su come usare in modo efficace la diagnostica per la risoluzione dei problemi in scenari proattivi e problematici. Per altre informazioni, vedere:

Distribuire applicazioni usando una pipeline automatizzata e DevOps

L'automazione completa di tutti i passaggi dal commit del codice alla distribuzione di produzione consente ai team di concentrarsi sulla compilazione del codice e rimuove il sovraccarico e il potenziale errore umano dei passaggi manuali. La distribuzione di nuovo codice è più rapida e meno rischiosa, consentendo ai team di diventare più agili, più produttivi e più sicuri del codice.

Per altre informazioni su DevOps e sulla distribuzione continua (CD), vedere:

Ottimizzazione

Quando l'applicazione è in produzione, prepararsi per il ridimensionamento e implementare la progettazione dell'affidabilità del sito (SRE).

Garantire una scalabilità ottimale

Per informazioni sui fattori che influisce sulla scalabilità delle app per le funzioni, vedere:

Implementare le procedure SRE

Site Reliability Engineering (SRE) è un approccio collaudato per mantenere l'affidabilità cruciale del sistema e dell'applicazione, iterando al contempo alla velocità richiesta dal marketplace. Per altre informazioni, vedere:

Passaggi successivi

Per le procedure dettagliate per lo sviluppo e la distribuzione di app per le funzioni serverless, vedere:

Per un playbook tecnico per aiutare i team e i clienti a implementare correttamente progetti di funzioni serverless, vedere il playbook Code-With Customer/Partner Engineering.