Dijkstra June 2018 | Page 28

Bạn sẽ làm gì khi muốn triển khai một tính năng đến một nhóm nhỏ người dùng thay vì toàn bộ người dùng trong hệ thống? | HUY NGUYỄN Feature Toggle (hay Feature Flags) và Fea- ture Rollout là một kĩ thuật phổ biến giúp bạn có thể quản lý được hành vi của phần mềm của mình mà không cần phải đổi code & deploy lại. Trong bài viết này mình sẽ đi qua một vài tính năng từ cơ bản đến nâng cao, đồng thời chia sẽ cách tiếp cận để design và implement một hệ thống Fea- ture Toggle/Feature Rollout nhỏ. Một vài ứng dụng trong thực tế của kỹ thuật này: Feature Control: tắt/bật tính năng cho toàn bộ hệ thống, hoặc một vài khách hàng cụ thể Feature Rollout: bật một tính năng từ từ cho tập người dùng của mình, có thể trước mắt cho 1 vài người dùng cụ thể, rồi sau đó bật tiếp cho những người dùng trong một nước/khu vực nào đó. BẬT/TẮT TOÀN CỤC Trường hợp cơ bản nhất của Feature Toggle là giúp bạn bật/tắt 1 tính năng mà không cần phải deploy lại code. Ví dụ, chúng ta có tính năng XYZ như sau: Lúc này, bạn có thể code & deploy tính năng xyz đó trước, sau đó chọn thời điểm thích hợp để bật nó lên cho toàn bộ hệ thống. Hoặc ngược lại, khi bạn phát hiện ra lỗi, hoặc hệ thống quá tải, bạn có thể tắt bớt 1 vài tính năng 28 DIJSKTRA