Condividi tramite


Prospettiva di Well-Architected Framework su Azure Service Fabric

Azure Service Fabric è una piattaforma di sistemi distribuiti che semplifica la creazione di pacchetti, la distribuzione e la gestione di microservizi e contenitori scalabili e affidabili. Queste risorse vengono distribuite in un set connesso alla rete di macchine virtuali o fisiche, denominato cluster .

Questo articolo presuppone che, in qualità di architetto, tu abbia esaminato l'albero delle decisioni di calcolo e abbia scelto Service Fabric come piattaforma per il tuo carico di lavoro. Le linee guida contenute in questo articolo forniscono raccomandazioni sull'architettura mappate ai principi dei pilastri di Well-Architected Framework.

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 localizzate nell'ambito della tecnologia.

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 Azure Service Fabric e le relative dipendenze. Vengono invece elencate le raccomandazioni principali mappate alle prospettive di progettazione. Usare le raccomandazioni per creare un modello di verifica o per ottimizzare gli ambienti esistenti.

Architettura di base che illustra le raccomandazioni principali: architettura di microservizi in Azure Service Fabric.

ambito della tecnologia

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

  • Service Fabric

Nota

Questa guida al servizio si basa sulle linee guida disponibili nella guida macchine virtuali e set di scalabilità servizio. I nodi di Service Fabric sono supportati da set di scalabilità di macchine virtuali, quindi fare riferimento a tale guida al servizio per consigli sul funzionamento del back-end di calcolo per i nodi di Service Fabric.

Quando si parla di considerazioni sull'architettura e raccomandazioni sulla configurazione con Azure Service Fabric, è importante distinguere tra cluster e carico di lavoro . La configurazione del cluster è una responsabilità condivisa tra l'amministratore del cluster di Service Fabric e il provider di risorse, mentre la configurazione del carico di lavoro è il dominio di uno sviluppatore. Azure Service Fabric include considerazioni e raccomandazioni per entrambi questi ruoli.

Nell'elenco di controllo progettuale e nell'elenco di raccomandazioni di seguito, sono presenti note per indicare se ogni scelta è applicabile all'architettura del cluster, all'architettura del carico di lavoro o a entrambi.

Affidabilità

Lo scopo del pilastro Affidabilità è fornire funzionalità continue la creazione di resilienza sufficienti e la possibilità di recuperare rapidamente dagli errori.

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 per la progettazione

Avvia la tua strategia di progettazione in base all'elenco di controllo di revisione della progettazione per Reliability. Determinare la rilevanza per i requisiti aziendali tenendo presente gli [aspetti specifici dell'offerta]. Estendere la strategia per includere altri approcci in base alle esigenze.

  • (Cluster) Determinare il livello di affidabilità appropriato per il cluster, basandosi sulla metrica di destinazione complessiva per l'affidabilità del carico di lavoro. Il livello di affidabilità del cluster identificato determinerà il numero minimo di nodi da distribuire per il tipo di nodo primario. Per informazioni su come effettuare queste decisioni, vedere la documentazione relativa alla pianificazione della capacità .
  • (Cluster) Per i carichi di lavoro critici, è consigliabile usare zone di disponibilità per i cluster di Service Fabric.
  • (Cluster) Per gli scenari di produzione, usare lo SKU del cluster gestito Standard con un livello di durabilità Silver (5 macchine virtuali) o versione successiva. Questo SKU offre funzionalità di affidabilità più elevate rispetto allo SKU Basic, che deve essere usato per gli scenari non di produzione.
  • (Cluster) Creare tipi di nodo secondari aggiuntivi per i carichi di lavoro per isolare tipi di carico di lavoro diversi. Ciò consente di separare i servizi front-end dai servizi back-end, consentendo di gestire e ridimensionare tali servizi in modo indipendente. Ogni tipo di nodo è supportato dal proprio set di scalabilità.

Consigli

Raccomandazione Beneficio
(Cluster) Gestione API può integrare direttamente con Service Fabric. È consigliabile utilizzarlo per permettere l'esposizione e il caricamento delle funzionalità trasversali per le API ospitate nel cluster. APIM è un gateway per applicazioni ricco di funzionalità che aiuta a pubblicare, gestire e monitorare in modo sicuro le API distribuite nel cluster di Service Fabric.
(Carico di lavoro) Per gli scenari di carico di lavoro con stato, è consigliabile usare Reliable Services. Il modello Reliable Services consente ai servizi di rimanere attivi quando si verificano errori di sistema o problemi di rete o nei casi in cui i servizi stessi riscontrano malfunzionamenti. Per i servizi stateful, il tuo stato viene preservato quando si verificano malfunzionamenti.

