Integrazione aziendale di base in Azure

Microsoft Entra ID
Gestione API di Azure
DNS di Azure
App per la logica di Azure
Monitoraggio di Azure

Questa architettura di riferimento usa i servizi di integrazione di Azure Services per orchestrare le chiamate ai sistemi back-end aziendali. I sistemi back-end possono includere sistemi software come un servizio (SaaS), servizi di Azure e servizi Web esistenti nell'organizzazione.

Architettura

Diagramma dell'architettura che mostra un'integrazione aziendale semplice

Scaricare un file di Visio di questa architettura.

Workflow

  1. 'applicazione. L'applicazione è un client che chiama il gateway API dopo l'autenticazione con Microsoft Entra. L'applicazione può essere un'app Web, un'app per dispositivi mobili o qualsiasi altro client che può effettuare richieste HTTP.

  2. Microsoft Entra ID. Viene usato per autenticare l'applicazione client. L'applicazione client ottiene un token di accesso dall'ID Microsoft Entra e lo include nella richiesta al gateway API.

  3. Gestione API di Azure. Gestione API consiste di due componenti correlati:

    • Gateway API. Il gateway API accetta una chiamata HTTP dall'applicazione client, convalida il token dall'ID Microsoft Entra e inoltra la richiesta al servizio back-end. Il gateway API può anche trasformare le richieste e le risposte e memorizzare nella cache le risposte.

    • Portale per sviluppatori. Il portale per sviluppatori viene usato dagli sviluppatori per individuare e interagire con le API. Il portale per sviluppatori può essere personalizzato in modo che corrisponda alla personalizzazione dell'organizzazione.

  4. App per la logica di Azure. Le app per la logica vengono usate per orchestrare le chiamate ai servizi back-end. Le app per la logica possono essere attivate da un'ampia gamma di eventi e possono chiamare un'ampia gamma di servizi. In questa soluzione, App per la logica viene usata per chiamare i servizi back-end e fornire connettività semplice tramite connettori riducendo la necessità di codice personalizzato.

  5. i servizi back-end. I servizi back-end possono essere qualsiasi servizio o applicazione line-of-business, ad esempio un database, un servizio Web o un'applicazione SaaS. I servizi back-end possono essere ospitati in Azure o in locale.

Componenti

  • Servizi di integrazione è un insieme di servizi che è possibile utilizzare per integrare applicazioni, dati e processi. In questa soluzione vengono usati due di questi servizi: App per la logica e Gestione API. App per la logica viene usata per facilitare l'integrazione basata su messaggi tra sistemi e facilitare la connettività con i connettori. Gestione API viene usato per fornire una facciata per i servizi back-end, consentendo ai client di interagire con un'interfaccia coerente.
    • App per la logica è una piattaforma serverless per la creazione di flussi di lavoro aziendali che integrano applicazioni, dati e servizi. In questa soluzione App per la logica viene usato per orchestrare le chiamate ai servizi back-end e fornire connettività semplice tramite i connettori riducendo la necessità di codice personalizzato.
    • API Management è un servizio gestito per la pubblicazione di cataloghi di API HTTP. È possibile usarlo per promuovere il riutilizzo e l'individuabilità delle API e per distribuire un gateway API alle richieste dell'API proxy. In questa soluzione Gestione API offre funzionalità aggiuntive, ad esempio la limitazione della frequenza, l'autenticazione e la memorizzazione nella cache nei servizi back-end. Gestione API offre inoltre un portale per sviluppatori per consentire ai client di individuare e interagire con le API.
  • DNS di Azure è un servizio di hosting per i domini DNS DNS di Azure ospita i record DNS pubblici per il servizio Gestione API. Ciò consente ai client di risolvere il nome DNS nell'indirizzo IP del servizio Gestione API.
  • Microsoft Entra ID è un servizio per la gestione delle identità e degli accessi basato sul cloud. I dipendenti aziendali possono usare Microsoft Entra ID per accedere alle risorse esterne e interne. Qui Entra ID viene usato per proteggere il servizio Gestione API usando OAuth 2.0 e il portale per sviluppatori usando Entra B2C.

Dettagli dello scenario

Servizi di integrazione è un insieme di servizi che è possibile utilizzare per integrare applicazioni, dati e processi per aziende. Questa architettura usa due di questi servizi: App per la logica, per orchestrare i flussi di lavoro, e Gestione API, per creare cataloghi di API.

In questa architettura le API composite vengono costruite importando app per la logica come API. È anche possibile importare i servizi Web esistenti importando le specifiche di OpenAPI (Swagger) o importando le API SOAP dalle specifiche di WSDL.

Il gateway API consente di disaccoppiare i client front-end da quelli back-end. È possibile, ad esempio, riscrivere gli URL o trasformare le richieste prima che raggiungano il back-end. Gestisce anche molte problematiche trasversali come autenticazione, supporto della condivisione di risorse tra le origini (CORS) e memorizzazione nella cache della risposta.

