Thử nghiệm Chrome Finch là gì?

Ngày xuất bản: 3 tháng 4 năm 2025

Khi đến thời điểm ra mắt một tính năng mới trong Chrome, chúng tôi sẽ thực hiện nhiều bước kiểm tra và cân bằng để đảm bảo tính năng đó hoạt động, tuân thủ và đáng tin cậy. Một trong những điểm cân bằng đó là các thử nghiệm của Finch. Đừng để phần "thử nghiệm" trong tên của tính năng này khiến bạn nghĩ rằng tính năng này không an toàn, mà ngược lại. Việc triển khai theo nhóm nhỏ giúp chúng tôi thêm các tính năng có thể gây ra vấn đề về khả năng tương thích một cách an toàn, vì chúng cho phép chúng tôi nhanh chóng tắt một tính năng nếu gặp phải vấn đề không lường trước được. Bài viết này giải thích cách thức và lý do chúng tôi sử dụng Finch cho một số bản phát hành tính năng trong Chrome.

Nhìn chung, để bật một tính năng trong Chrome, bạn chỉ cần chuyển đổi một giá trị boolean từ tắt sang bật trong Chrome. Khi một tính năng mới "ra mắt", điều đó có nghĩa là trạng thái mặc định của boolean này đã được thay đổi thành "bật" cho tất cả người dùng. Bạn có thể thực hiện việc này theo một số cách:

  • Bật tính năng "trong mã": tức là chính tệp thực thi Chrome có một chế độ cài đặt được bật theo mặc định.
  • Bật tính năng "theo bản dùng thử theo nguyên gốc": Hệ thống bản dùng thử theo nguyên gốc là cách để một trang web cụ thể chọn cho tất cả người dùng Chrome tham gia một thử nghiệm, chỉ cho phép một tính năng cụ thể trên trang web đó.
  • Bật tính năng "bằng cách sử dụng Finch": Chrome định kỳ tìm nạp một tệp cấu hình từ máy chủ và tệp này có thể chứa các chỉ dẫn để bật hoặc tắt một tính năng.
  • "Công tắc ngắt Finch": là lựa chọn ngược lại với việc bật "sử dụng Finch". Trong trường hợp này, tính năng được bật "trong mã" nhưng sau đó bị tắt bằng hệ thống Finch, thường là do các vấn đề được phát hiện sau khi ra mắt

Các trường hợp sử dụng Finch

Chủ đề của bài đăng này trên blog là Finch, vì vậy, chúng ta sẽ không thảo luận nhiều hơn về việc bật "trong mã" hoặc "bản dùng thử theo nguyên gốc". Nhưng Finch có nhiều trường hợp sử dụng thú vị.

Thử nghiệm trên một nhóm nhỏ người dùng (Thử nghiệm A/B)

Thông thường, Finch được dùng để thực hiện "thử nghiệm A/B" cho một tính năng hoặc hoạt động tối ưu hoá. Trong trường hợp này, một tính năng sẽ được bật cho một tỷ lệ nhỏ người dùng để có thể thu thập dữ liệu về sự khác biệt về hiệu suất, hành vi hoặc mức sử dụng khi tính năng được bật so với khi tính năng bị tắt.

Ví dụ về thử nghiệm A/B là khi chúng tôi ra mắt tính năng Giải mã hình ảnh suy đoán. Đây là một điểm cải thiện hiệu suất mà nhà phát triển hoặc người dùng sẽ không nhận thấy, ngoài việc giúp Chrome tải các trang nhanh hơn. Tuy nhiên, để đảm bảo không có điều gì bất ngờ xảy ra, cũng như để có thể đo lường chính xác tác động đến hiệu suất, chúng tôi đã sử dụng Finch để thử nghiệm A/B.

Tắt một tính năng có vấn đề

