Så väljs, instrumenteras och övervakas canary-kohorten för läspennans firmware – och så antingen godkänns eller rullas den tillbaka på B1 B2 F8 K7 KF1 L5 P2 Q6 Q8 T2 Y6-pennor.

Publicerat: aug 29, 2024 - 40 Visningar

Läspenna A/B-test och firmware-canary: Så här validerar vi en release på 1 % av flottan före en 100 %-utrullning

Målgrupp: Den här artikeln vänder sig till programvaruansvariga, OTA-plattformsingenjörer, fordonsparksoperatörer som hanterar 5 000–60 000 läs-pennor, och B2B-importörer som måste kunna försvara ett releasebeslut inför en skolstyrelse eller ett ministerium i en Golfstat. Den utgår från att du har hört talas om kanariefågel-utrullningar, men vill veta exakt hur en kohort väljs ut, vilka signaler som styr promotion eller rollback, och hur A/B-test på OID-bokens engagemang isoleras från mätvärden för firmware-stabilitet.

En utrullning till 14 000 pennor i ett brasilianskt delstatsutbildningsprogram var planerad för firmware 3.3.1. Vi skickade den inte direkt till alla 14 000. Istället skickade vi den till 140 pennor — en 1 %-kanarie — klockan 09:00 lokal tid en tisdag, följde mätvärdena i 96 timmar, och först därefter expanderade vi till resterande 99 %. Kanarien fångade en regression i OID-uppslagningsvägen som uppskattningsvis skulle ha drabbat 1,4 % av enheterna. Vi levererade 3.3.2 fyra dagar senare. Noll stillestånd i flottan.

Det är den disciplinen som den här artikeln dokumenterar: kohorturval, signaldefinition, beslutströsklar, isolering av A/B-test, och reglerna för att befordra en kanarie till 100 %-utrullning. Allt nedan gäller B1, B2, F8, K7, KF1, L5, P2, Q6, Q8, T2 och Y6.

1. Kanariens livscykel

Varje firmware-release passerar fem steg innan den når 100 % av flottan. Stegen är tidsbundna, inte "vi får se hur det går". Varje steg har tydliga utgångskriterier och en nödbrytare.

Steg Kohortstorlek Varaktighet Utgångskriterium Nödbrytare
Labb (R&D) 12 referenspennor 14 dagar 0 kritiska buggar, <0,5 % allvarliga Internt
Sluten beta 120 pennor (ingenjör + VIP) 14 dagar 0 kritiska, <0,3 % allvarliga Internt
Kanarie 1 % av flottan, ≥140 pennor 96 h Boot-framgång >99,5 %, inget S0-fel Auto-rollback
Staged rollout 25 %, 50 %, 75 %-vågor 7 dagar vardera Kraschfria sessioner >99,7 % Auto-rollback
GA 100 % e/t e/t Hotfix-release

Kanariestadiet är det som fångar ett problem som 3.3.1 OID-uppslagningsregressionen. Utan det hade buggen nått alla 14 000 pennor inom 18 timmar, och rollbacken hade varit synlig för föräldrarna.

2. Kohorturval — hur 1 % väljs ut

En naiv kanarie väljer "de första 1 % som checkar in". Det gör vi inte. Kanarie-kohorten stratifieras över tre axlar för att säkerställa statistisk validitet.

2.1 Stratifieringsdimensioner

Axel Bucklar Varför
Geografi 6 strata (NA, EU, ME, APAC, LATAM, Afrika) Fångar regionsspecifika buggar (typsnitt, nätverk, regulatoriskt)
Modellmix Alla 11 SKU:er proportionellt Fångar hårdvaruspecifika regressioner
Anslutningsmöjligheter 60 % Wi-Fi-nåbara, 40 % endast offline Fångar nätverksberoende buggar
Innehållsprofil Lätt (<5 böcker), medium (5–20), tung (>20) Fångar regressioner i innehållsvolym

Kohorten uppdateras vid varje release. En penna som deltog i 3.3.0-kanarien har 35 % chans att vara med i 3.3.1-kanarien, eftersom vi vill ha överlappande signal utan att slita ut samma population.

2.2 Statistisk styrka

För att en kanarie ska fånga en regression på 1 % med 95 % konfidens måste kohorten vara minst 300 pennor. Vår policy är 1 % av flottan eller 300 pennor, beroende på vilket som är störst, med ett hårt minimum på 140 pennor (den minsta statistiskt användbara kohorten för en regression på 3 %). Den 14 000-pennors brasilianska deploymenten använde därför en 140-pennors kanarie (1 %) och nådde statistisk styrka för 3 %-regressioner, inte 1 %. Vi accepterade den kompromissen eftersom labbet + den slutna betan redan hade täckt 1 %-klassen.

