Concetti fondamentali dell'architettura delle applicazioni di Azure
Un'applicazione progettata per carichi di lavoro ospitati nel cloud soddisfa i requisiti aziendali della soluzione e incorpora componenti e funzionalità nativi del cloud. Un'applicazione cloud ben progettata consente di tenere conto dell'affidabilità, della sicurezza, dei costi, delle operazioni e delle prestazioni. Queste considerazioni sono allineate ai requisiti aziendali e alle caratteristiche specifiche e alle funzionalità fornite della piattaforma di hosting cloud.
La progettazione di applicazioni per carichi di lavoro cloud non richiede uno stile di applicazione specifico, ad esempio i microservizi. Tuttavia, l'hosting cloud rende molti modelli di progettazione delle applicazioni più approcciabili rispetto alle soluzioni di hosting che non offrono in modo nativo una selezione diversificata di applicazioni & opzioni della piattaforma dati, funzionalità di ridimensionamento, controlli di sicurezza e opzioni di messaggistica. A tale scopo, i carichi di lavoro cloud traggono vantaggio dalle applicazioni scomposte in servizi più piccoli e decentralizzati in base alla progettazione. Questi servizi comunicano tramite API o tramite messaggistica asincrona o eventi. Le applicazioni vengono ridimensionate orizzontalmente, aggiungendo nuove istanze in caso di richiesta.
Le applicazioni che sfruttano le piattaforme di hosting delle applicazioni cloud, le funzionalità di messaggistica e i servizi scomposti sono soggetti a problemi comuni al sistema distribuito. Lo stato dell'applicazione viene distribuito. Le operazioni vengono eseguite in parallelo e in modo asincrono. Le applicazioni devono essere resilienti quando si verificano errori. Gli attori malintenzionati si rivolgeno continuamente alle applicazioni. Le distribuzioni devono essere automatizzate e prevedibili. Il monitoraggio e la telemetria sono fondamentali per ottenere informazioni dettagliate sul sistema.
Progettazione on-premises tipica
- Funzionalità e dati monolitici e colocati
- Progettato per una scalabilità prevedibile o un eccesso di provisioning
- Database relazionale
- Elaborazione sincronizzata
- Progettare per prevenire i guasti (MTBF)
- Risorse provisionate tramite le funzioni IT
- Snowflake e server per animali domestici
Design tipico del cloud
- Funzionalità e dati scomposti e distribuiti
- Progettato per la scalabilità elastica
- Persistenza poliglotta (combinazione di tecnologie di archiviazione)
- Elaborazione asincrona
- Progettare per resistere a malfunzionamenti (MTBF) e progettare per la riparazione (MTTR)
- Le risorse vengono fornite tramite infrastruttura definita come codice in base alle necessità.
- Infrastruttura non modificabile e sostituibile
Progettazione di applicazioni per Azure
Le applicazioni devono essere progettate da cloud architect per sfruttare in modo specifico l'hosting cloud e prendere decisioni strategiche di compromesso. Azure offre risorse specifiche per aiutare gli architetti a realizzare una progettazione ottimale e guidare i team di sviluppo nella loro implementazione. Per realizzare il design di carichi di lavoro e applicazioni, gli architetti devono:
- Allinea agli standard organizzativi di adozione del cloud
- Progettazione seguendo il Framework Well-Architected di Azure
- Comprendere gli stili di architettura tipici, i carichi di lavoro e procedure consigliate
- Usare modelli di progettazione per risolvere i problemi comuni e introdurre compromessi strategici
- Fare scelte tecnologiche ben informate
- Valutare le architetture di riferimento
- rivedere le guide specifiche del servizio
Azure può essere usato per ospitare e rehostare applicazioni non progettate specificamente per il cloud. Anche se le applicazioni del carico di lavoro possono essere modificate per sfruttare le funzionalità cloud, il rehosting di un'applicazione progettata per le risorse fisse e la scalabilità non è considerata una distribuzione nativa del cloud.
Allinearsi agli standard di adozione del cloud dell'organizzazione
La tua applicazione fa parte di un carico di lavoro che è probabilmente soggetto a standard e governance aziendali. Le organizzazioni di qualsiasi dimensione e maturità del cloud possono usare Cloud Adoption Framework per Azure per formalizzare la strategia di adozione, la conformità, l'innovazione, la gestione & governance e la sicurezza a livello di Azure. Parte di questo approccio consiste nel standardizzare un approccio coerente tra i carichi di lavoro, ad esempio l'uso di zone di destinazione di Azure. Le zone di atterraggio di Azure offrono una combinazione di governance a livello organizzativo, consentendo ai team dei carichi di lavoro e agli architetti accesso democratizzato alle risorse per raggiungere obiettivi aziendali specifici. In qualità di architetto che progetta applicazioni, è fondamentale comprendere l'ambiente macro e le aspettative in cui il carico di lavoro funzionerà, ad esempio le zone di destinazione dell'applicazione.
La strategia di adozione dell'organizzazione di Azure non deve influire sulla scelta dello stile dell'architettura, ma potrebbe mettere vincoli sulle scelte tecnologiche o sui limiti di sicurezza.
Progettare seguendo Azure Well-Architected Framework
Tutti i carichi di lavoro possono essere valutati nella progettazione e nell'implementazione tramite varie lenti. Azure offre Azure Well-Architected Framework per aiutare un architetto del carico di lavoro a valutare e allineare le proprie decisioni ai principi di progettazione in cinque pilastri principali dell'architettura.
In generale, seguendo questi concetti e valutando i compromessi tra questi pilastri dell'architettura si produce una progettazione che soddisfa i requisiti aziendali ed è sufficientemente durevole, manutenibile, sicura e ottimizzata in termini di costi per l'esecuzione su Azure. Queste decisioni devono influire sulla scelta dello stile dell'architettura e impostare vincoli sulle scelte tecnologiche o sui limiti di sicurezza in relazione alle esigenze specifiche del carico di lavoro.
Il team o l'organizzazione potrebbero avere altri principi di progettazione, nonché valutare il carico di lavoro, ad esempio sostenibilità e l'etica.
Comprendere gli stili di architettura tipici
Dopo aver compreso l'ambiente aziendale in cui la tua applicazione esisterà e hai la base generale di una buona progettazione dell'architettura dall'Azure Well-Architected Framework, in genere il primo punto decisionale è quale tipo di architettura stai costruendo? Potrebbe trattarsi di un'architettura di microservizi, di un'applicazione a più livelli più tradizionale o di una soluzione big data. Si tratta di stili architetturali distinti adatti ai risultati delle differenze. Durante la valutazione degli stili architetturali, si selezionano anche modelli di archivio dati per gestire la gestione dello stato. Ci sono vantaggi e sfide per queste decisioni.
Valutare i vari stili di architettura e i modelli di archivio dati .
Carichi di lavoro in Azure Well-Architected Framework
In Well-Architected Framework è presente una sezione dedicata alle classificazioni o ai tipi distinti di carichi di lavoro, denominati carichi di lavoro Azure Well-Architected Framework. In questa sezione sono disponibili articoli relativi a cruciali, intelligenza artificiale e machine learning, o software as a service (SaaS) workload. Questi articoli specifici per il carico di lavoro adottano i cinque pilastri principali del Well-Architected Framework e li applicano al dominio specifico. Se l'applicazione fa parte di un carico di lavoro allineato a uno di questi modelli documentati, esaminare le rispettive linee guida per affrontare la progettazione seguendo un set di principi di progettazione e consigli specifici del carico di lavoro in aree di progettazione comuni, ad esempio piattaforma applicativa, piattaforma dati, rete e altro ancora. Alcuni tipi di carico di lavoro possono trarre vantaggio dalla selezione di uno stile architetturale specifico o di un modello di archivio dati.
Procedure consigliate
Esaminare gli articoli Procedure consigliate nelle applicazioni cloud per informazioni sulle varie considerazioni di progettazione, tra cui progettazione api, scalabilità automatica, partizionamento dei dati, memorizzazione nella cache e così via. Esamina questi elementi e applica le best practice appropriate per la tua applicazione.
Usare i modelli di progettazione per risolvere i problemi comuni e introdurre compromessi strategici
L'applicazione ha requisiti aziendali, obiettivi e misure di successo univoci. Un architetto scomporrà tali requisiti funzionali e non funzionali in attività discreti che interagiscono per ottenere una soluzione di cui voi e gli utenti sarete soddisfatti. Queste attività sono spesso abbastanza comuni che hanno stabilito modelli usati nel settore software. Questi modelli di progettazione software sono approcci denominati e ripetibili applicati all'elaborazione o all'archiviazione dei dati che hanno dimostrato di risolvere problemi specifici con compromessi noti.
Il catalogo di modelli di progettazione cloud di Azure risolve sfide specifiche nei sistemi distribuiti.
Fare scelte tecnologiche ben informate
Dopo aver determinato il tipo di architettura che si sta creando e i modelli di progettazione che si prevede di usare, è possibile iniziare a scegliere i componenti tecnologici principali per l'architettura. Le seguenti scelte tecnologiche sono fondamentali:
compute fa riferimento al modello di hosting per le risorse di calcolo (piattaforma applicativa) in cui vengono eseguite le applicazioni. Per altre informazioni, vedere Scegliere un servizio di calcolo.
- Azure offre anche indicazioni specializzate per alcune piattaforme applicative specifiche, ad esempio Scegliere un servizio azure container e opzioni ibride di Azure.
Archivi dati includono database, oltre ad archiviazioni per file, cache, log e qualsiasi altro componente che un'applicazione potrebbe memorizzare in modo persistente. Per altre informazioni, vedere Scegliere un archivio dati in Azure e Esaminare le opzioni di archiviazione.
tecnologie di messaggistica consentono messaggi asincroni tra i componenti del sistema. Per altre informazioni, vedere Scegliere un servizio di messaggistica.
Le tecnologie di intelligenza artificiale (AI) risolvono problemi che sarebbero complessi da un punto di vista computazionale da implementare nel codice applicativo tradizionale. Per facilitare queste scelte, vedere Scegliere una tecnologia dei servizi di intelligenza artificiale di Azure.
È probabile che si facciano altre scelte tecnologiche, ma questi quattro elementi (calcolo, dati, messaggistica e intelligenza artificiale) sono fondamentali per la maggior parte delle applicazioni cloud e determinano molti aspetti della progettazione.
Valutare le architetture di riferimento
Il Centro architetture di Azure è sede di idee per soluzioni, carichi di lavoro di esempio e architetture di riferimento. Questi articoli includono in genere l'elenco di componenti comuni e considerazioni allineati a Azure Well-Architected Framework. Alcuni di questi articoli includono una soluzione distribuibile ospitata in GitHub. Anche se è improbabile che uno di questi scenari sia esattamente quello che si sta creando, potrebbe essere un buon punto di partenza per adattare le linee guida alle esigenze specifiche.
Sfoglia il catalogo delle architetture qui nel Centro delle architetture di Azure.
Esaminare le guide specifiche del servizio
Dopo aver selezionato la tecnologia di base e aver consultato le architetture di riferimento, è importante accedere alla documentazione e alle indicazioni specifiche dei servizi nell'architettura. Usare le risorse seguenti per indicazioni specifiche del servizio.
Guide sui servizi del Framework Azure Well-Architected: Il Framework Well-Architected comprende articoli che riguardano molti dei servizi offerti in Azure, in cui i cinque pilastri dell'architettura vengono applicati in modo specifico a tale servizio.
Trova e leggi la guida al servizio per tutte le risorse che vengono considerate come parte della progettazione dell'applicazione.
guide all'affidabilità di Azure: l'hub di affidabilità di Azure include articoli approfonditi che riguardano in modo specifico le caratteristiche di affidabilità di molti servizi di Azure. Questi articoli documentano alcuni degli argomenti di affidabilità più critici, ad esempio il supporto della zona di disponibilità e il comportamento previsto durante diversi tipi di interruzioni.
Trova e leggi la guida all'affidabilità per tutte le risorse considerate nella progettazione dell'applicazione.
Proveniente da un altro cloud?
Se si ha familiarità con la progettazione di applicazioni in un altro provider di servizi cloud, molti degli stessi concetti fondamentali si traducono. Ad esempio, gli stili di architettura e i modelli di progettazione cloud sono concettualmente indipendenti dal cloud. Sfoglia gli articoli pertinenti della guida su mappatura dei servizi e architettura.