Sicurezza

Lo scopo del pilastro della sicurezza è fornire garanzie di riservatezza, integrità e disponibilità al carico di lavoro.

I principi di progettazione sicurezza forniscono una strategia di progettazione di alto livello per raggiungere tali obiettivi applicando approcci alla progettazione tecnica di Service Fabric.

Elenco di controllo per la progettazione

Basare la strategia di progettazione sull'elenco di controllo di revisione della progettazione per la sicurezza.

  • (Cluster e carico di lavoro) Acquisire familiarità con le linee guida per la sicurezza dei prodotti di Service Fabric. Consultare procedure consigliate per la sicurezza, scenari di sicurezza del clustere sicurezza dell'applicazione e del servizio di Service Fabric.
  • (Cluster) Applicare la segmentazione di rete e i controlli configurando gruppi di sicurezza di rete per limitare il flusso del traffico tra subnet e tipi di nodo.
  • (Cluster) Gestire in modo sicuro i segreti dell'applicazione e i certificati client usando strumenti nativi. I segreti dell'applicazione devono essere gestiti con l'archivio segreti di Service Fabric e le certificazioni devono essere gestiti con Key Vault.
  • (Cluster) Prendere in considerazione l'utilizzo di un bilanciatore di carico personalizzato, che consente di usare un bilanciatore di carico interno e di definire bilanciatori di carico e gruppi di sicurezza di rete differenti per ogni tipo di nodo.
  • (Cluster) Controllare in modo sicuro l'accesso al cluster abilitando l'integrazione di Microsoft Entra, consentendo agli utenti di eseguire l'autenticazione con le credenziali entra. In alternativa, è possibile usare i certificati del client e dell'amministratore del cluster. Non distribuire i certificati client del cluster tra gli utenti di Service Fabric Explorer.
  • (Cluster e carico di lavoro) Creare un processo per il monitoraggio della data di scadenza dei certificati client.
  • (Cluster e carico di lavoro) Gestire cluster separati per lo sviluppo, la gestione temporanea e la produzione. Gli ambienti di produzione richiedono in genere controlli di sicurezza più rigorosi rispetto agli ambienti non di produzione e isolare gli ambienti l'uno dall'altro aggiunge un livello di sicurezza se un ambiente viene compromesso.

Consigli

Raccomandazione Beneficio
(Cluster) Assicurarsi che le porte corrette siano aperte per l'implementazione e i carichi di lavoro dell'applicazione. Questa configurazione garantisce che la comunicazione tra le risorse di Service Fabric e il resto del carico di lavoro siano protette.
(Cluster) Quando si usa l'archivio segreti di Service Fabric per distribuire i segreti, usare un certificato di crittografia dei dati separato per crittografare i valori. L'uso di un certificato di crittografia separato garantisce l'isolamento tra i certificati, riducendo il rischio di un singolo punto di errore e consentendo un controllo di accesso più granulare.
(Cluster) Applicare un ACL (Access Control List) al certificato client per il cluster di Service Fabric. L'uso di un elenco di controllo di accesso fornisce un livello di autenticazione aggiuntivo, consentendo un controllo più granulare sugli utenti autorizzati ad accedere ai certificati.
(Cluster) Usare richieste di risorse e limiti per gestire l'utilizzo delle risorse nei nodi del cluster. L'applicazione dei limiti delle risorse consente di garantire che un servizio non consumi troppe risorse e non faccia mancare ad altri servizi.
(Carico di lavoro) Includere i certificati client nelle applicazioni di Service Fabric. Avere le applicazioni che usano certificati client per l'autenticazione offre opportunità di sicurezza sia a livello di cluster che di carico di lavoro.
(Carico di lavoro) Autenticare le applicazioni di Service Fabric nelle risorse di Azure usando identità gestita. L'uso dell'identità gestita consente di gestire in modo sicuro le credenziali nel codice per l'autenticazione in vari servizi senza salvarle in locale in una workstation per sviluppatori o nel controllo del codice sorgente.
(Cluster e carico di lavoro) Quando si ospitano applicazioni non attendibili, usare la tecnologia sandboxing più avanzata applicabile, rimuovere l'accesso al runtime di Service Fabric e seguire altre procedure consigliate di Service Fabric . Seguendo le procedure consigliate fornite, è possibile garantire che solo le applicazioni attendibili e verificate possano interagire con i componenti critici, limitando l'impatto sulle applicazioni non attendibili con vulnerabilità o codice dannoso sul normale funzionamento del cluster.

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 Ottimizzazione costi forniscono una strategia di progettazione di alto livello per raggiungere tali obiettivi e fare compromessi in base alle esigenze nella progettazione tecnica correlata a Service Fabric e al relativo ambiente.

