Mantenerla semplice

Completato
Evitare di sovraccaricare la progettazione dell'architettura, il codice dell'applicazione e le operazioni.

Spesso è ciò che si rimuove, e non ciò che si aggiunge, a portare alle soluzioni più affidabili. La semplicità riduce la superficie di attacco da controllare, riducendo al minimo le inefficienze e potenziali configurazioni o interazioni impreviste. D'altra parte, la sovrasemplificazione può introdurre singoli punti di errore. Mantenere un approccio bilanciato.

Scenario di esempio

Contoso Travel sta acquistando e integrando una piccola azienda startup con una nota app di viaggi basata sul Web. La popolarità dell'app è dovuta al suo modello di business che prevede la negoziazione di ingenti sconti con catene di hotel e compagnie aeree, nonché l'uso dei social media per eseguire campagne di marketing intense e altamente mirate.

La versione esistente del prodotto della startup è stata sviluppata in nodejs ed è in esecuzione in macchine virtuali ospitate tra il data center locale e AWS.

Ridurre al minimo i componenti del carico di lavoro

Aggiungere componenti all'architettura solo se consentono di raggiungere i valori target per l'azienda. Mantenere agile il percorso critico.

La progettazione per i requisiti aziendali può portare a una soluzione semplice da implementare e da gestire. Evitare di dover avere troppi componenti critici, perché ognuno di essi è un punto di errore significativo.

Sfida di Contoso

  • Uno dei componenti dell'applicazione appena acquisita facilita la raccolta di feedback dagli utenti direttamente sul sito Web dopo aver effettuato una prenotazione. La funzionalità viene usata raramente perché la maggior parte degli utenti la ignora. Esiste un forte meccanismo di ciclo di feedback degli utenti che funziona attraverso gli account di social media aziendali, che viene ampiamente usato per l'interazione con gli utenti a livello di marketing. Questo meccanismo viene usato molto più frequentemente rispetto alla funzione di feedback del sito Web.

Applicazione dell'approccio e risultati

  • Nell'ambito del rilascio iniziale della versione dell'app del brand Contoso Travel, il team decide di rimuovere il componente di feedback dal sito Web nel carico di lavoro.
  • Una codebase più piccola riduce i costi della manutenzione e delle operazioni. In questo caso, non c'è alcun impatto sui requisiti aziendali.

Standardizzare il ciclo di vita di sviluppo del software

Stabilire standard nell'implementazione del codice, nella distribuzione e nei processi, quindi documentarli. Identificare le opportunità per applicare tali standard usando le convalide automatizzate.

Gli standard forniscono coerenza e riducono al minimo gli errori umani. Gli approcci come le convenzioni di denominazione standard e le guide di stile del codice consentono di mantenere la qualità e semplificare l'identificazione degli asset durante la risoluzione dei problemi.

Sfida di Contoso

  • Il team di sviluppo della startup non ha molti standard di sviluppo e processi definiti. Vengono usate numerose librerie che si sovrappongono alle funzionalità, gli stili di codifica non vengono applicati e le pipeline di versione non dispongono di formali attività di controllo per la versione che usano test automatizzati.
  • Il team del carico di lavoro Contoso si rende conto che il costo della manutenzione della nuova codebase è troppo elevato a causa della mancanza di coerenza negli stili e dell'uso incoerente di librerie e modelli di progettazione.
  • Si verificano frequentemente eventi imprevisti dopo gli aggiornamenti principali nell'ambiente di produzione, che a volte richiedono il ripristino dello stato precedente degli aggiornamenti o correzioni rapide durante la distribuzione. La frequenza di questi tipi di problemi di distribuzione costringe il team a usare un modello di supporto che coinvolge tutti durante il rilascio degli aggiornamenti nell'ambiente di produzione. Per peggiorare le cose, i problemi frequenti incidono in maniera negativa sulla reputazione di Contoso a causa dell'esperienza utente di scarsa qualità.

Applicazione dell'approccio e risultati

  • Il team incaricato del supporto della nuova app si impegna per ottenere maggiore coerenza applicando stili di codifica, introducendo standard su un set comune di librerie e modelli di progettazione e formalizzando l'uso di attività di controllo per la versione basate su test automatizzati.
  • Durante l'implementazione di queste modifiche, il team del carico di lavoro rispetta i requisiti della documentazione standard. Tutti i nuovi strumenti, i modelli di progettazione e gli stili adottati sono documentati accuratamente, consentendo al team di comprendere e gestire il carico di lavoro in modo più efficiente. Il team può ora identificare più facilmente le deviazioni negli standard durante l'esecuzione di revisioni del codice.

Ridurre al minimo le operazioni e il carico di sviluppo

Sfruttare le funzionalità fornite dalla piattaforma e gli asset predefiniti che consentono di soddisfare in modo efficace gli obiettivi aziendali.

Questo approccio riduce al minimo i tempi di sviluppo. Consente inoltre di basarsi su procedure collaudate e testate che sono state usate con carichi di lavoro simili.

Sfida di Contoso

  • Per la versione iniziale con la personalizzazione di Contoso Travel, la soluzione nodejs verrà migrata dalle macchine virtuali ai Servizi app per sfruttare le numerose funzionalità di affidabilità native offerte dal servizio.
  • La versione distribuita nelle macchine virtuali contiene una quantità significativa di codice personalizzato necessario per la strumentazione.

Applicazione dell'approccio e risultati

  • Durante la migrazione iniziale a Servizi app, il team è riuscito a rimuovere tutto il codice di strumentazione personalizzato implementando l'installazione automatica di App Insights in Servizi app.
  • Il team è anche in grado di sfruttare diverse altre funzioni native del Servizio app, ad esempio la scalabilità automatica, l'integrazione di Key Vault e la ridondanza della zona.

Verificare le conoscenze

1.

Perché provare a ridurre al minimo il numero di componenti nel carico di lavoro?

2.

Quali elementi del ciclo di vita dello sviluppo di software devono essere standardizzati?

3.

In che modo il passaggio a Servizi app di Azure ha aiutato il team Contoso a semplificare il carico di lavoro?