Potenziali casi d'uso

Questa architettura è sufficiente per scenari di integrazione di base in cui il flusso di lavoro viene attivato da chiamate sincrone a servizi back-end. Un'architettura più sofisticata che usa code ed eventi si basa su questa architettura di base.

Consigli

I requisiti specifici dell'utente possono variare rispetto all'architettura generica descritta illustrata qui. Seguire le raccomandazioni contenute in questa sezione come punto di partenza.

Gestione API

Usare i livelli di Gestione API Basic, Standard o Premium perché offrono un contratto di servizio di produzione e supportano l'aumento del numero di istanze nell'area di Azure. La capacità della velocità effettiva per Gestione API viene misurata in unità. Ogni piano tariffario ha un numero massimo di istanze. Il livello Premium supporta anche la scalabilità orizzontale tra più aree di Azure. Scegliere il livello adeguato alle proprie esigenze in base al set di funzionalità e al livello di velocità effettiva necessaria. Per altre informazioni, vedere Prezzi di Gestione API e Capacità di un'istanza di Gestione API di Azure.

Il livello a consumo di Gestione API non è consigliato per questa soluzione perché non supporta il portale per sviluppatori necessario per questa architettura. Il livello sviluppatore è specifico per gli ambienti non di produzione e non è consigliato per i carichi di lavoro di produzione. Una matrice di funzionalità che illustra in dettaglio le differenze tra i livelli è disponibile qui.

Ogni istanza API Management di Azure ha un nome di dominio predefinito, ovvero un sottodominio di azure-api.net, ad esempio contoso.azure-api.net. Si consiglia di configurare un dominio personalizzato per l'organizzazione.

App per la logica

App per la logica funziona in modo ottimale in scenari che non richiedono una bassa latenza per una risposta, ad esempio le chiamate API asincrone o a esecuzione quasi prolungata. Se è richiesta una latenza bassa, ad esempio nel caso di chiamate che bloccano un'interfaccia utente, usare una tecnologia diversa, ad esempio Funzioni di Azure o un'API Web distribuita nel Servizio app di Azure. Usare Gestione API a fronte dell'API per i consumer di API.

Paese

Per ridurre la latenza di rete, collocare Gestione API e App per la logica nella stessa area. In genere è consigliabile scegliere l'area più vicina agli utenti (o più vicina ai servizi back-end).

Considerazioni

Queste considerazioni implementano i pilastri di Azure Well-Architected Framework, che è un set di principi guida che possono essere usati per migliorare la qualità di un carico di lavoro. Per altre informazioni, vedere Microsoft Azure Well-Architected Framework.

Affidabilità

L'affidabilità garantisce che l'applicazione possa soddisfare gli impegni che l'utente ha preso con i clienti. Per altre informazioni, vedere Panoramica del pilastro dell'affidabilità.

Esaminare i contratti di servizio per ogni servizio qui

Se API Management è distribuito in due o più aree con il livello Premium, è idoneo a un contratto di servizio superiore. Vedere Prezzi di Gestione API.

Backup

Eseguire regolarmente il backup della configurazione di Gestione API. Archiviare i file di backup in una posizione o un'area di Azure diversa rispetto a quella in cui è distribuito il servizio. Scegliere una strategia di ripristino di emergenza in base all'RTO:

  • In caso di ripristino di emergenza effettuare il provisioning di una nuova istanza di Gestione API, ripristinare il backup nella nuova istanza ed eseguire un nuovo puntamento dei record DNS.

  • Mantenere un'istanza passiva del servizio Gestione API in un'altra area di Azure. Ripristinare regolarmente i backup nell'istanza, in modo da mantenerla sincronizzata con il servizio attivo. Per ripristinare il servizio durante un evento di ripristino di emergenza, occorre solo eseguire un nuovo puntamento dei record DNS. Questo approccio comporta un costo aggiuntivo perché l'istanza passiva è a pagamento, tuttavia riduce i tempi di recupero.

Per le app per la logica, è consigliabile un approccio di configurazione come codice per il backup e ripristino. Poiché le app per la logica sono serverless, è possibile ricrearle rapidamente da modelli di Azure Resource Manager. Salvare i modelli nel controllo del codice sorgente e integrare i modelli con il processo di integrazione continua/distribuzione continua (CI/CD). In un evento di ripristino di emergenza, distribuire il modello in una nuova area.

Se si distribuisce un'app per la logica in un'area diversa, aggiornare la configurazione in Gestione API. È possibile aggiornare la proprietà back-end dell'API usando uno script di PowerShell di base.

Sicurezza

La sicurezza offre garanzie contro attacchi intenzionali e l'abuso di dati e sistemi preziosi. Per altre informazioni, vedere Panoramica del pilastro della sicurezza.