Elenco di controllo per la progettazione

Avvia la strategia di design basata sull'elenco di controllo della revisione del design per l'ottimizzazione dei costi per gli investimenti. Ottimizzare la progettazione in modo che il carico di lavoro sia allineato al budget allocato per il carico di lavoro. La progettazione deve usare le funzionalità di Azure appropriate, monitorare gli investimenti e trovare opportunità per ottimizzare nel tempo.

  • (Carico di lavoro e cluster) Stimare il costo iniziale usando il calcolatore dei prezzi di Azure . Vengono addebitati solo i costi per le istanze di calcolo, l'archiviazione, le risorse di rete e gli indirizzi IP scelti durante la creazione di un cluster di Service Fabric. Non sono previsti addebiti per il servizio offerto da Service Fabric stesso. Per iniziare a usare la modellazione dei costi, vedere il processo di calcolo dei costi di esempio per la pianificazione delle applicazioni.
  • (Cluster) Selezionare gli SKU di macchina virtuale appropriati. Scegliere le macchine virtuali in base alle caratteristiche del carico di lavoro. Il carico di lavoro è intensivo per la CPU o esegue processi interrompibili?
  • (Cluster) Selezionare gli SKU del cluster appropriati. Usare Standard per gli ambienti di produzione e Basic per gli ambienti non di produzione, a meno che non esista un motivo interessante per farlo in altro modo. Usare i tipi di nodo e le dimensioni appropriati in ogni ambiente.
  • (Cluster e carico di lavoro) Selezionare i livelli e le dimensioni del disco gestito appropriati. Consultare la guida al servizio WAF per l'archiviazione su disco. Evitate di utilizzare SKU per macchine virtuali che includono dischi temporanei per evitare di pagare risorse superflue.

Consigli

Raccomandazione Beneficio
(Cluster) Se non si hanno requisiti per mantenere lo stato, è consigliabile scegliere uno SKU di macchina virtuale con supporto temporaneo del disco. Sfruttare al meglio le risorse per cui si paga. L'uso di un disco temporaneo anziché di un disco gestito può ridurre i costi per i carichi di lavoro senza stato.
(Cluster e carico di lavoro) Allineare la selezione dello SKU della VM con i requisiti del carico di lavoro. Per soddisfare i requisiti, assicurarsi di aver identificato i tipi di nodo corretti, che sono ospitati nei set di scalabilità. La corrispondenza tra la selezione e le richieste del carico di lavoro consente di evitare di pagare costosi SKU di macchine virtuali che potrebbero non essere necessari.
(Cluster e carico di lavoro) Allineare la selezione del tipo di disco con le esigenze del carico di lavoro. La scelta del tipo di disco gestito appropriato consente di evitare di pagare per i tipi costosi che potrebbero non essere necessari.

Eccellenza operativa

L'eccellenza operativa si concentra principalmente sulle pratiche di sviluppo , sull'osservabilità e sulla gestione delle versioni.

I principi di progettazione dell'eccellenza operativa forniscono una strategia di progettazione di alto livello per raggiungere tali obiettivi in base ai requisiti operativi del carico di lavoro.

Elenco di controllo per la progettazione

