Bilanciamento dell'autonomia con l'allineamento - AWS Guida prescrittiva

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Bilanciamento dell'autonomia con l'allineamento

Le architetture micro-frontend sono fortemente orientate all'autonomia del team. Tuttavia, è importante distinguere tra aree che possono supportare flessibilità e approcci diversi per risolvere i problemi e aree in cui la standardizzazione è necessaria per raggiungere l'allineamento. I dirigenti e gli architetti senior devono identificare tempestivamente queste aree e dare priorità agli investimenti per bilanciare sicurezza, prestazioni, eccellenza operativa e affidabilità dei microfrontend. Il raggiungimento di questo equilibrio implica quanto segue: creazione, test, rilascio e registrazione di microfrontend, monitoraggio e invio di avvisi.

Creazione di micro-frontend

Idealmente, tutti i team sono fortemente allineati per massimizzare i vantaggi in termini di prestazioni per l'utente finale. In pratica, questo può essere difficile e potrebbe richiedere uno sforzo maggiore. Ti consigliamo di iniziare con alcune linee guida scritte a cui più team possono contribuire attraverso un dibattito aperto e trasparente. I team possono quindi adottare gradualmente il modello software Cookiecutter, che supporta la creazione di strumenti che forniscono un modo unificato per strutturare un progetto.

Utilizzando questo approccio, è possibile incorporare opinioni e vincoli. Il rovescio della medaglia è che questi strumenti richiedono investimenti significativi per la creazione e la manutenzione e per garantire che i blocchi vengano risolti rapidamente senza influire sulla produttività degli sviluppatori.

End-to-end test per micro-frontend

I test unitari possono essere lasciati ai proprietari. Consigliamo di implementare fin dall'inizio una strategia per testare in modo incrociato i microfrontend eseguiti su una shell unica. La strategia include la capacità di testare le applicazioni prima e dopo un rilascio di produzione. Consigliamo di sviluppare processi e documentazione per personale tecnico e non tecnico per testare manualmente le funzionalità critiche.

È importante assicurarsi che le modifiche non compromettano l'esperienza del cliente funzionale o non funzionale. Una strategia ideale consiste nell'investire gradualmente in test automatizzati, sia per le funzionalità chiave che per le caratteristiche dell'architettura come sicurezza e prestazioni.

Rilascio di micro-frontend

Ogni team potrebbe avere il proprio modo di distribuire il proprio codice, elaborare opinioni e la propria infrastruttura. Il costo della complessità legato alla manutenzione di tali sistemi è in genere un deterrente. Consigliamo invece di investire tempestivamente per implementare una strategia condivisa che possa essere applicata mediante strumenti condivisi.

Sviluppa modelli con la piattaforma CI/CD preferita. I team possono quindi utilizzare i modelli preapprovati e l'infrastruttura condivisa per apportare modifiche alla produzione. È possibile iniziare a investire in questo lavoro di sviluppo sin dall'inizio, perché questi sistemi raramente necessitano di aggiornamenti significativi dopo un periodo iniziale di test e consolidamento.

Registrazione di log e monitoraggio

Ogni team può avere metriche aziendali e di sistema diverse che desidera monitorare per scopi operativi o di analisi. Il modello software Cookiecutter può essere applicato anche qui. L'erogazione degli eventi può essere riassunta e resa disponibile come libreria utilizzabile da più micro-frontend. Per bilanciare la flessibilità e garantire l'autonomia, sviluppate strumenti per la registrazione di metriche personalizzate e la creazione di dashboard o report personalizzati. Il reporting promuove una stretta collaborazione con i proprietari dei prodotti e riduce il ciclo di feedback dei clienti finali.

Standardizzando la distribuzione, più team possono collaborare per tenere traccia delle metriche. Ad esempio, un sito di e-commerce può tracciare il percorso dell'utente dal microfrontend «Dettagli del prodotto» al microfrontend «Cart», al microfrontend «Purchase» per misurare il coinvolgimento, il tasso di abbandono e i problemi. Se ogni microfrontend registra gli eventi utilizzando un'unica libreria, puoi utilizzare questi dati nel loro insieme, esplorarli in modo olistico e identificare tendenze approfondite.

Avviso

Analogamente alla registrazione e al monitoraggio, gli avvisi traggono vantaggio dalla standardizzazione con spazio per un certo grado di flessibilità. Team diversi potrebbero reagire in modo diverso agli avvisi funzionali e non funzionali. Tuttavia, se tutti i team dispongono di un metodo consolidato per avviare avvisi basato su metriche raccolte e analizzate su una piattaforma condivisa, l'azienda può identificare i problemi tra i team. Questa funzionalità è utile durante gli eventi di gestione degli incidenti. Ad esempio, gli avvisi possono essere avviati nel modo seguente:

  • Numero elevato di eccezioni JavaScript lato client in una particolare versione del browser

  • Tempo di rendering notevolmente ridotto oltre una determinata soglia

  • Numero elevato di codici di stato 5xx quando si utilizza una particolare API

A seconda della maturità del sistema, è possibile bilanciare gli sforzi su diverse parti dell'infrastruttura, come illustrato nella tabella seguente.

Adozione

Ricerca e sviluppo

Salita

Maturità

Crea micro-frontend.

Sperimenta, documenta e condividi quanto appreso.

Investi in strumenti per costruire nuovi micro-frontend. Evangelizza l'adozione.

Consolida gli utensili per ponteggi. Spingi per l'adozione.

Prova i micro-frontend dall'inizio alla fine.

Implementa meccanismi per testare manualmente tutti i micro-frontend correlati.

Investi in strumenti per test automatizzati di sicurezza e prestazioni. Esamina i segnali di funzionalità e l'individuazione dei servizi.

Consolida gli strumenti per l'individuazione dei servizi, i test in produzione e i test automatizzati. end-to-end

Rilascia i micro-frontend.

Investite in un'infrastruttura CI/CD condivisa e in versioni automatizzate in più ambienti. Evangelizza l'adozione.

Consolida gli strumenti per l'infrastruttura CI/CD Implementa meccanismi di rollback manuali. Spingi per l'adozione.

Crea meccanismi per avviare rollback automatici in aggiunta alle metriche e agli avvisi di sistema e aziendali.

Osserva le prestazioni dei microfrontend.

Investite in un'infrastruttura e una libreria di monitoraggio condivise per la registrazione coerente degli eventi di sistema e aziendali.

Consolida gli strumenti per il monitoraggio e gli avvisi. Implementa dashboard interteam per monitorare lo stato generale e migliorare la gestione degli incidenti.

Standardizza gli schemi di registrazione. Ottimizza i costi. Implementa gli avvisi basati su metriche aziendali complesse.