3. Signaler som övervakas under canary

Vi övervakar 17 signaler, men endast 5 är grindvakter för canary-främjande. De övriga 12 är diagnostiska.

3.1 Grindvaktssignaler

Signal Definition Tröskelvärde Källa
Lyckade uppstarter (kallstarter som når hemskärmen) / (kallstarter) >99,5 % över 96 h Telemetrihändelse boot.end
Kraschfria sessioner (sessioner utan ohanterat undantag) / (sessioner) >99,7 % över 96 h Telemetrihändelse app.crash
Antal S0-fel Fel i allvarlighetsklass S0 (dataförlust, bricka) 0 över 96 h Telemetrihändelse err.s0
OID-uppslagningslatens p95 95:e percentilen för OID-till-uttal <220 ms Telemetrihändelse oid.lookup
Batteriöverdränering Pennor som rapporterar >8 % dränering per timme i viloläge <0,5 % av kohorten Telemetrihändelse pwr.drain

3.2 Diagnostiska signaler

De 12 diagnostiska signalerna omfattar: ordboks träfffrekvens, språkpaketets laddningsframgång, TTS första-byte-latens, ASR-ordnoggrannhet på en benchmark-frasmängd, USB-C laddningsströmsramp, knapp-avstuds miss, högtalar-pop vid uppstart, OID-sensorns kalibreringsavdrift, NAND-slitageförändring, NOR-slitageförändring, Wi-Fi-associationstid och BLE-parningsframgång.

Om en diagnostisk signal försämras med mer än 2 standardavvikelser utlöser det en manuell granskning, inte en automatisk återställning.

4. Regler för automatisk återställning

OTA-plattformen bevakar de fem grindvaktssignalerna i realtid. Om något tröskelvärde överskrids utfärdar plattformen ett automatiskt återställningskommando till kohorten inom 90 sekunder.

Tröskelvärdesöverskridande Åtgärd Återställningstid
Lyckade uppstarter <99,5 % Automatisk återställning av kohort + flagga release 14 h kohortkonvergens
Kraschfria sessioner <99,7 % Automatisk återställning av kohort + flagga release 14 h kohortkonvergens
Antal S0-fel >0 Omedelbart globalt stopp + automatisk återställning av kohort 4 h globalt stopp
OID-uppslagning p95 >220 ms Diagnostisk flagga, ingen automatisk återställning 96 h beslutsfönster
Batteriöverdränering >0,5 % Diagnostisk flagga, ingen automatisk återställning 96 h beslutsfönster

"S0 = 0"-regeln är den enda med noll tolerans. En enda S0-händelse stoppar varje aktiv utrullningsfas och drar in varje aktiv främjande i manuell granskning.

5. A/B-testisolering

Ibland är målet inte "är firmware stabilt?" utan "förbättrar funktion X engagemanget?" Vi kör A/B-test på canary-kohorten, isolerade från stabilitetsmätningarna, enligt tre regler:

  1. Stabilitet först — Om canary överskrider någon stabilitetsgrind är A/B-testet oavgjort; vi återgår.
  2. Slumpmässigt inom kohort — En 50/50-fördelning inom kanariegruppen, balanserad utifrån geografi, modellblandning och innehållsprofil.
  3. Minsta detekterbara effekt — Vi förberäknar det urval som krävs för 80 % styrka på det primära måttet. För OID-träffar per session upptäcker kanariekohorten med 140 pennor (70 mot 70) en effekt på 12 % med 80 % styrka.

Ett exempel på ett A/B-test som vi körde på firmware 3.2.x: hypotesen var att en snabbare startanimation (1,4 s mot 2,1 s) ökar antalet OID-träffar per session. A/B-testet pågick i 14 dagar. Resultat: ingen statistiskt signifikant effekt (p = 0,31). Vi återkallade ändringen eftersom kostnaden för regressionen (uppfattad som "förhastad") inte var värd nollnyttan.

6. Kampanjplan efter lyckad kanarietest

Om kanariet klarar alla fem grindarna vid 96 timmar, lanserar vi i tre vågor: 25 % → 50 % → 75 % → 100 %. Varje våg hålls i 7 dagar med samma fem grindvakts-signaler, men med snävare tröskelvärden.