Inizia la tua strategia di progettazione basandoti sull'elenco di controllo per la revisione della progettazione per l'eccellenza operativa, al fine di definire i processi di osservabilità, test e distribuzione relativi a Service Fabric.

  • (Cluster e carico di lavoro) Integrare i componenti di Service Fabric, inclusi i cluster, l'infrastruttura correlata e l'applicazione stessa, nella piattaforma di monitoraggio e avviso. Per una guida dettagliata, vedere l'articolo migliori prassi per il monitoraggio.
  • (Cluster e carico di lavoro) Usare il modello di integrità di Service Fabric per monitorare continuamente l'integrità della soluzione. Questo strumento deve integrare il tuo modello di salute complessiva del carico di lavoro .
  • (Cluster e carico di lavoro) Creare un processo per il monitoraggio della data di scadenza dei certificati client. Ad esempio, Key Vault offre una funzionalità che invia un messaggio di posta elettronica quando è trascorsa x% della durata del certificato.
  • (Cluster e carico di lavoro) Usare l'integrazione continua e le procedure di distribuzione continua per gestire le distribuzioni del cluster. Usare uno strumento appositamente creato come Azure Pipelines o Github Actions per gestire le pipeline CI/CD, che consente di gestire centralmente tutte le distribuzioni dei carichi di lavoro in tutti gli ambienti con strategie di controllo del codice sorgente appropriate.

Consigli

Raccomandazione Beneficio
(Carico di lavoro) Usare Application Insights per monitorare i carichi di lavoro. Application Insights offre un monitoraggio completo delle prestazioni delle applicazioni (APM) per le applicazioni Web in tempo reale, consentendo di raccogliere e analizzare i dati di telemetria delle applicazioni, migliorando l'integrità dell'applicazione e il monitoraggio delle prestazioni.
(Carico di lavoro e cluster) Usare Azure Monitor per monitorare gli eventi dell'infrastruttura del cluster e dei contenitori. Monitoraggio di Azure offre funzionalità complete di monitoraggio e diagnostica, che consentono di raccogliere e analizzare log e metriche dalle applicazioni e dall'infrastruttura di Azure. Monitoraggio di Azure si integra bene con la piattaforma Azure, tra cui Service Fabric.
(Cluster) Implementare criteri di integrità del cluster appropriati come parte della modellazione dell'integrità. I criteri consentono di personalizzare il modo in cui gli errori vengono interpretati dal punto di vista dell'integrità del cluster. Ad esempio, è possibile impostare la percentuale massima tollerata di nodi che possono non essere integri prima che il cluster venga considerato in errore.
(Cluster) Implementare criteri di integrità appropriati applicazioni e tipi di servizio come parte della modellazione dell'integrità. La politica di salute dell'applicazione descrive come viene eseguita la valutazione degli eventi e dell'aggregazione degli stati figlio per le applicazioni e i loro elementi figlio. Service Fabric presuppone che l'entità non sia integra se dispone di un report sull'integrità o di un componente figlio in stato di integrità di avviso o errore.
(Cluster e carico di lavoro) Usare azure Chaos Studio per inserire malfunzionamenti nella soluzione come parte della strategia di test. L'introduzione di malfunzionamenti nella soluzione consente di identificare potenziali punti di errore e di praticare le misure di risposta agli eventi imprevisti.
(Cluster e carico di lavoro) Usare Azure Pipelines per la soluzione di integrazione e distribuzione continua (CI/CD). L'uso di una soluzione CI/CD come Azure Pipelines consente di gestire le distribuzioni in modo efficiente, coerente e sicuro. Azure Pipelines offre supporto nativo per le distribuzioni di Service Fabric.

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 e l'ottimizzazione dei potenziali colli di bottiglia e l'ottimizzazione delle prestazioni massime.

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 per la progettazione

Inizia la tua strategia di design basata sull'elenco di controllo della revisione del design per l'Efficienza delle Prestazioni. Definire una baseline basata su indicatori di prestazioni chiave per Service Fabric.

  • (Cluster) Sfruttare i vantaggi dell'ottimizzazione delle prestazioni e migliorare le funzionalità richieste dal carico di lavoro. Per indicazioni relative alla piattaforma di calcolo sottostante, vedere la guida del servizio vm.
  • (Cluster) Distribuisci macchine virtuali e dischi che soddisfino i tuoi requisiti di performance, evitando spese non necessarie per la capacità inutilizzata. Assicurarsi di poter aggiungere facilmente capacità per soddisfare i piani di crescita futuri.
  • (Carico di lavoro) Comprendere i modelli di programmazione supportati da Service Fabric e scegliere il modello migliore per i requisiti del carico di lavoro. Ogni modello di programmazione presenta vantaggi e svantaggi univoci e i requisiti specifici del carico di lavoro possono essere allineati a un modello migliore rispetto ad altri.
  • (Carico di lavoro) Usare i modelli di architettura cloud stabiliti per progettare il carico di lavoro. microservizi, basati su eventi e i modelli di architettura di elaborazione in background sono tutti candidati validi per le progettazioni di applicazioni di Service Fabric.

