Tech Stack Nuxt, C# e MSSQL
Gestione delle identità e degli accessi
Invece di mantenere una propria gestione delle identità, per motivi di sicurezza (con Key Vault e Identità gestite), motivi funzionali (gestione di gruppi, ruoli, sincronizzazione, privilegi e ambito) e connettività, deve essere delegato ad Azure AD (Active Directory). La maggior parte delle aziende usa già Azure AD (Skype, Office365 e così via), il che semplifica l'integrazione di servizi esterni.
Azure AD offre anche Multi Factor, Password Less Authentication e Single Sign On. Con Azure AD Connect on-premise è possibile sincronizzare Servizi di dominio Active Directory.
L'integrazione del provider di identità esterno (Facebook, Google, Direct Federation ecc.) non è un requisito per ora, ma è possibile.
Azure Active Directory B2C deve essere usato per l'integrazione dell'identità del cliente consentendo un'interfaccia utente personalizzata.
Managed Identity è una forte raccomandazione per i microservizi containerizzati.
Microservizi con Docker Container
L'architettura di microservizi containerizzata presenta vantaggi in termini di scalabilità, portabilità e integrazione di più applicazioni in linguaggi diversi. Per la gestione dei costi e le prestazioni, l'infrastruttura scalabile automatica è una buona opzione.
Orchestrato con gateway (WebSocket/HTTPS, Web Application Firewall, SSL Offloading, smart routing), Load Balancing (distribuzione del carico di lavoro) e set di scalabilità VM con scalabilità automatica, offre anche ottime prestazioni.
Alta disponibilità
Implementare il data center di backup in diverse geolocalizzazioni. Usa le zone di disponibilità di Azure con il tempo di attività promesso del 99,99%. Imposta La porta principale di Azure o Gestione traffico di Azure e mantieni sincronizzato il livello dati.
Backup/conservazione
I backup per i database possono essere pianificati regolarmente.
- Backup completi ogni settimana.
- Backup differenziali ogni 12 o 24 ore. Backup
- del log delle transazioni circa ogni 10 minuti.
(i valori standard possono essere personalizzati)
Per Archiviazione BLOB di Azure è possibile anche il backup continuo o l'eliminazione soft.
Inoltre, l'infrastruttura come codice è una raccomandazione per la portabilità e il ripristino.
In questo caso di studio nessun data center di backup ridondante per un'elevata disponibilità come nel settore finanziario sembra essere un requisito ragionevole.
Requisiti funzionali
Con Servizi cognitivi di Azure le traduzioni possono essere automatizzate.
Chat, videochiamate possono essere implementate tramite Servizi di comunicazione di Azure (non ancora necessario).
I requisiti di elaborazione di immagini e video devono essere analizzati (implementare servizi esterni o usare Azure Batch insieme a FFMPEG per i video). Attualmente un caricamento su BLOB va bene.
I servizi di posta o SMS non sono integrati in Azure ma possono essere implementati tramite MailJet, Gmail o SendGrid. In Azure AD B2C è possibile il self-service con mailing.
Con l'Utilità di pianificazione di Azure è possibile attivare attività regolari (invio di report, dati puliti, promemoria di impostazione e così via), altrimenti i propri microservizi come quartz built in C# o altri possono essere un'opzione.
DevOps / Staging / Testing
Staging deve comprendere almeno un ambiente di produzione, preproduzione e test.
DevOps richiede un'attenta progettazione quando si tratta di integrazione continua, distribuzione continua (CI/CD) e test. L'integrazione dei piani di test di Azure in Azure DevOps deve essere analizzata in modo approfondito per motivi di costi e risorse. I test stanno diventando molto complessi nel tempo, quindi devono essere automatizzati il più possibile fin dall'inizio.
L'integrazione dei test automatizzati deve essere un principio fondamentale in DevOps.
Oltre al test di sviluppo integrato, devono essere impostati i seguenti test programmati da eseguire almeno una volta all'anno:
- test di penetrazione
- dei test di carico
- (incluso monitoraggio e analisi)
- test di ripristino dei dati
- test di ripristino del sistema (con infrastruttura come codice)
- gestione dei disastri (con scenari definiti)
IoT (Internet of Things)
Non è ancora un requisito. Ma l'uso di sensori che creano biglietti per distributori vuoti, porte aperte, variazioni di temperatura o altri rilevatori può essere una buona aggiunta. Nell'hub IOT di Azure questi requisiti sono facili da integrare. Ad esempio, nel riempimento bancario gli sportelli automatici o la stampante vengono attivati da sensori per evitare visite non necessarie.
Gestione dei costi
Qualsiasi infrastruttura richiede un monitoraggio continuo dei costi, compresa la ricerca di alternative e l'analisi dei costi totali. Azure offre funzionalità e proiezioni di analisi dei costi molto dettagliate con avvisi.
Monitoraggio e integrità
UX / Front End
Per l'esperienza utente dovrebbe essere implementato il monitoraggio di librerie esterne o microservizi propri. Ma questi dovrebbero essere implementati insieme a analisi realmente eseguite. È molto importante sapere dove gli utenti si perdono o se diventano inattivi. Integrare inoltre i trigger di feedback direttamente nell'applicazione front-end e raccogliere i log degli errori.
Health
Azure ha incorporato l'integrità (sonde di integrità nel contenitore) e i monitor delle prestazioni (informazioni dettagliate sui contenitori) con sofisticati servizi di notifica e cura automatica.
Monitoraggio degli SLA
Nel caso in cui gli SLA vengano fornite promesse di disponibilità e qualità, esistono molti modi per implementarlo. Una possibile soluzione avanzata è Monitoraggio di Azure.