Sebbene questo elenco non descriva completamente tutte le procedure consigliate per la sicurezza, ecco alcune considerazioni sulla sicurezza che si applicano nello specifico a questa architettura:

  • Il servizio Gestione API di Azure ha un indirizzo IP pubblico fisso. Limitare l'accesso per chiamare gli endpoint di App per la logica esclusivamente all'indirizzo IP di Gestione API. Per maggiori informazioni, consultare la sezione Limitazione degli indirizzi IP in ingresso.

  • Per assicurarsi che gli utenti dispongano dei livelli di accesso appropriati, usare il controllo degli accessi in base al ruolo (RBAC) di Azure.

  • Proteggere gli endpoint dell'API pubblici in Gestione API tramite OAuth o OpenID Connect. Per proteggere gli endpoint dell'API pubblici, configurare un provider di identità e aggiungere criteri di convalida JSON Web Token (JWT). Per maggiori informazioni, consultare la sezione Protezione di un AP usando OAuth 2.0 con Microsoft Entra ID e API Management.

  • Connettersi ai servizi back-end da Gestione API usando certificati reciproci.

  • Imporre HTTPS nelle API di Gestione API.

Archiviazione dei segreti

Non archiviare mai le password, le chiavi di accesso o le stringhe di connessione nel controllo del codice sorgente, Se questi valori sono necessari, usare le tecniche appropriate per distribuire e proteggere questi valori.

Se un'app per la logica funziona con dati sensibili, vedere Proteggere l'accesso e i dati per i flussi di lavoro in App per la logica di Azure per indicazioni dettagliate.

In Gestione API i segreti vengono gestiti usando oggetti chiamati Valori denominati o Proprietà. Questi oggetti archiviano in modo sicuro valori a cui è possibile accedere attraverso i criteri di Gestione API. Per altre informazioni vedere Come usare i valori denominati nei criteri di Gestione API di Azure.

Eccellenza operativa

L'eccellenza operativa copre i processi operativi che distribuiscono un'applicazione e la mantengono in esecuzione nell'ambiente di produzione. Per altre informazioni, vedere Panoramica del pilastro dell'eccellenza operativa.

DevOps

Creare gruppi di risorse separati per gli ambienti di produzione, sviluppo e test. L'uso di gruppi di risorse separati semplifica la gestione delle distribuzioni, l'eliminazione delle distribuzioni di test e l'assegnazione dei diritti di accesso.

Quando si assegnano risorse a gruppi di risorse, considerare i fattori seguenti:

  • Ciclo di vita. In generale, includere le risorse con un ciclo di vita identico nello stesso gruppo.

  • Accesso. Per applicare i criteri di accesso alle risorse di un gruppo, è possibile usare Controllo degli accessi in base al ruolo (RBAC) di Azure.

  • Fatturazione. È possibile visualizzare il riepilogo dei costi per il gruppo di risorse.

  • Piano tariffario per Gestione API. Per gli ambienti di sviluppo e test è opportuno usare un livello Developer. Per ridurre al minimo i costi durante la pre-produzione, distribuire una replica dell'ambiente di produzione, eseguire i test e quindi arrestare il sistema.

Distribuzione

Usare i Modelli di Azure Resource Manager per distribuire le risorse di Azure e seguire il processo IaC (Infrastructure as Code). I modelli semplificano l'automatizzazione delle distribuzioni usando Servizi DevOps di Azure o altre soluzioni CI/CD.

Staging

Prendere in considerazione la gestione temporanea dei carichi di lavoro, ovvero la distribuzione in varie fasi e l'esecuzione delle convalide in ogni fase prima di passare a quella successiva. Se si usa questo approccio, è possibile eseguire il push degli aggiornamenti negli ambienti di produzione in modo altamente controllato e ridurre al minimo i problemi di distribuzione imprevisti. La distribuzione blu-verde e le versioni Canary sono strategie di distribuzione consigliate per l'aggiornamento degli ambienti di produzione live. Valutare anche una buona strategia di rollback per quando una distribuzione ha esito negativo. Ad esempio, è possibile ridistribuire automaticamente una distribuzione precedente con esito positivo dalla cronologia della distribuzione. Il parametro flag --rollback-on-error nell'interfaccia della riga di comando di Azure è un buon esempio.

Isolamento del carico di lavoro

Aggiungere Gestione API e qualsiasi app per la logica individuale nei rispettivi modelli di Resource Manager separati. L'uso di modelli separati consente di archiviare le risorse in sistemi di controllo del codice sorgente. È possibile distribuire i modelli insieme o separatamente come parte di un processo CI/CD.

Versioni

