Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Azure Container Apps è un servizio di container serverless completamente gestito che esegue microservizi e applicazioni containerizzate su Azure. Offre scalabilità automatica predefinita, inclusa la scalabilità a zero e supporta più linguaggi e framework di programmazione. Container Apps si integra con Azure Kubernetes Service (AKS) per funzionalità avanzate di rete e monitoraggio. Offre anche una distribuzione e una gestione semplici delle applicazioni in contenitori senza la necessità di gestire l'infrastruttura sottostante. Supporta sia applicazioni basate su HTTP che basate su eventi, pertanto è ideale per la creazione di applicazioni moderne, scalabili e resilienti native del cloud.
Questo articolo presuppone che, come architetto, tu abbia esaminato l'albero decisionale del calcolo e abbia scelto Container Apps come piattaforma di calcolo per il tuo carico di lavoro. Le linee guida presenti in questo articolo forniscono raccomandazioni architettoniche che sono collegate ai principi dei pilastri del Framework Well-Architected.
Importante
Come usare questa guida
Ogni sezione include un elenco di controllo di progettazione che presenta aree di interesse per l'architettura insieme alle strategie di progettazione adattate all'ambito tecnologico.
Sono incluse anche raccomandazioni per le funzionalità tecnologiche che possono aiutare a materializzare tali strategie. Le raccomandazioni non rappresentano un elenco completo di tutte le configurazioni disponibili per le applicazioni container e le relative dipendenze. Vengono invece elencate le raccomandazioni principali mappate alle prospettive di progettazione. Usa le raccomandazioni per costruire una prova del concetto o per ottimizzare gli ambienti esistenti.
Architettura di base che illustra le raccomandazioni principali: microservizi con app Azure Container.
Ambito della tecnologia
Questa revisione è incentrata sulle decisioni correlate per le risorse di Azure seguenti:
- Applicazioni container
Affidabilità
Lo scopo del pilastro Affidabilità è fornire funzionalità continue attraverso la costruzione di una resilienza sufficiente e la capacità di recuperare rapidamente dai guasti.
principi di progettazione dell'affidabilità forniscono una strategia di progettazione di alto livello applicata per singoli componenti, flussi di sistema e sistema nel suo complesso.
Elenco di controllo della progettazione
Avvia la strategia di progettazione in base alla checklist di revisione del design per l'Affidabilità. Determinare la rilevanza per i requisiti aziendali tenendo presente le prestazioni e l'affidabilità delle applicazioni. Estendere la strategia per includere altri approcci in base alle esigenze.
Scegliere le configurazioni di SKU appropriate. Selezionare uno SKU di ambiente allineato ai requisiti di risorse e prestazioni delle app contenitore.
Creare ridondanza per migliorare la resilienza. Per le app esposte tramite ingress (HTTP o Transmission Control Protocol (TCP)), usare almeno tre repliche per aiutare a garantire la disponibilità. Configurare un numero minimo di repliche sempre pronte per ridurre al minimo gli avvii a freddo.
Usare le zone di disponibilità come parte della strategia di resilienza per aumentare la disponibilità quando si esegue la distribuzione in una singola area. Molte aree di Azure forniscono zone di disponibilità. Le zone sono posizionate abbastanza vicine per garantire connessioni a bassa latenza tra di esse, ma abbastanza distanti per ridurre al minimo il rischio di interruzioni locali che interessano più zone.
Per i carichi di lavoro critici, distribuire ambienti di app contenitore in più aree e usare Frontdoor di Azure o Gestione traffico di Azure per la gestione del traffico. Questi servizi consentono di garantire disponibilità elevata e continuità aziendale. Se si verifica un'interruzione a livello di area, è possibile reindirizzare automaticamente il traffico a un'area secondaria per ridurre al minimo i tempi di inattività e la perdita di dati.
Implementare la scalabilità automatica orizzontale. Configurare la scalabilità automatica usando regole di scalabilità basate su richieste HTTP, connessioni TCP o metriche personalizzate, ad esempio soglie di CPU e memoria. È possibile definire metriche personalizzate nel bus di servizio di Azure, in Hub eventi di Azure, in Apache Kafka e in Cache Redis di Azure. Usare la scalabilità automatica per gestire in modo dinamico i carichi e mantenere la disponibilità elevata durante i picchi di utilizzo.
Assicurati che le app container possano comunque gestire le richieste entro l'obiettivo del livello di servizio (SLO) con carico elevato.
Monitorare l'affidabilità e gli indicatori di integrità complessivi dell'app contenitore. Raccogliere log e metriche per monitorare l'integrità, identificare le tendenze di prestazioni e affidabilità e risolvere i problemi. Per altre informazioni sulla progettazione della soluzione di monitoraggio dell'affidabilità e dell'integrità per il carico di lavoro, vedere Modellazione dell'integrità per i carichi di lavoro.
Implementare gli strumenti di monitoraggio e gli avvisi. Attivare gli strumenti di monitoraggio, ad esempio Monitoraggio di Azure e OpenTelemetry. Configurare gli avvisi per rilevare e rispondere tempestivamente agli eventi che influiscono sull'affidabilità.
Configurare le sonde di controllo della salute. Configurare probe di avvio, idoneità e attività per tutti i servizi per monitorare e mantenere l'integrità delle applicazioni.
Configurare meccanismi di riparazione automatica per riavviare automaticamente le istanze del contenitore non integre. I riavvii automatici aumentano l'affidabilità e la disponibilità delle applicazioni. Consentono di garantire un ripristino rapido da errori senza intervento manuale. Utilizzare le sonde di integrità per rilevare i contenitori malfunzionanti e configurare i criteri di resilienza per gestire automaticamente i tentativi e gli interruttori automatici.
Consigli
Raccomandazione | Beneficio |
---|---|
Abilitare il supporto della zona di disponibilità delle app contenitore per distribuire automaticamente le repliche tra le zone in un'area. Il traffico viene bilanciato tra le repliche. | Se si verifica un errore di zona, il traffico viene indirizzato automaticamente alle repliche nelle zone rimanenti. |
Definire quote e limiti delle risorse . | Evitare conflitti di risorse per garantire un'allocazione equa ed evitare una riduzione delle prestazioni. Usare il monitoraggio nel tempo per osservare l'utilizzo effettivo delle risorse e regolare le quote e i limiti di conseguenza. |
Usare i montaggi di volumi per archiviare i dati all'esterno del contenitore nelle applicazioni con stato. Per migliorare la resilienza dei dati, usare l'archiviazione con ridondanza della zona di Azure per garantire disponibilità elevata e durabilità dei dati. | Verificare la persistenza e l'integrità dei dati tra riavvii e errori del contenitore. Usare ZRS per proteggere dalla perdita di dati causata da guasti zonali, che offre una soluzione robusta per applicazioni stateful critiche. |
Implementare probe di integrità, preparazione e avvio per le app contenitore. Le probe di liveness rilevano e riavviano i contenitori in uno stato di inattività. Impostazioni consigliate: failureThreshold: 3 , periodSeconds: 10 timeoutSeconds: 5 , successThreshold: 1 , einitialDelaySeconds: 10 Le sonde di disponibilità assicurano che solo i contenitori sani ricevano traffico. Impostazioni consigliate: failureThreshold: 60 , periodSeconds: 1 timeoutSeconds: 1 , successThreshold: 1 , einitialDelaySeconds: 5 Le sonde di avvio impediscono i riavvii prematuri consentendo alle applicazioni a lento avvio di inizializzare correttamente. Impostazioni consigliate: failureThreshold: 60 , periodSeconds: 1 timeoutSeconds: 1 , successThreshold: 1 , einitialDelaySeconds: 0 |
La configurazione corretta del probe consente di garantire che le app del contenitore vengano eseguite senza problemi e possano gestire il traffico. Le configurazioni di probe non corretta possono causare riavvii imprevisti o tempi di inattività. |
Usare le funzionalità di osservabilità predefinite di App contenitore, ad esempio lo streaming dei log, la console contenitore e gli avvisi di Monitoraggio di Azure, per garantire il monitoraggio proattivo e l'efficienza del debug. | App Contenitore offre il supporto approfondito per l'osservabilità, compresa l'integrazione con il dashboard .NET Aspire e le metriche Java. Questi strumenti consentono informazioni dettagliate avanzate per gli ecosistemi chiave. È anche possibile usare l'agente di raccolta OpenTelemetry per una raccolta completa di traccia distribuita e metriche. Queste funzionalità migliorano l'affidabilità dell'applicazione perché è possibile identificare e risolvere rapidamente i problemi. |
Implementare criteri di resilienza per l'individuazione dei servizi, ad esempio ritentativi, timeout e interruttori, per impedire, rilevare e recuperare in modo proattivo gli errori delle richieste di servizio. | Migliorare l'affidabilità delle app contenitore garantendo comunicazioni tra servizi più uniformi e resilienti. |
Implementare la scalabilità automatica orizzontale usando regole di scalabilità basate su richieste HTTP, connessioni TCP o metriche personalizzate, ad esempio soglie di CPU e memoria. È possibile definire metriche personalizzate nel bus di servizio, in Hub eventi, in Apache Kafka e in Cache Redis di Azure. | Il carico di lavoro può gestire in modo dinamico i carichi e mantenere la disponibilità elevata durante i picchi di utilizzo. |
Sicurezza
Lo scopo del pilastro Sicurezza è fornire garanzie di riservatezza, integrità e disponibilità al carico di lavoro.
I principi di progettazione della sicurezza forniscono una strategia di progettazione di alto livello per raggiungere tali obiettivi applicando approcci alla progettazione tecnica delle app contenitore.
Elenco di controllo della progettazione
Avvia la tua strategia di progettazione in base alla checklist di revisione della progettazione per la sicurezza e identifica vulnerabilità e controlli per migliorare il profilo di sicurezza. Estendere la strategia per includere altri approcci in base alle esigenze.
Esaminare le baseline di sicurezza. Per migliorare il comportamento di sicurezza del carico di lavoro, esaminare la baseline di sicurezza per le app contenitore.
Eseguire l'integrazione con Microsoft Entra ID per identità e gestione degli accessi. Usare il controllo degli accessi in base al ruolo con Microsoft Entra ID per l'accesso con privilegi minimi.
Usare le identità gestite con Microsoft Entra ID per l'accesso sicuro e senza credenziali alle risorse di Azure.
Implementare la segmentazione e i controlli di rete. Distribuisci ambienti privati di app container e utilizza la modalità di instradamento interna per l'isolamento da Internet pubblico.
Controllare il traffico in uscita. Per evitare l'esfiltrazione dei dati, integrare l'ambiente delle app contenitore in una rete virtuale personalizzata con route definite dall'utente per proteggere il traffico in uscita.
Gestire la catena di fornitura del software per un carico di lavoro rinforzato. Implementare la scansione consapevole dei contenitori nelle pipeline sicure di integrazione continua e consegna continua (CI/CD). Questa funzionalità rileva le vulnerabilità e garantisce l'integrità delle immagini del contenitore. Per ulteriori informazioni, vedere Contenitori Catena di Fornitura Sicura.
Ridurre la superficie di attacco. Rafforzare le immagini del contenitore e rimuovere i componenti inutilizzati. Usare immagini di base leggere e minime come le immagini Alpine e Ubuntu Chiselled.
Eseguire l'integrazione con Microsoft Defender. Utilizzare Microsoft Defender for Containers per analizzare le immagini in Azure Container Registry.
Crittografa i dati inattivi e i dati in transito. Usare metodi moderni standard del settore per proteggere la riservatezza e l'integrità.
Usare Azure Key Vault. Archiviare i valori di configurazione sensibili e i segreti in Key Vault per proteggerli dall'accesso non autorizzato.
Abilitare mTLS (Mutual Transport Layer Security). Usare mTLS per autenticare e crittografare il traffico tra i servizi. Questa funzionalità verifica entrambe le parti, che migliorano la sicurezza.
Applicare HTTPS. Configurare il proxy Envoy per reindirizzare tutto il traffico HTTP a HTTPS. La configurazione predefinita per Envoy è
allowInsecure: false
.Implementare una strategia di monitoraggio della sicurezza. Acquisire log dettagliati per il monitoraggio e il controllo. Inviare log di sistema e console a un'area di lavoro Log Analytics, a Hub eventi o a una soluzione non Microsoft per scopi di monitoraggio e controllo. Rimuovere i dati sensibili dai log. I log della console provengono dai flussi
stderr
estdout
nell'app.
Consigli
Raccomandazione | Beneficio |
---|---|
Usare le identità gestite per accedere alle risorse protette da Microsoft Entra ID. Assegna un'identità gestita all'app container per accedere alle risorse di Azure protette da Microsoft Entra ID, come un account di archiviazione o un insieme di credenziali, senza dover usare chiavi o password. | Centralizzare la gestione delle identità ed eliminare la necessità di gestire manualmente le credenziali. Semplificare l'accesso sicuro alle risorse di Azure. |
Distribuire app contenitore in una rete privata per integrarle in una rete virtuale esistente. Usare funzionalità come la connettività dell'applicazione privata, l'allegato del gruppo di sicurezza di rete (NSG) e la comunicazione delle risorse tramite un indirizzo IP privato. | Fornire l'isolamento dalla rete Internet pubblica e abilitare la comunicazione sicura tra le app contenitore e altre risorse di rete. |
Usare Key Vault per gestire i certificati e i segreti delle app con sicurezza avanzata. Key Vault mantiene i certificati e altri segreti dell'app separati dalla configurazione dell'app. Fornisce inoltre un log di controllo di accesso che dettaglia quando i certificati e i segreti vengono aggiornati, recuperati e ruotati. | Proteggere le informazioni riservate, garantire la conformità e supportare la gestione sicura dei segreti usando le funzionalità di registrazione e rotazione dei certificati. |
Usare Azure Application Gateway con Web Application Firewall abilitato per proteggere il traffico HTTP e HTTPS quando si pubblica l'applicazione container tramite un proxy inverso. Web Application Firewall analizza il traffico HTTP in ingresso per individuare potenziali attacchi OWASP (Open Web Application Security Project). | Migliorare la sicurezza proteggendo da vulnerabilità Web comuni e fornendo una gestione centralizzata del traffico. |
Eseguire l'autenticazione con Microsoft Entra ID nel Registro Container per evitare l'uso di credenziali amministrative. Puoi controllare l'accesso tramite RBAC. | Abilita il controllo di accesso granulare tramite RBAC per la gestione delle immagini dei container, garantendo un'autenticazione sicura e senza l'uso di credenziali. |
Usare le regole del gruppo di sicurezza di rete (NSG) per proteggere il traffico che accede all'endpoint delle applicazioni container interne. Le regole degli NSG (gruppi di sicurezza di rete) forniscono un controllo più granulare su quali reti virtuali possono comunicare con le tue app contenitore. | Migliorare la sicurezza di rete limitando l'accesso solo alle reti attendibili, riducendo al minimo le superfici di attacco. |
Controllare il traffico in uscita usando rotte di rete definite dall'utente. Controllare il modo in cui i contenitori comunicano con le risorse all'esterno dell'ambiente contenitore. È possibile instradare il traffico a Firewall di Azure, gateway NAT di Azure o a un'appliance non Microsoft. | Garantire che il flusso del traffico in uscita sia controllato e sicuro, supportando politiche avanzate di routing e ispezione. |
Configurare le opzioni di registrazione per inviare i log a un'area di lavoro Log Analytics, a Hub eventi o a una soluzione non Microsoft. | Supportare il monitoraggio centralizzato, la diagnostica e il controllo garantendo al tempo stesso la conformità ai criteri di gestione dei dati sensibili. |
Ottimizzazione costi
L'ottimizzazione dei costi è incentrata su rilevare modelli di spesa, assegnare priorità agli investimenti in aree critiche e ottimizzare in altri per soddisfare il budget dell'organizzazione rispettando i requisiti aziendali.
I principi di progettazione di Ottimizzazione costi forniscono una strategia di progettazione di alto livello per raggiungere tali obiettivi e fare compromessi in base alle esigenze nella progettazione tecnica relativa alle app contenitore e al relativo ambiente.
Elenco di controllo della progettazione
Avvia la tua strategia di progettazione basata sulla checklist di revisione del design per l'ottimizzazione dei costi negli investimenti. Ottimizzare la progettazione in modo che il carico di lavoro sia allineato al budget allocato per esso. La progettazione deve usare le funzionalità di Azure appropriate, monitorare gli investimenti e trovare opportunità per ottimizzare nel tempo.
Selezionare i piani tariffari appropriati. Scegliere i piani tariffari più convenienti per le app contenitore in base ai requisiti del carico di lavoro e ai modelli di utilizzo previsti.
Sfruttare il piano di risparmio di Azure per il calcolo impegnandosi a una tariffa oraria fissa per uno o tre anni. Utilizzare un piano di risparmio che consente di risparmiare fino a 17% rispetto ai prezzi con pagamento in base al consumo. Ottimizzare il budget e ridurre le spese complessive per carichi di lavoro prevedibili a lungo termine.
Ottimizzare i costi dei componenti del carico di lavoro. Esaminare e regolare regolarmente le allocazioni di CPU e memoria in base alle esigenze delle applicazioni. Questa procedura impedisce il provisioning eccessivo e riduce al minimo i costi.
Usa i livelli di disco gestito. Quando si usano i montaggi di volumi, selezionare i livelli e le dimensioni del disco gestito appropriati per ottimizzare i costi di archiviazione per i dati persistenti. Paga solo per quello che ti serve.
Usare immagini dei contenitori semplificate e ottimizzate per migliorare i tempi di avvio e l'efficienza delle risorse, riducendo così i costi di archiviazione e rete.
Ottimizzare i costi di ridimensionamento. Configurare i criteri di scalabilità automatica per ridurre automaticamente le risorse durante i periodi di bassa domanda e aumentare le prestazioni durante i periodi di picco. Questa procedura garantisce un utilizzo efficiente delle risorse.
Ottimizzare i costi di rete. Ottimizzare i percorsi di rete per ridurre al minimo i costi di trasferimento dei dati, in particolare per le applicazioni con volumi di larghezza di banda elevati.
Usare gli strumenti di gestione dei costi. Usare gli strumenti di Gestione costi Microsoft per tenere traccia della spesa, impostare budget, creare avvisi sui costi e implementare tag coerenti tra le risorse.
Questi strumenti offrono visibilità dettagliata sulla spesa cloud, consentono di identificare le opportunità di risparmio sui costi, garantire la conformità ai vincoli di budget e consentire il monitoraggio granulare e la creazione di report dei costi associati a carichi di lavoro, applicazioni e ambienti specifici.
Consigli
Raccomandazione | Beneficio |
---|---|
Esaminare e regolare regolarmente CPU, allocazioni di memoria e altre metriche per allinearsi alle esigenze effettive delle applicazioni. | Evitare il provisioning eccessivo e ridurre i costi non necessari assicurandosi che le risorse siano adeguate ai carichi di lavoro. |
Implementare regole di scalabilità automatica a zero per le app che non devono essere eseguite continuamente. | Eliminare i costi durante i periodi di inattività, assicurandosi di pagare solo le risorse quando sono necessarie. Questo approccio riduce significativamente le spese per le app con modelli di utilizzo variabili o poco frequenti. |
Scegliere i livelli di disco gestito appropriati per le applicazioni con stato. Basare la selezione sulle esigenze di prestazioni e capacità di archiviazione e valutare l'uso di dischi riservati per carichi di lavoro prevedibili. | Assicurarsi di pagare solo per le prestazioni di archiviazione necessarie, evitando costi eccessivi derivanti da una sovrapprovvista di archiviazione. I dischi riservati possono offrire risparmi significativi sui costi per i requisiti di archiviazione a lungo termine offrendo sconti rispetto ai prezzi con pagamento in base al consumo. |
Eccellenza operativa
L'eccellenza operativa si concentra principalmente sulle procedure per le pratiche di sviluppo , l'osservabilità e la gestione dei rilasci.
I principi di progettazione di eccellenza operativa forniscono una strategia di progettazione di alto livello per raggiungere tali obiettivi relativi ai requisiti operativi del flusso di lavoro.
Elenco di controllo della progettazione
Avviare la strategia di progettazione in base all'elenco di controllo della revisione della progettazione per l'eccellenza operativa per definire i processi per l'osservabilità, i test e la distribuzione correlati alle app contenitore.
Implementare un approccio di distribuzione IaC (Infrastructure as Code). Implementare distribuzioni basate su modelli usando strumenti come Bicep o Terraform. Assicurarsi che tutte le distribuzioni siano ripetibili, tracciabili e archiviate in un repository di codice sorgente.
Automatizzare le distribuzioni dell'infrastruttura e dei carichi di lavoro. Usare soluzioni software standard per gestire, integrare e automatizzare la distribuzione dei carichi di lavoro.
Configurare le pipeline di distribuzione per ridistribuire l'ambiente in un'altra regione in caso di interruzione regionale. Questo approccio consente di ripristinare e ridistribuire rapidamente i dati e le configurazioni critici in un'altra area, migliorando le funzionalità di ripristino di emergenza e riducendo al minimo i tempi di inattività durante gli errori a livello di area.
Creare processi automatizzati per configurare gli ambienti con le configurazioni e le distribuzioni necessarie usando le pipeline CI/CD.
Implementare una strategia di monitoraggio completa. Configurare le impostazioni di diagnostica per acquisire log, metriche e dati di diagnostica. Usare strumenti come Monitoraggio di Azure e Application Insights per tenere traccia dell'integrità e delle prestazioni delle applicazioni, identificare le tendenze nelle prestazioni e nell'affidabilità e risolvere i problemi.
Trasmettere dati di telemetria per i carichi di lavoro. Progettare i carichi di lavoro per generare dati di telemetria, inclusi lo stato di disponibilità e di conformità, per facilitare il monitoraggio e la risoluzione dei problemi.
Monitorare le metriche delle prestazioni. Monitorare continuamente le metriche delle prestazioni chiave, ad esempio CPU, memoria e utilizzo della rete per identificare le opportunità di ottimizzazione dei costi e efficienza operativa.
Implementare l'ingegneria del caos. Applicate le pratiche di ingegneria del caos usando strumenti come Azure Chaos Studio per identificare potenziali problemi di affidabilità all'interno dell'ambiente delle Container Apps. Condurre esperimenti per garantire che le applicazioni possano resistere a errori imprevisti. Eseguire test delle prestazioni usando strumenti come Test di carico di Azure per assicurarsi che le regole di ridimensionamento funzionino come previsto senza interruzioni ai client.
Implementare l'assegnazione di tag coerenti alle risorse in tutte le app contenitore e in altre risorse del carico di lavoro. L'assegnazione di tag coerente facilita una gestione efficiente delle risorse, il rilevamento dei costi e l'automazione.
Implementare la governance del carico di lavoro. Azure Policy aiuta a garantire una conformità coerente con gli standard dell'organizzazione, automatizza l'applicazione delle politiche e fornisce visibilità e controllo centralizzati sulle risorse del carico di lavoro.
Consigli
Raccomandazione | Beneficio |
---|---|
Archiviare le configurazioni dell'ambiente di App contenitore come IaC e configurare le pipeline di distribuzione per ridistribuire l'ambiente in un'altra area in caso di interruzione a livello di area. | Assicurarsi di poter ripristinare e ridistribuire rapidamente i dati e le configurazioni critici in un'altra area, migliorando le funzionalità di ripristino di emergenza e riducendo al minimo i tempi di inattività durante gli errori a livello di area. |
Usare le revisioni per implementare distribuzioni blu-verde oppure a canario. Le revisioni richiedono che tu tagghi e versioni appropriatamente le immagini dei container. È possibile usare le etichette nelle revisioni per facilitare la condivisione, ad esempio per i test di accettazione degli utenti o le anteprime limitate. |
Ridurre al minimo i tempi di inattività e i rischi durante i rilasci consentendo implementazioni sicure e rollback rapidi. |
Configurare Monitoraggio di Azure e Application Insights. | Tenere traccia delle prestazioni e dell'integrità delle app contenitore e fornire informazioni dettagliate sulle prestazioni e l'affidabilità dell'applicazione. Usare queste informazioni dettagliate per rilevare e risolvere in modo proattivo i problemi. |
Efficienza delle prestazioni
L'efficienza delle prestazioni riguarda mantenere l'esperienza utente anche quando si verifica un aumento del carico gestendo la capacità. La strategia include il ridimensionamento delle risorse, l'identificazione dei potenziali colli di bottiglia e la loro risoluzione, e l'ottimizzazione per prestazioni di picco.
I principi di progettazione efficienza delle prestazioni forniscono una strategia di progettazione di alto livello per raggiungere tali obiettivi di capacità rispetto all'utilizzo previsto.
Elenco di controllo della progettazione
Avvia la strategia di progettazione in base all'elenco di controllo della revisione della progettazione per l'efficienza delle prestazioni per la definizione di un punto di riferimento basato sugli indicatori chiave di prestazione per Container Apps.
Sviluppare un piano di capacità dettagliato per garantire che le app contenitore dispongano di risorse sufficienti per gestire carichi variabili evitando il provisioning eccessivo. Un piano di capacità consente di ottimizzare i costi e le prestazioni.
Aggiornare regolarmente il piano per documentare le allocazioni corrette delle risorse, le impostazioni di scalabilità automatica e le strategie di failover per le app contenitore. Questo approccio garantisce che sia possibile ripristinare e ridistribuire rapidamente i dati e le configurazioni critici in un'altra area, migliorando le funzionalità di ripristino di emergenza e riducendo al minimo i tempi di inattività durante gli errori a livello di area.
Abilitare la scalabilità automatica. Configurare i criteri di scalabilità automatica per regolare automaticamente il numero di istanze del contenitore in base alla domanda in tempo reale, garantendo prestazioni ottimali durante i picchi e gli orari di minore attività.
Ottimizzare l'allocazione delle risorse. Monitorare e regolare continuamente le allocazioni di CPU e memoria in base alle metriche delle prestazioni per garantire un utilizzo efficiente delle risorse e impedire il provisioning eccessivo.
Eseguire test di carico. Eseguire test di carico regolari per valutare le prestazioni e la scalabilità delle app contenitore in condizioni diverse. Il test garantisce che le app contenitore possano gestire i livelli di traffico previsti.
Separare i carichi di lavoro. Distribuire carichi di lavoro critici e sensibili in ambienti Container App separati per evitare problemi di disturbo dei vicini rumorosi. Distribuire i carichi di lavoro in più ambienti per garantire che le applicazioni critiche abbiano risorse dedicate. Questo metodo garantisce anche che le richieste di prestazioni delle applicazioni meno critiche non influiscano sulle applicazioni critiche.
Consigli
Raccomandazione | Beneficio |
---|---|
Configurare i criteri di scalabilità automatica per regolare automaticamente il numero di istanze del contenitore in risposta alle richieste di risorse. | Aiuta a mantenere le prestazioni delle applicazioni e l'efficienza dei costi. Assicurarsi che le risorse siano disponibili quando necessario e conservate quando non sono necessarie. Usare Test di carico di Azure per eseguire esperimenti di test di carico e modificare i criteri di scalabilità automatica in base alle esigenze. |
Usare il livello dedicato dei profili di carico di lavoro per le applicazioni che richiedono prestazioni prevedibili e allocazione delle risorse garantita. | Fornire risorse dedicate per le applicazioni critiche, che garantisce prestazioni coerenti e riduce il rischio di conflitti di risorse. |
Usare metriche di ridimensionamento personalizzate, ad esempio metriche basate su dati specifici dell'applicazione, per prendere decisioni di scalabilità automatica. | Assicurarsi che le azioni di ridimensionamento siano basate sulle richieste di carico di lavoro pertinenti, migliorando l'efficienza e la velocità di risposta delle app contenitore. |
Criteri di Azure
Azure offre un set completo di criteri predefiniti correlati alle app contenitore e alle relative dipendenze. È possibile controllare alcune delle raccomandazioni precedenti tramite Criteri di Azure. Ad esempio, è possibile verificare se:
Le impostazioni di diagnostica devono essere abilitate: Abilitare la registrazione per gruppo di categorie per gli ambienti app contenitore (
microsoft.app/managedenvironments
) per inviare informazioni all'archiviazione. Questa impostazione garantisce che Archiviazione raccolga costantemente log e metriche per il monitoraggio, la risoluzione dei problemi e la conformità.L'autenticazione per le app contenitore deve essere abilitata: Abilitare l'autenticazione per impedire richieste HTTP anonime e autenticare le richieste tramite token prima di raggiungere un ambiente app contenitore.
Gli ambienti app contenitore devono usare l'inserimento di rete: Configurare gli ambienti di App contenitore con inserimento di rete virtuale per isolarli dalla rete Internet pubblica, abilitare l'integrazione di rete con risorse locali o altre reti virtuali di Azure e ottenere un controllo granulare sul traffico di rete.
L'accesso alla rete pubblica deve essere disabilitato: Disabilitare l'accesso alla rete pubblica per migliorare la sicurezza rendendo accessibile l'ambiente dei Container Apps tramite un bilanciatore di carico interno. Questo approccio blocca l'accesso a Internet a tutte le app contenitore all'interno dell'ambiente.
L'accesso alla rete esterna deve essere disabilitato: Applicare l'ingresso solo interno per garantire che la comunicazione in ingresso per le app contenitore sia limitata ai chiamanti all'interno dell'ambiente App contenitore.
È necessario applicare HTTPS: Assicurarsi che le app contenitore siano accessibili solo tramite HTTPS per proteggere i dati in transito dagli attacchi di intercettazione a livello di rete.
Le identità gestite devono essere abilitate: Richiedere identità gestite per gli ambienti di App contenitore per eseguire l'autenticazione sicura in qualsiasi risorsa che supporti l'autenticazione con ID Microsoft Entra.
Per la governance completa, esaminare le definizioni predefinite di Azure Policy per le app per contenitori e altri criteri che potrebbero influire sulla sicurezza delle reti.
Raccomandazioni di Azure Advisor
Azure Advisor è un consulente cloud personalizzato che consente di seguire le procedure consigliate per ottimizzare le distribuzioni di Azure.
Per altre informazioni, vedere Azure Advisor.
Passaggi successivi
- Distribuire la prima app contenitore usando l'interfaccia della riga di comando di Azure
- Modelli di progettazione cloud che supportano l'affidabilità
- Carichi di lavoro cruciali
- Risorse di progettazione dell'affidabilità del sito
- Panoramica delle App di contenitori
- Acceleratore per la zona di atterraggio delle applicazioni containerizzate