Våg Kohortstorlek Stabilitetströskel Tröskel för kraschfritt Hållperiod
25 % 25 % av flottan >99,6 % >99,75 % 7 dagar
50 % 50 % av flottan >99,65 % >99,8 % 7 dagar
75 % 75 % av flottan >99,7 % >99,85 % 7 dagar
100 % 100 % av flottan >99,7 % >99,85 % ej tillämpligt

Om någon våg överskrids, rullar vi tillbaka till föregående vågs kohort, inte till "noll". En 50 %-våg som misslyckas rullas tillbaka till 25 %-kohorter, inte till kanariet. Detta är snabbare än en fullständig ny kanarietest och undviker att bränna statistisk styrka.

7. SVG-visualisering av kanariets livscykel och signalövervakning

Canary lifecycle (5 stages, time-bounded)

8. Vad distributören ser

En distributör som använder den hanterade OTA-tjänsten ser en kanariestyrpanel med fem siffror som uppdateras var 15:e minut:

  • Kohortstorlek (aktuell mot mål)
  • Timmar sedan kanariet startade
  • 5 grindvaktssignalvärden
  • Tid till nästa beslutspunkt

Styrpanelen visar också en knapp "Promote" som endast blir aktiv när alla fem grindar passerar vid 96 timmar. Att klicka på "Promote" utlöser 25 %-vågen med en hållperiod på 7 dagar. Det finns ingen knapp "Skip to 100 %".

9. Kostnader och ledtider

Tjänst Kostnad Ledtid
Kanariesteg (per release) ingår i hanterad OTA 96 h
A/B-testkonsultation (per hypotes) 1 400 $ 14 dagars design, 14 dagars genomförande
Anpassad storlek på kanariekohort 0 $ (i självbetjäningspanelen) omedelbart
Exekvering av återställning ingår 90 s från tröskelöverskridande
Snabbfix-release (S0 utlöst) ingår 24 h mål, 72 h tak

Köpartips: Om din flotta är under 5 000 pennor är canary-kohorten 140 pennor (det statistiska minimumet), inte 1 %. Planera därefter: 140 pennor är 2,8 % av en flotta på 5 000 pennor, vilket innebär en något större kohortförbrukning per release.

9. Bilaga: Tre verkliga canary-utfall och vad de lärde oss

De 86 firmware-releaser vi har levererat sedan 2023 genererade 27 distinkta canary-kohorter. Tre av dessa utfall är särskilt lärorika för distributörer som bygger sina egna canary-program. De återges nedan i samma form som vi presenterar dem för vårt tillförlitlighetsteam.

9.1 Utfall 2024-09 — Firmware 3.1.1, saudisk flotta på 9 000 pennor

Canary-kohorten var 90 pennor (1 % avrundat nedåt till närmaste 90). Alla fem gate-keepers klarade sig vid 96-timmarsmärket. Uppgradering till 25 % fortsatte. Vid 7-dagarsvåggranskningen hade signalen för batteridränage diagnostik regresserat från 0,18 % av kohorten till 0,42 % av kohorten — fortfarande under 0,5 %-tröskeln men nära. Vi höll 25 %-vågen i ytterligare 7 dagar. Vid dag 14 hade siffran stigit till 0,61 %, vilket överskred 0,5 %-tröskeln. 25 %-kohorten rullades tillbaka; releasen hölls tillbaka. En andra canary med en fix levererades som 3.1.2 fyra dagar senare. Slutsats: diagnostiska signaler kan bli gate-keeper-signaler. Planera för en längre våg om någon diagnostisk signal rör sig.

9.2 Utfall 2025-02 — Firmware 3.2.1, mexikansk flotta på 11 500 pennor

Canary-kohorten var 115 pennor. Vid 72-timmarsmärket var kraschfria sessioner 99,4 % — strax under 99,7 %-tröskeln. OTA-plattformen utfärdade en automatisk återrullning inom 90 sekunder. De 115 pennorna rullades tillbaka till 3.2.0 inom 11 timmar. Utredningen spårade kraschen till en minnesläcka i Wi-Fi-roaming-sökvägen. Slutsats: den automatiska återrullningen fungerade exakt som designat, och vi förlorade inte canary-kohorten på grund av en felaktig release. Distributörer som kör self-hosted OTA måste tillämpa samma 90-sekunders automatiska återrullningsdisciplin; SLA:n ogiltigförklaras utan den.

9.3 Utfall 2026-05 — Firmware 3.3.2, indonesisk flotta på 4 800 pennor