Ogni volta che si modifica la configurazione di un'app per la logica o si distribuisce un aggiornamento attraverso un modello di Resource Manager, Azure conserva una copia di tale versione oltre a tutte le versioni che hanno una cronologia di esecuzione. È possibile usare queste versioni per tenere traccia delle modifiche cronologiche o per promuovere una versione come configurazione corrente dell'app per la logica. Ad esempio, è possibile eseguire il rollback di un'app per la logica a una versione precedente.

Gestione API include due concetti di controllo delle versioni distinti ma complementari:

  • Versioni: consentono ai consumer di API di scegliere una versione dell'API in base alle esigenze, ad esempio v1, v2, beta o di produzione.

  • Revisioni: consentono agli amministratori di API di apportare modifiche che non causano interruzioni e distribuirle insieme a un log delle modifiche per informare i consumer di API.

È possibile effettuare una revisione in un ambiente di sviluppo e distribuire la modifica in altri ambienti usando i modelli di Resource Manager. Per altre informazioni, vedere Pubblicare più versioni dell'API

È anche possibile usare le revisioni per testare un'API prima di rendere le modifiche attuali e accessibili agli utenti. Tuttavia, questo metodo non è consigliato per test di carico o test di integrazione. Usare invece ambienti di test o di preproduzione separati.

Diagnostica e monitoraggio

Usare Monitoraggio di Azure per il monitoraggio operativo sia in Gestione API che in App per la logica. Il servizio Monitoraggio di Azure include informazioni basate sulle metriche configurate per ogni servizio ed è abilitato per impostazione predefinita. Per altre informazioni, vedi:

Ogni servizio dispone inoltre di queste opzioni:

  • Per un'analisi approfondita e la creazione di dashboard, inviare i registri di App per la logica ad Azure Log Analytics.

  • Per il monitoraggio DevOps, configurare Azure Application Insights per Gestione API.

  • Gestione API supporta il modello di soluzione Power BI per l'analisi personalizzata delle API. È possibile usare questo modello di soluzione per creare una soluzione di analisi personalizzata. Per gli utenti aziendali sono disponibili report in Power BI.

Efficienza prestazionale

L'efficienza delle prestazioni è la capacità di dimensionare il carico di lavoro per soddisfare in modo efficiente le richieste poste dagli utenti. Per altre informazioni, vedere Panoramica del pilastro dell'efficienza delle prestazioni.

Per migliorare la scalabilità di Gestione API, aggiungere criteri di memorizzazione nella cache laddove appropriato e ridurre il carico sui servizi di back-end.

Per offrire una maggiore capacità, è possibile aumentare il numero di istanze per i livelli Basic, Standard e Premium di Gestione API di Azure in un'area di Azure. Per analizzare l'utilizzo per il servizio, selezionare Metrica della capacità nel menu Metriche, quindi aumentare o ridurre in base alle esigenze. Il processo di aggiornamento o ridimensionamento può richiedere da 15 a 45 minuti.

Elementi consigliati per la scalabilità di un servizio Gestione API:

  • Quando si scala un servizio, considerare i modelli di traffico. I clienti con modelli di traffico più volatili necessitano di una capacità maggiore.

  • Una capacità costante superiore al 66% può indicare la necessità di aumentare le prestazioni.

  • Una capacità costante inferiore al 20% può indicare un'opportunità per ridurre le prestazioni.

  • Prima di consentire il carico in produzione, è sempre consigliabile testare il carico nel servizio di Gestione API usando un carico rappresentativo.

Con il livello Premium, è possibile scalare un'istanza di Gestione API in più aree di Azure. Questo rende API Management idoneo a un SLA superiore e consente di eseguire il provisioning dei servizi in prossimità degli utenti in più aree.

Il modello serverless di App per la logica di Azure prevede che gli amministratori non debbano pianificare la scalabilità dei servizi. Il servizio offre scalabilità automatica per soddisfare la richiesta.

Ottimizzazione dei costi

In linea generale, usare il calcolatore dei prezzi di Azure per stimare i costi. Di seguito alcune ulteriori considerazioni.

Gestione API

Tutte le istanze di API Management comportano un addebito quando sono in esecuzione. Se sono state aumentate le prestazioni e tale livello di prestazioni non è costantemente necessario, passare manualmente a un piano inferiore o configurare la scalabilità automatica.

App per la logica

App per la logica funziona come modello senza server. La fatturazione viene calcolata in base all'esecuzione del connettore e dell'azione. Per altre informazioni, vedere Prezzi di App per la logica.

Per altre informazioni, vedere la sezione sui costi in Microsoft Azure Well-Architected Framework.

Passaggi successivi

Per una maggiore affidabilità e scalabilità, usare code ed eventi di messaggi per disaccoppiare i sistemi back-end. Questa architettura è illustrata nel prossimo articolo di questa serie:

È inoltre possibile che si sia interessati a questi articoli del Centro architetture di Azure: