Condividi tramite


Principi di progettazione dei carichi di lavoro SaaS in Azure

In qualità di fornitore di software indipendente (ISV) che offre una soluzione SaaS, si è responsabili dell'eccellenza dell'architettura della soluzione e si condivide la responsabilità con il cliente. Si basano sulla soluzione e i problemi possono propagarsi a loro. Se l'organizzazione è matura e ha una base clienti consolidata, l'affidabilità e la sicurezza sono probabilmente le principali preoccupazioni. I tempi di inattività e le violazioni della sicurezza possono avere conseguenze negative per i ricavi e la reputazione dell'azienda.

Ma molti ISV, in particolare gli ISV di avvio, operano con risorse limitate per ridurre al minimo i costi. Se l'organizzazione è nella fase di avvio, potrebbe essere necessario fare compromessi aggressivi per passare alla fase successiva della crescita. È possibile che non si disponga di team dedicati per la governance, la sicurezza o l'automazione della distribuzione, ma ricordarsi di pianificare la crescita futura. Se è necessario prendere rischi, prendere decisioni calcolate.

Il modo in cui si progetta una soluzione che opera a un volume ridotto di scalabilità differisce da una soluzione su larga scala. Per supportare una rapida crescita, è necessario progettare un'architettura del carico di lavoro SaaS con flessibilità e adattabilità. Questo articolo presenta i principi sottostanti tenendo conto di tale evoluzione della crescita. Considerare insieme tutti e cinque i pilastri del framework ben progettato, inclusi i compromessi. Esiste uno standard minimo in tutti i pilastri, quindi considera ognuno di essi. Se non si applicano questi principi, è possibile introdurre perdite finanziarie e ridurre la fiducia dei clienti.

Affidabilità

Principio di progettazione Considerazioni
Classificare in ordine di priorità la disponibilità. La soluzione è la tua azienda. Mantenere la disponibilità elevata quanto più pratica. Se la soluzione subisce un'interruzione, l'impatto può influire non solo sui clienti, ma anche sui clienti.
Essere espliciti sui contratti di servizio (SLA) offerti ai clienti. Quando crei contratti di servizio supportati finanziariamente per i tuoi clienti, assicurati di poterli soddisfare e che i componenti da cui dipende siano compatibili con essi. Esaminare i contratti di servizio compositi per i servizi di Azure sottostanti come parte del processo di progettazione del contratto di servizio. Non fare ipotesi. Riflettere il modello di responsabilità condivisa nei contratti di servizio.

Compromesso: affidabilità e costi. Per ottenere un'affidabilità elevata, spesso è necessario distribuire risorse aggiuntive. Ad esempio, è possibile distribuire le risorse tra più zone o aree di disponibilità. Alcuni servizi di Azure offrono la replica geografica predefinita o la replica tra zone, ma queste funzionalità spesso presentano costi elevati.

Prendere decisioni informate sul livello di resilienza consentito dal budget. Se l'affidabilità di alcuni componenti o flussi nel carico di lavoro non ha implicazioni finanziarie, prendere in considerazione opportunità a basso costo per migliorare la resilienza. Ad esempio, è possibile usare le zone di disponibilità dei servizi della piattaforma, eseguire regolarmente il backup dei dati in un'altra posizione fisica e usare l'infrastruttura come codice (IaC) per ridistribuire rapidamente le risorse durante i processi di ripristino.

Sicurezza

Principio di progettazione Considerazioni
Stabilire la governance come base per la sicurezza. Stabilire procedure di governance consigliate fin dall'inizio anziché risolvere i problemi in un secondo momento. Molti fattori influiscono sulla sicurezza, ad esempio la gestione dei ruoli, l'organizzazione delle risorse e l'implementazione dei criteri. Senza una governance affidabile, i controlli di sicurezza non proteggono il sistema.
Seguire una baseline di sicurezza cloud dal primo giorno. Aspettatevi controlli di sicurezza dai clienti. Incorporare audit trail nelle prime fasi della progettazione.
Isolare i clienti e isolare i segmenti. Usare il modello di tenancy come strategia per l'isolamento dei dati. Segmentare le distribuzioni e gli ambienti.
Iniziare con Zero Trust e fornire il minor accesso possibile. L'impostazione predefinita è una posizione senza accesso. Introdurre l'accesso minimo solo quando necessario. Usare questa strategia per la gestione delle identità e il traffico di rete. Esaminare regolarmente i flussi attraverso il sistema e intervenire sulle anomalie.
Evitare le credenziali laddove possibile. Se è necessario usare le credenziali, proteggerle. Considerare le credenziali come responsabilità. Usare provider di identità e tecniche affidabili che riducono al minimo l'archiviazione delle credenziali. Quando inevitabile, proteggere le credenziali con approcci sicuri nativi del cloud. Gestire le credenziali dei clienti e i segreti con la massima attenzione.
Adottare la sicurezza come processo in corso. Rivalutare continuamente il comportamento di sicurezza. Prendere in considerazione il panorama delle minacce in continua evoluzione, le nuove funzionalità e i protocolli e i requisiti normativi o di conformità aggiornati.

