Canary Testing: che cos'è e come puoi trarne vantaggio?
Pubblicato: 2022-08-20È probabile che, se non sei un programmatore, non hai mai sentito parlare di test delle Canarie. Va bene, tuttavia probabilmente ti starai chiedendo di cosa si tratta e perché si chiama test delle Canarie?
Il termine deriva dalla frase “canarino nella miniera di carbone”. Vedete, i minatori di carbone portavano con sé un canarino in gabbia nella miniera di carbone, poiché i canarini hanno una tolleranza inferiore ai gas tossici.
Pertanto, i lavoratori sapevano che se il canarino fosse morto, sarebbero dovuti uscire dalla miniera. In termini di sviluppo software, quando si crea un nuovo software, l'obiettivo è rilevare e risolvere i problemi il più rapidamente possibile, prima che diventino un problema per gli utenti.
Che cos'è il test delle Canarie?
Il test Canary è il metodo per provare nuove funzionalità e caratteristiche con un impatto negativo, si spera, minimo sull'utente finale. Questo tipo di test viene normalmente utilizzato con un piccolo gruppo di utenti, per i quali l'applicazione viene presentata con piccole modifiche. In questo modo, la maggior parte degli utenti utilizzerà ancora la versione corrente del software, mentre il gruppo di utenti selezionato e più piccolo utilizzerà una versione leggermente aggiornata.
Lo scopo di questo esercizio è consentire alla maggior parte delle persone che utilizzano il software di continuare a lavorarci senza problemi, spingendo le modifiche solo per una piccola percentuale di utenti.
Tutto questo viene eseguito mantenendo contemporaneamente sia la versione esistente che quella nuova dell'applicazione. Quindi, se il test di Canary non restituisce alcun errore, puoi continuare ad espanderlo a percentuali di utenti maggiori.
Anche i lettori apprezzano : che cos'è lo sviluppo rapido di applicazioni? 4 fasi della metodologia RAD – DevriX
Come eseguire un test delle Canarie?
Il primo passaggio in un test canary consiste nell'avviare un set di server o contenitori back-end per eseguire il nuovo codice. Una volta che ci sono nuovi utenti, il tuo sistema di bilanciamento del carico invierà una percentuale di loro al "cluster canary".
Gli specialisti DevOps quindi monitorano i server per identificare potenziali problemi, come il carico di calcolo o tassi di I/O più elevati. E tieni presente che, anche se si verificano problemi seri, è facile ripristinare le cose come prima, poiché il processo non riguarda tutti coloro che utilizzano il software.
In caso contrario, puoi facilmente implementare e automatizzare i test delle Canarie utilizzando strumenti come Spinnaker per designare la quantità di utenti che utilizzano il nuovo codice.
Tale percentuale è in genere intorno al 5% e, una volta che il team DevOps assegnato ha stabilito che non ci sono problemi, può aumentare costantemente tale percentuale, finché tutti non utilizzano la nuova versione del codice dell'applicazione.
Inoltre, il test di Canary è vantaggioso in situazioni in cui gli ambienti di sviluppo o di staging non corrispondono completamente all'ambiente di produzione. L'utilizzo di un piccolo gruppo di test di utenti può rivelare eventuali problemi che non sono stati rilevati durante lo staging o gli ambienti di sviluppo.
I lettori apprezzano anche : test A/B con WordPress: la guida definitiva – DevriX
Vantaggi e svantaggi dei test delle Canarie
Definiamo il buono e il cattivo quando si tratta di testare, usando il metodo canary.
Vantaggi del test delle Canarie
- Test nel mondo reale . Testare in ambienti chiusi e interni è fantastico, tuttavia, essere in grado di testare il software su utenti reali è ciò che ti porta un passo avanti. Con le implementazioni Canary, puoi fare esattamente questo: testare la tua applicazione su un pubblico su piccola scala, senza il rischio di rilasciare un'applicazione completamente nuova.
- Migliore gestione del rischio . Il rilascio graduale di nuove funzionalità e la verifica del loro corretto funzionamento riduce notevolmente gli errori significativi e il costo totale di eventuali guasti.
Utilizzando il metodo di test di Canary, in pratica elimini la necessità di eseguire il rollback degli aggiornamenti principali o di riscrivere grandi quantità di codice. - Più orientato al business . Hai bisogno di presentare i dati aziendali a manager e addetti al marketing/vendite? Con Canary, puoi visualizzare i risultati molto rapidamente. Ad esempio, se desideri testare una nuova funzionalità software, puoi distribuire una nuova funzionalità per un piccolo gruppo di utenti e quindi attendere per vedere se la funzionalità funziona correttamente o meno. Puoi quindi utilizzare questi dati per aumentare il coinvolgimento per il tuo prodotto.
Svantaggi dei test delle Canarie
- Problemi di software . C'è ancora codice non testato, quindi, naturalmente, ci sono dei rischi. Nel caso in cui anche pochi utenti riscontrino problemi significativi con una funzionalità specifica, è meglio saltare i test Canary a favore di test interni più severi.
- Spese maggiori . Se intendi utilizzare un servizio di bilanciamento del carico per partizionare gli utenti, avrai bisogno di un'infrastruttura aggiuntiva e di una maggiore amministrazione. Ciò significa che dovrai creare due ambienti di produzione e backend separati per eseguire il test. Quindi, due server app, due righe di codice, due server Web e un'infrastruttura di rete da mantenere.
- Esperienza utente negativa . Alcuni utenti potrebbero non essere troppo entusiasti dell'idea di essere utilizzati come soggetti di prova. Se vuoi essere aperto su quello che sta succedendo, puoi far sapere agli utenti che vengono usati come "canarini", attraverso un programma di "adozione anticipata" o qualcosa di simile.
Quando non utilizzare Canary Testing?
Il test Canary è vantaggioso in molti casi, tuttavia, non è una risposta infallibile a tutto (sono 42).
Ecco quando non dovresti assolutamente usare l'approccio canarino:
- In ambienti che non sono adatti per la distribuzione continua.
- Quando si ha a che fare con software critici come sistemi di supporto vitale o reattori nucleari.
- Sistemi finanziari in cui il fallimento può avere un impatto economico sostanziale.
Quando non è possibile aggiornare il software in remoto.
Come eseguire una distribuzione Canary?
Ora, diamo un'occhiata ai passaggi necessari che devi intraprendere per eseguire una distribuzione canary.
- Prepararsi per la distribuzione sul server di staging.
- Escludi i nodi canary tramite il bilanciamento del carico.
- Distribuisci la nuova versione ai nodi canary.
- Testare la nuova versione con script di test automatizzati.
- Connetti i nodi canary al traffico con il bilanciamento del carico.
- Distribuisci l'aggiornamento ai nodi di produzione rimanenti.
In pratica, la distribuzione inizia con la preparazione del server di staging. Controllare i file di configurazione, testare gli script, creare artefatti e così via. Successivamente, puoi eseguire test automatici o manuali oppure lasciare il server attivo e vedere se tutto funziona correttamente o se si arresta in modo anomalo.
Quando spingere Canary alla produzione?
Dopo aver testato il tuo aggiornamento Canary sul 5 o 10% degli utenti e tutto funziona correttamente, puoi procedere a raddoppiare o triplicare la percentuale di utenti di test.
Quindi, esegui nuovamente il test, raccogli feedback dalle metriche e, una volta valutato che tutto funziona correttamente, puoi continuare ad aggiornare il 70% dell'ambiente di produzione.
Infine, ripeti la procedura di test e, se tutto è a posto, distribuisci la nuova versione del software al 100% degli utenti e, ovviamente, continua il monitoraggio.
Aziende che hanno implementato Canary Deployment
Per mostrarti che l'implementazione di Canary è un metodo di implementazione popolare, daremo un'occhiata ad alcune aziende che utilizzano l'implementazione di Canary.
Netflix
Il gigante dei servizi di streaming utilizza l'analisi automatica delle Canarie con Kayenta dal 2018. Ciò consente aggiornamenti estremamente rapidi all'ambiente di produzione di Netflix. L'azienda afferma che questo metodo di distribuzione ha aumentato la produttività degli sviluppatori riducendo al contempo il rischio di apportare modifiche al loro ambiente di produzione.
Questa piattaforma di social media è stata anche una fan di lunga data della distribuzione delle Canarie. Il loro co-fondatore e CTO, Mike Krieger, ha condiviso che le versioni canary assicurano che i bug non facciano troppi danni e colpiscano solo un piccolo gruppo di persone.
Sapevi che Google Chrome ha una versione speciale, pensata per gli sviluppatori? Esatto, Google Chrome Canary ti consente di testare le nuove API della piattaforma web e vedere come sarebbe il futuro del browser prima di chiunque altro.
Microsoft
Microsoft utilizza il proprio personale per testare tutti gli aggiornamenti dei prodotti. Il processo è attivo da Windows Vista e Microsoft Azure. L'aggiornamento a Windows 10 è stato eseguito anche utilizzando gli aggiornamenti Canary dei sistemi operativi del proprio personale.
Riepilogo
Il test Canary è un ottimo modo per introdurre rapidamente nuove versioni dell'applicazione, in ambienti di test del mondo reale. Non solo, ma consente una migliore gestione del rischio e dati più tracciabili.
Nonostante i test delle Canarie abbiano così tanti vantaggi, non è sempre la soluzione per ogni situazione. Assicurati di fare le tue ricerche prima di iniziare una distribuzione delle Canarie, altrimenti potrebbe ritorcersi contro di te.