Để đảm bảo an toàn cho sản phẩm và trải nghiệm người dùng, Chrome có thể sử dụng hệ thống Finch để tắt từ xa các tính năng có vấn đề đã được bật "trong mã". Ví dụ: nếu một tính năng được bật theo mặc định, nhưng các vấn đề chỉ xuất hiện sau khi Chrome đạt đến trạng thái Ổn định, thì chúng ta cần một cách để nhanh chóng tắt tính năng đó nhằm đưa người dùng và doanh nghiệp trở lại trạng thái an toàn. Điều này có thể cần thiết khi có các lỗi chưa được phát hiện trong tính năng hoặc khi một tính năng vô tình làm hỏng các trang web hiện có vì những lý do không lường trước được.

Bật các tính năng có rủi ro theo cách an toàn hơn

Đối với hầu hết các tính năng mà Chrome ra mắt, có rất ít rủi ro vì chúng tôi có thể kiểm thử và xác minh rằng mã mới hoạt động trên tất cả các trang web.

Tuy nhiên, đôi khi việc ra mắt các tính năng có thể khá rủi ro do các vấn đề không xác định về khả năng tương thích hoặc các tương tác phức tạp khác. Trong trường hợp này, bạn có thể dùng hệ thống Finch để thực sự bật tính năng này, thay vì chỉ giữ tính năng này ở chế độ dự phòng như một công tắc ngắt.

Ví dụ: "nới lỏng" trình phân tích cú pháp HTML là một thay đổi liên quan đến tính năng mới có thể tuỳ chỉnh lựa chọn, cho phép đặt nhiều nội dung hơn trước đây vào bên trong một phần tử <select>. Vì thay đổi này có thể làm hỏng các trang web hiện có, nên chúng tôi cần triển khai một cách cẩn thận.

Việc bật các tính năng bằng Finch có thể an toàn hơn so với việc sử dụng Finch để xoá các tính năng, vì Finch không tiếp cận được 100% người dùng vì nhiều lý do. Ví dụ: một số người dùng doanh nghiệp có chính sách hoàn toàn cấm cấu hình Finch. Những người dùng đó vẫn gặp rủi ro trong trường hợp một tính năng được bật trong mã, sau đó bị tắt bằng Finch, vì những người dùng đó sẽ không nhận được chế độ cài đặt Finch và sẽ tiếp tục bật tính năng này. Thay vào đó, bằng cách bật tính năng này bằng Finch, chúng tôi có thể đảm bảo khả năng tắt tính năng này cho tất cả người dùng trong trường hợp khẩn cấp.

Cách kiểm tra xem bạn có đang tham gia một thử nghiệm của Finch hay không

Người dùng khó có thể thực hiện việc này một cách trực tiếp. Cách được đề xuất là liên hệ với một kỹ sư Chrome (thường là trong trường hợp lỗi Chromium) và gửi cho họ "danh sách các biến thể" của bạn. Đây là danh sách các phiên bản mã hoá đặc biệt của tất cả chế độ cài đặt Finch cho một trình duyệt nhất định. Bạn có thể dễ dàng truy xuất:

  1. Chuyển đến chrome://version.
  2. Sao chép toàn bộ danh sách văn bản (có thể khá dài) bên cạnh "Các biến thể đang hoạt động".
  3. Dán văn bản đó vào một tệp văn bản (ví dụ: variations.txt) rồi đính kèm vào một lỗi.

Với danh sách các biến thể này, các kỹ sư của Chrome có thể giải mã danh sách và xem những tính năng nào được bật hoặc tắt trên trình duyệt của bạn.

Điều gì sẽ xảy ra khi thử nghiệm Finch đạt 100% và sẵn sàng hoạt động?

Sau khi xác định rằng thử nghiệm của chúng tôi là "thành công" và tính năng được đề cập không gây rủi ro cho nhà phát triển hoặc người dùng, chúng tôi luôn bật tính năng đó "trong mã". Tại thời điểm này, bạn có thể kết thúc ngày của cấu hình Finch để cấu hình này không còn ảnh hưởng đến trình duyệt sau phiên bản mà tính năng được bật trong mã.