Compromesso: sicurezza e ottimizzazione dei costi. La progettazione e la gestione di soluzioni sicure sono costose. Tuttavia, è possibile eseguire passi significativi verso la sicurezza, ad esempio una buona governance e rispettare una baseline di sicurezza, senza spese minime. Determinare l'equilibrio tra efficienza dei costi e il comportamento di sicurezza ideale.

Ottimizzazione dei costi

Principio di progettazione Considerazioni
Paga solo per quello che ti serve. Sfruttare le funzionalità di Gestione costi Microsoft per comprendere la spesa complessiva. Classificare in ordine di priorità le categorie di risorse più costose per un'ulteriore revisione. Identificare le aree in cui è possibile eseguire un overspend.
Usare ciò che si paga. Ottimizzare il valore delle risorse che si paga, ma che è possibile usare.
Modellare i costi. Tenere traccia del costo delle merci vendute. Comprendere i costi per offrire la soluzione ai clienti. Questo processo è simile alla produzione di un prodotto fisico. Per informare il processo decisionale, monitorare il costo per ogni cliente rispetto ai ricavi generati. Per comprendere e aggregare rapidamente la spesa di Azure, implementare processi di governance, ad esempio un'organizzazione di risorse efficace e l'assegnazione di tag.
Comprendere come sono correlati i costi e i ricavi. Evitare situazioni in cui i costi aumentano senza un aumento corrispondente dei ricavi. Ad esempio, i costi potrebbero aumentare se si aggiunge una nuova funzionalità che offre spazio di archiviazione gratuito illimitato. Analogamente, se si addebita ai clienti in base al numero di utenti, assicurarsi di associare le funzionalità agli utenti.

Compromesso: Ottimizzazione dei costi e affidabilità. Per creare soluzioni affidabili, spesso è necessario distribuire componenti aggiuntivi, trasferire più dati e usare SKU chiave-componente più resilienti, che aumentano tutti i costi. L'affidabilità aggiunta è spesso valsa la spesa, ma è necessario prendere decisioni informate. Per compensare questi aumenti di costo, assicurarsi di usare altri componenti in modo efficace e massimizzare il valore.

Eccellenza operativa

Principio di progettazione Considerazioni
Comprendere il modello di responsabilità condivisa. Definire chiaramente le responsabilità del provider di servizi cloud, dei clienti e dell'organizzazione. Assicurarsi che tutti sappiano chi è responsabile delle attività.
Prepararsi a gestire una soluzione per conto dei clienti. Configurare l'organizzazione, il team, i processi e gli strumenti per supportare il funzionamento di SaaS su larga scala.
Adottare processi coerenti. Usare i francobolli di distribuzione. Guidare la coerenza tra la configurazione e l'architettura del timbro. Automatizzare o standardizzare i processi.
Formalizzare eccezioni o differenze. Definire SKU diversi per soddisfare esigenze diverse. Usare questo metodo per evitare distribuzioni, configurazioni o codice personalizzati per clienti diversi.
Implementare le modifiche in modo sicuro. Implementare un processo di distribuzione sicuro che è possibile usare per l'esposizione progressiva, il monitoraggio costante e il rollback in caso di problemi. Usare un processo coerente per le modifiche di codice, infrastruttura e configurazione. Controllare il numero di versioni della soluzione distribuite in un determinato momento.

Compromesso: eccellenza operativa e costo della complessità. Le operazioni di gestione automatizzate possono aumentare la complessità della soluzione e richiedere tempo per la compilazione. Inizialmente, il costo dell'automazione potrebbe superare i vantaggi, soprattutto con una piccola base clienti. Tuttavia, man mano che il numero di clienti aumenta, il costo dell'automazione si paga e i vantaggi aumentano.

Efficienza prestazionale

Principio di progettazione Considerazioni
Implementare la scalabilità globale per abilitare le prestazioni globali. Offrire un'esperienza ottimale per i clienti globali tramite distribuzioni multiregione o routing del traffico accelerato.
Quantificare la scala prevista. Modellare scenari di crescita ottimale, media e peggiore. Analizzare le tendenze e consultare il team di vendita per proiezioni realistiche. Pianificare strategie di scalabilità flessibili per soddisfare varie possibilità di crescita.
Informazioni sui punti di scala. Identificare la posizione in cui è probabile che sia necessaria flessibilità. I trigger comuni includono il numero di clienti o tenant, utenti e transazioni per utente. Comprendere come questi fattori cambiano man mano che l'azienda cresce e come influiscono sull'architettura.
Progettare per aumentare il numero di istanze. La scalabilità verticale presenta limiti, ma la scalabilità orizzontale consente una maggiore espansione. Non tutto aumenta il numero di istanze, quindi è consigliabile usare indicatori di distribuzione per ridimensionare la soluzione come unità per evitare le limitazioni del ridimensionamento delle risorse.

Compromesso: efficienza e affidabilità delle prestazioni. I sistemi affidabili richiedono spesso la replica dei dati in aree geografiche ampie. A seconda della progettazione della replica, questa configurazione può causare una latenza più elevata e una velocità effettiva inferiore. Ad esempio, se si replicano in modo sincrono dati importanti tra due aree di Azure diverse centinaia di chilometri di distanza, è possibile aggiungere centinaia di millisecondi ai tempi di risposta a causa della replica in tempo reale.

Passaggio successivo

Iniziare il percorso di apprendimento ottimizzando la fatturazione del cliente e la strategia di gestione dei costi.