Raccomandazione

Raccomandazione Beneficio
(Cluster) Escludere i processi di Service Fabric in esecuzione nelle macchine virtuali Windows da Windows Defender se i criteri di sicurezza consentono di escludere processi e percorsi per il software open source. L'esclusione dei processi di Service Fabric riduce l'impatto sulle prestazioni e il sovraccarico del consumo di risorse dovuto a Windows Defender
(Cluster) È consigliabile usare di scalabilità automatica per il cluster per abilitare l'aggiunta o la riduzione dei nodi su richiesta in un tipo di nodo secondario. La scalabilità automatica riduce il sovraccarico di gestione e il potenziale impatto aziendale monitorando e ottimizzando la quantità di nodi che consentono di gestire il carico di lavoro.
(Cluster) È consigliabile usare Accelerated Networking. La rete accelerata consente un percorso ad alte prestazioni che ignora l'host dal percorso dati, riducendo così la latenza, il jitter e l'utilizzo della CPU per i carichi di lavoro di rete più impegnativi.
(Cluster) Prendere in considerazione l'uso della crittografia sull'host invece di Azure Disk Encryption (ADE). La crittografia sull'host migliora ADE supportando tutti i tipi di sistema operativo e le immagini, incluse quelle personalizzate, per le tue macchine virtuali crittografando i dati nel servizio di archiviazione di Azure.
(Carico di lavoro) Implementare i modelli di programmazione Service Fabric più adatti per il carico di lavoro. La scelta di un modello di programmazione appropriato consente di sfruttare le funzionalità predefinite che supportano i requisiti del carico di lavoro, ad esempio la gestione dello stato, la concorrenza e il riutilizzo della codebase esistente. È anche possibile assicurarsi che gli standard di distribuzione vengano mantenuti selezionando un modello di programmazione allineato a tali standard.
(Cluster e carico di lavoro) Implementare il ridimensionamento per soddisfare i requisiti aziendali. Trovare il meccanismo di ridimensionamento corretto per il carico di lavoro.. È possibile usare il ridimensionamento per abilitare l'utilizzo massimo delle risorse per la soluzione.

Criteri di Azure

Azure offre un set completo di criteri predefiniti correlati a Service Fabric e alle relative dipendenze. È possibile controllare alcune delle raccomandazioni precedenti tramite Criteri di Azure. Ad esempio, è possibile verificare se:

  • I cluster di Service Fabric sono configurati come ridondanti nelle zone.
  • I cluster di Service Fabric hanno la proprietà ClusterProtectionLevel impostata su EncryptAndSign.
  • I cluster di Service Fabric sono configurati per l'uso solo di Azure Active Directory per l'autenticazione client.

Per una governance completa, esaminare le definizioni integrate dei criteri di Azure per Service Fabric e altri criteri che potrebbero influire sulla sicurezza dell'area dell'infrastruttura cloud.

Raccomandazioni di Azure Advisor

Azure Advisor è un consulente cloud personalizzato che consente di seguire le procedure consigliate per ottimizzare le distribuzioni di Azure. Ecco alcune raccomandazioni che consentono di migliorare l'affidabilità, la sicurezza, l'efficacia dei costi, le prestazioni e l'eccellenza operativa di Service Fabric.

Vedere l'articolo opzioni di configurazione del cluster gestito di Azure Service Fabric per un elenco di tutte le opzioni disponibili durante la creazione e la gestione del cluster.

Per una guida su come sviluppare i tuoi carichi di lavoro, esamina i concetti fondamentali dell'architettura delle applicazioni di Azure . Anche se Service Fabric può essere usato esclusivamente come piattaforma di hosting di contenitori, l'uso di carichi di lavoro ben strutturati sfrutta la funzionalità completa di Service Fabric.

Usa questi consigli per creare il cluster gestito di Service Fabric utilizzando un modello di Gestione delle risorse o tramite il portale di Azure: