Progettazione per i requisiti aziendali
Raccogliere i requisiti aziendali con un focus sull'utilità prevista del carico di lavoro. |
---|
I requisiti aziendali vengono definiti tramite un lavoro di collaborazione tra stakeholder aziendali e architetti del carico di lavoro. Si devono raggiungere compromessi per ciascuna delle parti per garantire che i requisiti concordati siano realistici e realizzabili, rispettando al contempo gli obiettivi di affidabilità che il carico di lavoro deve soddisfare. I requisiti devono coprire l'esperienza dell’utente, i dati, i flussi di lavoro e le caratteristiche univoche per il carico di lavoro. Il risultato del processo di requisiti deve indicare chiaramente le aspettative. Gli obiettivi devono essere raggiungibili e negoziati con il team, dato un investimento specificato. Devono essere documentati per guidare scelte tecnologiche, implementazioni e operazioni.
Scenario di esempio
Contoso Insurance è nella fase iniziale di progettazione dello sviluppo di un'applicazione Web per elaborare le richieste per i titolari di criteri. La maggior parte dei flussi principali di utenti e sistemi sono stati stabiliti e il team del carico di lavoro ha identificato diversi servizi di Azure che comporranno l'app: Servizio app di Azure, database SQL di Azure, Servizi di Azure AI, Griglia di eventi di Azure e App per la logica di Azure.
Identificare le destinazioni di affidabilità
Quantificare il successo impostando obiettivi sugli indicatori per singoli componenti, flussi di sistema e utente e il sistema per intero.
Le metriche quantificano le aspettative. Consentono di comprendere le complessità e di stabilire se i costi downstream di tali complessità sono entro il limite di investimento.
I valori di destinazione indicano uno stato ideale. È possibile usare i valori come soglie di test che consentono di rilevare le deviazioni da tale stato e il tempo necessario per tornare allo stato di destinazione.
I requisiti di conformità devono avere anche risultati prevedibili per i flussi nell'ambito. La definizione delle priorità di questi flussi consente di prestare attenzione alle aree più sensibili.
Sfida di Contoso
- Il team del carico di lavoro vuole assicurarsi di ottimizzare il modo in cui vengono spese le risorse per rendere affidabile il carico di lavoro.
- Hanno scomposto il carico di lavoro nei flussi e hanno valutato i flussi in base alla loro criticità.
Applicazione dell'approccio e risultati
- Il team stabilisce che il flusso di invio di attestazioni e approvazione avrà i requisiti di affidabilità più elevati per il carico di lavoro a causa della dipendenza dei medici e dei pazienti dalla disponibilità di tale flusso.
- Il team del carico di lavoro stabilisce i componenti che supportano questo flusso e determina le misure di affidabilità necessarie per raggiungere gli obiettivi.
Comprendere gli impegni della piattaforma
Comprendere le metriche di affidabilità garantite fornite dalla piattaforma cloud e prendere in considerazione i limiti, le quote e i vincoli di capacità per i servizi.
I contratti di servizio variano in base al servizio. Non tutti i servizi e le funzionalità sono trattati equamente. Avere una buona conoscenza della copertura e dei limiti consente di rilevare la deriva e creare meccanismi di resilienza e ripristino.
Sfida di Contoso
- Il team del carico di lavoro e gli stakeholder hanno stabilito che i dati per l'app devono avere un obiettivo di tempo di ripristino garantito (RTO) che non può superare i 30 secondi per supportare la criticità del flusso di invio e approvazione delle attestazioni.
Applicazione dell'approccio e risultati
- Dopo aver esaminato i contratti di servizio pubblicati da Microsoft, il team rileva che dovrà distribuire il livello business critical con la replica geografica attiva per raggiungere questa destinazione RTO.
Stabilire le dipendenze e il relativo effetto sulla resilienza
Quando si scompone il carico di lavoro nei componenti, è necessario assicurarsi di aver documentato tutte le dipendenze, sia interne che esterne all'azienda, e di identificare i malfunzionamenti con le dipendenze possono influire sui flussi
Tenere traccia dell'infrastruttura dipendente, dei servizi, delle API e delle funzioni sviluppate da altri team o terze parti consente di stabilire se il carico di lavoro può operare in assenza di tali dipendenze. Consente inoltre di comprendere gli errori a catena e di migliorare le operazioni downstream. Gli sviluppatori possono implementare schemi progettuali resilienti per gestire potenziali errori quando si usano servizi esterni che potrebbero essere soggetti a errori.
Sfida di Contoso
- Il flusso di invio e approvazione dell'attestazione ha una dipendenza da un piccolo set di dati di riferimento ospitato e gestito da un reparto diverso all'interno di Contoso Insurance.
- Il set di dati viene aggiornato più volte al giorno, durante le normali ore lavorative.
- L'app è progettata per tollerare un certo decadimento nei dati di riferimento, ma i dati devono essere sempre disponibili per l'app.
Applicazione dell'approccio e risultati
- Il team del carico di lavoro interagisce con il team che supporta il set di dati di riferimento e informa che la destinazione di affidabilità per il set di dati è inferiore a quella del flusso che lo userà.
- Il team aggiunge attività di progettazione al backlog per aggiungere una cache locale del set di dati e un processo in background per aggiornare la cache durante la notte. La tolleranza di decadimento consentita dalla progettazione non verrà violata da questa soluzione.