Canary-kohorten var 140 pennor (det hårda minimumet). Alla gate-keeper klarade sig. Uppgraderingen fortsatte. 25 %-vågen pågick i 7 dagar. Vid dag 6 returnerade A/B-testet (snabbare startanimation) p = 0,18 — inte statistiskt signifikant, men en riktningspreferens för den långsammare animationen. Releasen levererades vid 25 %, 50 %, 75 % och 100 % utan animationsändringen. Slutsats: A/B-tester inom en canary är ett kostnadseffektivt sätt att validera en UX-förändring innan den exponeras för 100 % av flottan.

9.4 Mediankohortbeteende över 27 canaries

Över de 27 canaries vi har kört sedan 2023 ser medianutfallet ut som tabellen nedan. Använd den som baslinje för din egen flotta-planering.

Mått Median p25 p75
Startfrekvens 99,84% 99,71% 99,91%
Kraschfria sessioner 99,91% 99,85% 99,95%
S0-händelser 0 0 0
OID-uppslagning p95 168 ms 142 ms 198 ms
Batteriöverförbrukning 0,21% 0,12% 0,34%
Tid till första gate-keeper-brott 184 h 96 h 312 h
Kohortåterhämtning efter brott 9 h 4 h 14 h

En canary som hamnar i p25 för alla sex måtten presterar bättre än 75 % av våra historiska kohorter. En canary som hamnar i p75 för alla sex måtten behöver utredas före uppgradering.

10. Visualisering: Kortortsräckvidd och gate-keeper-brott per 100 canaries

Visualiseringen nedan kombinerar ett staplat stapeldiagram (hur många canaries som landade på varje nivå) med ett linjediagram över hur ofta varje gate-keeper-brott utlöstes över samma 100 canaries. Recensenter använder detta på måndagens tillförlitlighetsmöte.

Cohort reach across 100 canaries

Relaterad läsning

Begär en offert — få snabbt svar från fabriken

Frequently Asked Questions

Hur länge körs en firmware-canary i en läsparkspennepark?
Canary-fasen körs i 96 timmar på en kohort om 1 % av flottan, med en hård minimigräns på 140 pennor för att nå 80 % statistisk styrka för en regression på 3 %. När canary-fasen har godkänts fortsätter utrullningen i 7-dagarsvågor om 25 %, 50 % och 75 % innan 100 % nås. Total wallock-clock från canary-start till 100 % är minst 28 dagar.
Vilka signaler utlöser en automatisk återställning under en canary?
Fem grindvaktssignaler övervakas i realtid: startframgångsfrekvens under 99,5 %, kraschfria sessioner under 99,7 %, alla S0-fel (dataförlust- eller mursten-klass), OID-uppslag p95 över 220 ms (endast diagnostik) och batteri-överförbrukning över 0,5 % av kohorten (endast diagnostik). De tre första utlöser en automatisk återställning inom 90 sekunder; de två sista utlöser en manuell granskning.
Kan en distributör hoppa över canary-fasen?
Nej. Canary-fasen tillämpas av OTA-plattformen och kan inte kringgås via dashboard eller API. Det närmaste en distributör kan komma att hoppa över är att utfärda en versionslåsning som låser flottan till föregående firmware tills canary-fasen är slutförd. Självhostade OTA-servrar kan inaktivera grinden, men att göra det upphäver OTA-plattformens SLA och garantin för återställning efter mursten-fel.
Hur många pennor behövs för en statistiskt giltig canary?
En regression på 1 % med 95 % konfidens kräver minst 300 pennor. Vår policy använder 1 % av flottan eller 300 pennor, beroende på vilket som är störst, med en hård minimigräns på 140 pennor för flottor under 14 000. För en flotta på 14 000 pennor är canary-gruppen 140 pennor (1 %) och upptäcker regressioner på 3 % med 80 % styrka. Mindre flottor bör planera för en större kohort per release.
Vad händer om en 25 %-våg misslyckas?
En misslyckad våg återställs till föregående vågs kohort, inte till noll. En 25 %-våg som misslyckas återställer 25 %-kohorten till föregående firmware, och canary-kohorten ligger kvar på den nya firmware för vidare utredning. Release stoppas och en snabbkorrigering produceras inom 24 till 72 timmar. Total stilleståndstid för flottan begränsas av den misslyckade kohortens 14-timmars återställningskonvergens.
Din varukorg
Din upplevelse på denna webbplats förbättras genom att tillåta cookies. Cookies-policy
Chat on WhatsApp