Principi fondamentali di Azure Well-Architected Framework
Il cloud ha rivoluzionato il modo in cui le organizzazioni risolvono le problematiche e ha cambiato la modalità di progettazione di applicazioni e sistemi. Il ruolo di un progettista di soluzioni non si limita allo sviluppo dei requisiti funzionali dell'applicazione per offrire valore di business. È anche necessario assicurare che la soluzione sia progettata in modo scalabile, resiliente, efficiente e sicuro.
L'architettura della soluzione si occupa della pianificazione, della progettazione, dell'implementazione e del miglioramento continuo di un sistema IT. L'architettura di un sistema deve bilanciare e allineare i requisiti aziendali con le funzionalità tecniche necessarie per soddisfare tali requisiti. L'architettura finale è un compromesso tra costi, rischi e funzionalità nell'intero sistema e nei rispettivi componenti.
Azure Well-Architected Framework
Azure Well-Architected Framework è un set di linee guida per la creazione di soluzioni di alta qualità in Azure. Benché non sia disponibile un approccio unico per la progettazione di un'architettura, esistono alcuni concetti universali applicabili indipendentemente dall’architettura, dalla tecnologia o dal provider di servizi cloud.
Benché non siano esaustivi, concentrandosi su questi concetti sarà possibile creare una base affidabile, sicura e flessibile per l'applicazione.
Azure Well-Architected Framework comprende cinque principi fondamentali:
- Ottimizzazione dei costi
- Eccellenza operativa
- Efficienza prestazionale
- Affidabilità
- Sicurezza
Ottimizzazione dei costi
È consigliabile progettare l'ambiente cloud in modo da ottimizzare i costi di gestione e sviluppo. Identificare gli aspetti poco efficienti e gli sprechi nella spesa per il cloud, in modo da assicurare che gli investimenti vengano sfruttati al meglio.
Eccellenza operativa
Usando le moderne procedure di sviluppo come DevOps, è possibile eseguire cicli di sviluppo e distribuzione più veloci. È importante avere a disposizione un'architettura di monitoraggio valida, che consenta di rilevare errori e problemi prima che si verifichino o almeno prima che vengano rilevati dai clienti. L'aspetto principale di questo fondamento è l'automazione, che consente di rimuovere la varianza e gli errori, aumentando la flessibilità operativa.
Efficienza prestazionale
Per assicurare prestazioni eccellenti e scalabilità per un'architettura, è necessaria una corrispondenza corretta tra le capacità delle risorse e la domanda. Le architetture cloud ottengono in genere questo equilibrio ridimensionando le applicazioni in modo dinamico in base alle attività nell'applicazione. La domanda per i servizi è variabile, quindi è importante che l'architettura sia in grado di adattarsi. Una progettazione dell'architettura incentrata su prestazioni e scalabilità consentirà di offrire un'esperienza ottimale ai clienti, risultando al tempo stesso economicamente conveniente.
Affidabilità
La paura maggiore di ogni progettista sono i problemi irreversibili dell'architettura. Un ambiente cloud ottimale è progettato in modo da anticipare gli errori a qualunque livello. A tale scopo, è necessario progettare un sistema che possa essere ripristinato in caso di errore entro i tempi richiesti da stakeholder e clienti.
Sicurezza
I dati costituiscono l'aspetto più prezioso del footprint tecnico di un'organizzazione. Per garantire questo principio fondamentale, è necessario proteggere l'accesso all'architettura tramite l'autenticazione, nonché proteggere l'applicazione e i dati dalle vulnerabilità di rete. È necessario proteggere anche l'integrità dei dati, usando strumenti come la crittografia.
La sicurezza deve essere tenuta in considerazione durante l'intero ciclo di vita di un'applicazione, dalla progettazione e implementazione alla distribuzione e alle operazioni. Il cloud fornisce protezione da una varietà di minacce, come le intrusioni nella rete e gli attacchi DDoS. La sicurezza deve comunque essere integrata nell'applicazione, nei processi e nella cultura dell'organizzazione.
Principi di progettazione generali
Oltre a questi elementi fondamentali, nell'architettura è necessario tenere conto anche di altri principi di coerenza della progettazione.
Abilitare l'evoluzione dell'architettura: nessuna architettura è statica. È importante consentire l'evoluzione dell'architettura sfruttando i servizi, gli strumenti e le tecnologie non appena vengono resi disponibili.
Usare i dati per prendere decisioni: raccogliere dati, analizzarli e usarli per prendere decisioni relative all'architettura. Dai dati sui costi alle prestazioni, fino ai carichi utente, questi dati consentono di effettuare scelte appropriate per il proprio ambiente.
Educare e abilitare: la tecnologia cloud si evolve rapidamente. Formando adeguatamente i team responsabili dello sviluppo, delle operazioni e delle procedure aziendali, sarà possibile assicurarsi che prendano le decisioni appropriate e creino soluzioni in grado di risolvere i problemi aziendali. Documentare e condividere le configurazioni, le decisioni e le procedure consigliate all'interno dell'organizzazione.
Automatizzare: l'automazione delle attività manuali riduce i costi operativi, riduce al minimo gli errori introdotti dai passaggi manuali e garantisce coerenza tra gli ambienti.
Responsabilità condivisa
Il passaggio al cloud introduce un modello di responsabilità condivisa. In questo modello il provider di servizi cloud gestisce determinati aspetti dell'applicazione, lasciando all'organizzazione le responsabilità rimanenti.
In un ambiente locale la responsabilità è totalmente dell'organizzazione. Man mano che si passa all'infrastruttura distribuita come servizio (IaaS), poi alla piattaforma distribuita come servizio (PaaS) e infine al software come un servizio (SaaS), il provider di servizi cloud si assume una responsabilità sempre maggiore.
Questa responsabilità condivisa rivestirà un ruolo nelle decisioni relative all'architettura, che hanno implicazioni su costi, sicurezza e funzionalità tecniche e operative dell'applicazione. Passando queste responsabilità al provider, si possono abbandonare le attività non fondamentali per l'organizzazione e ci si potrà concentrare su come creare valore aggiunto per l'azienda.
Scelte di progettazione
In un'architettura ideale si crea l'ambiente più sicuro, con le prestazioni e la disponibilità più elevate e la maggiore efficienza possibile. Come in qualsiasi altra situazione, è tuttavia necessario scendere a compromessi.
La creazione di un ambiente con i livelli più elevati per tutti questi principi fondamentali comporta determinati costi. Tali costi sono da sostenere in denaro, tempo di distribuzione o flessibilità operativa. Ogni organizzazione ha priorità diverse che influiscono sulle scelte di progettazione relative a ogni principio fondamentale. In fase di progettazione dell'architettura è importante determinare quali compromessi sono accettabili e quali non lo sono.
Quando si crea un'architettura di Azure, è necessario tenere in considerazione diversi aspetti. Si vuole ottenere un'architettura sicura, scalabile, disponibile e ripristinabile. Per ottenere questo risultato, sarà necessario prendere decisioni basate sui costi, sulle priorità dell'organizzazione e sui rischi.