Gepubliceerd: 3 april 2025
Wanneer het tijd is om een nieuwe functie in Chrome uit te rollen, zijn er veel controles en waarborgen om een werkende, conforme en betrouwbare functie te garanderen. Een van die controles is Finch Experiments. Laat het "experiment"-gedeelte in de naam je niet misleiden en denk niet dat het onveilig is, het tegenovergestelde is waar. Finch-uitrolprogramma's helpen ons om functies die mogelijk compatibiliteitsproblemen kunnen veroorzaken op een veilige manier toe te voegen, omdat we een functie hiermee snel kunnen uitschakelen als we onvoorziene problemen tegenkomen. Dit artikel legt uit hoe en waarom we Finch gebruiken voor sommige functiereleases in Chrome.
Om een functie in Chrome in te schakelen, hoeft u in Chrome alleen maar een boolean in te schakelen. Wanneer een nieuwe functie wordt "uitgebracht", betekent dit simpelweg dat de standaardstatus van deze boolean voor alle gebruikers wordt gewijzigd naar "aan". Er zijn verschillende manieren om dit te doen:
- Schakel de functie "in code" in : dit betekent dat het uitvoerbare bestand van Chrome zelf een instelling heeft die standaard is ingeschakeld.
- Schakel de functie 'via Origin Trial' in : het Origin-proefsysteem is een manier voor een bepaalde site om alle Chrome-gebruikers aan te melden voor een experiment, waardoor een bepaalde functie alleen op die site wordt ingeschakeld.
- De functie 'met Finch' inschakelen : Chrome haalt periodiek een configuratiebestand op van een server. Dit bestand kan instructies bevatten om een functie in of uit te schakelen.
- Een "Finch kill switch" is het tegenovergestelde van het inschakelen van "met Finch". In dit geval wordt de functie "in de code" ingeschakeld, maar vervolgens uitgeschakeld met behulp van het Finch-systeem, meestal vanwege problemen die na de lancering zijn ontdekt.
Gebruiksscenario's voor vinken
Het onderwerp van deze blogpost is Finch, dus we zullen niet veel dieper ingaan op het inschakelen van "in code" of "origin trial". Maar Finch heeft meerdere interessante use cases.
Testen op een kleine groep gebruikers (A/B-testen)
Finch wordt vaak gebruikt om A/B-tests uit te voeren op een functie of optimalisatie. In dit geval wordt een functie ingeschakeld voor een klein percentage gebruikers, zodat gegevens kunnen worden verzameld over het verschil in prestaties, gedrag of gebruik wanneer de functie is ingeschakeld of uitgeschakeld.
Een voorbeeld van A/B-testen is de lancering van Speculative image decodes . Dit is een prestatieverbetering die niet merkbaar zou moeten zijn voor ontwikkelaars of gebruikers, behalve dat Chrome pagina's sneller laadt. Om er zeker van te zijn dat er niets onverwachts gebeurde en om de impact op de prestaties nauwkeurig te kunnen meten, hebben we Finch gebruikt om de A/B-test uit te voeren.
Een problematische functie uitschakelen
Voor de veiligheid van het product en de gebruikerservaring kan Chrome het Finch-systeem gebruiken om problematische functies die "in de code" zijn ingeschakeld, op afstand uit te schakelen. Als een functie bijvoorbeeld standaard was ingeschakeld, maar er pas problemen ontstonden nadat Chrome de stabiele status had bereikt, hebben we een manier nodig om de functie snel uit te schakelen en gebruikers en bedrijven terug te brengen naar een veilige status. Dat kan nodig zijn wanneer er onontdekte bugs in de functie zitten, of wanneer een functie bestaande websites om onvoorziene redenen kapotmaakt.
Maak risicovolle functies veiliger
Voor de meeste functies die Chrome lanceert, is er weinig risico, omdat we de nieuwe code kunnen testen en verifiëren of deze op alle sites werkt.
Soms kan het echter behoorlijk riskant zijn om functies te starten, vanwege onbekende compatibiliteitsproblemen of andere lastige interacties. In dat geval kan het Finch-systeem worden gebruikt om de functie daadwerkelijk in te schakelen , in plaats van het simpelweg als noodstop te bewaren.
De HTML-parser "relaxation" was bijvoorbeeld een wijziging die verband hield met de nieuwe aanpasbare-select-functie, waardoor er meer content dan voorheen in een <select>
-element kon worden geplaatst. Omdat deze wijziging bestaande websites mogelijk zou kunnen verstoren, moesten we deze zorgvuldig implementeren.
Het inschakelen van functies via Finch kan veiliger zijn dan het verwijderen ervan via Finch, omdat Finch om verschillende redenen niet 100% van de gebruikers bereikt. Sommige zakelijke gebruikers hebben bijvoorbeeld een beleid dat Finch-configuratie volledig verbiedt. Deze gebruikers lopen nog steeds risico als een functie in de code wordt ingeschakeld en vervolgens via Finch wordt uitgeschakeld, omdat deze gebruikers de Finch-instelling niet ontvangen en de functie ingeschakeld blijft. Door de functie via Finch in te schakelen , kunnen we garanderen dat deze in geval van nood voor absoluut alle gebruikers kan worden uitgeschakeld.
Hoe kun je controleren of je meedoet aan een Finch-experiment?
Dit is lastig voor gebruikers om rechtstreeks te doen. De aanbevolen manier is om contact op te nemen met een Chrome-technicus (meestal in het geval van een Chromium-bug ) en hen uw "variatieslijst" te sturen. Dit is een lijst met speciaal gecodeerde versies van alle Finch-instellingen voor een bepaalde browser. Deze is eenvoudig op te halen:
- Ga naar
chrome://version
. - Kopieer de volledige tekstlijst (ja, deze kan behoorlijk lang zijn) die naast "Actieve Variaties" staat.
- Plak die tekst in een tekstbestand (bijvoorbeeld
variations.txt
) en voeg het toe aan een bug.
Met deze lijst met variaties kunnen Chrome-technici de lijst decoderen en zien welke functies in uw browser zijn in- of uitgeschakeld.
Wat gebeurt er als het Finch-experiment 100% bereikt en klaar is om te gaan?
Zodra we er zeker van zijn dat ons experiment "geslaagd" is en de betreffende functie geen risico's oplevert voor ontwikkelaars of gebruikers, schakelen we de functie altijd "in code" in. Op dat moment is het veilig om de Finch-configuratie te beëindigen, zodat deze geen effect meer heeft op browsers na de versie waarin de functie in code was ingeschakeld.