paint-brush
Chúng ta cần nói về cờ tính năng trong quản lý phát hànhtừ tác giả@pransh
647 lượt đọc
647 lượt đọc

Chúng ta cần nói về cờ tính năng trong quản lý phát hành

từ tác giả Pranshu Khanna5m2023/07/27
Read on Terminal Reader

dài quá đọc không nổi

Cờ tính năng đóng một vai trò quan trọng trong quản lý phát hành, cung cấp cho nhà phát triển khả năng kiểm soát các tính năng phần mềm mà không cần thay đổi mã. Những cờ này có thể giảm thiểu đáng kể rủi ro, tạo điều kiện phản hồi nhanh hơn và cho phép thử nghiệm A/B dễ dàng cũng như khôi phục liền mạch. Trong bối cảnh quản lý phát hành, việc triển khai các cờ tính năng có thể cung cấp khả năng kiểm soát nâng cao đối với quy trình phát hành, cho phép triển khai an toàn hơn và hiệu quả hơn. Bất kể các công cụ cụ thể được sử dụng để triển khai là gì, việc hiểu và tận dụng các cờ tính năng là một kỹ năng quan trọng đối với các nhà phát triển và người quản lý sản phẩm trong môi trường công nghệ năng động ngày nay.
featured image - Chúng ta cần nói về cờ tính năng trong quản lý phát hành
Pranshu Khanna HackerNoon profile picture
0-item

Trong thế giới phát triển phần mềm không ngừng phát triển, có những công cụ và chiến lược có thể cải thiện đáng kể quy trình và kết quả công việc của chúng ta. Một kỹ thuật như vậy, mà nhiều người có thể không quen thuộc, là quản lý phát hành.


Cụ thể, chúng ta cần nói về vai trò của cờ tính năng trong quản lý phát hành.

Hiểu quản lý phát hành

Quản lý phát hành là quá trình lập kế hoạch, lên lịch và kiểm soát quá trình xây dựng phần mềm qua các giai đoạn và môi trường khác nhau, bao gồm thử nghiệm và triển khai các bản phát hành phần mềm.


Hãy coi đó là đạo diễn sân khấu trong một vở kịch, đảm bảo mỗi cảnh (hoặc trong trường hợp của chúng tôi là tính năng) diễn ra suôn sẻ và đúng thời điểm.

Một ví dụ điển hình về tầm quan trọng của việc quản lý phát hành là vụ ra mắt khét tiếng năm 1996 của Ariane 5 Flight 501 bởi Cơ quan Vũ trụ Châu Âu.


Một lỗi phần mềm nhỏ, bị bỏ qua trong quá trình phát hành, đã dẫn đến khoản lỗ hơn 370 triệu đô la khi tên lửa tự hủy chưa đầy một phút sau khi cất cánh. Quản lý phát hành thích hợp có thể đã ngăn chặn thảm họa này.

Cờ tính năng là gì?

Hãy tưởng tượng bạn là một nhà ảo thuật, và bạn có khả năng làm cho một số phần nhất định trong hành động của bạn xuất hiện và biến mất theo ý muốn. Đó là chức năng của cờ tính năng trong thế giới phần mềm. Chúng cho phép các nhà phát triển bật hoặc tắt các tính năng trong ứng dụng phần mềm mà không cần thay đổi mã và triển khai lại ứng dụng.


Kỹ thuật này còn được gọi là chuyển đổi tính năng, chuyển đổi tính năng hoặc lật tính năng.

Giao điểm của cờ tính năng và quản lý phát hành

Cờ tính năng và quản lý phát hành giao nhau theo cách cho phép nhà phát triển kiểm soát nhiều hơn chức năng phần mềm của họ ở các giai đoạn khác nhau của quy trình phát hành.


Nó giống như có một phiên bản 'tập dượt' và 'biểu diễn cuối cùng' của một vở kịch diễn ra đồng thời, với việc đạo diễn có quyền hoán đổi các cảnh vào và ra một cách liền mạch.


Chẳng hạn, một tính năng mới trong ứng dụng có thể được ẩn sau cờ tính năng trong giai đoạn thử nghiệm, cho phép các nhà phát triển kiểm tra kỹ lưỡng tính năng đó mà không ảnh hưởng đến người dùng cuối. Nếu có vấn đề phát sinh, tính năng này có thể bị tắt ngay lập tức, ngăn mọi trải nghiệm tiêu cực của người dùng.

Một quy trình lý tưởng để sử dụng Cờ tính năng trong Quản lý phát hành.

Tại sao nên sử dụng Cờ tính năng trong Quản lý phát hành?

Cờ tính năng mang lại nhiều lợi ích trong quản lý bản phát hành, từ triển khai an toàn đến Thử nghiệm và xuống cấp nhanh chóng.


Triển khai an toàn giống như có một mạng lưới an toàn. Bằng cách triển khai các tính năng mới đằng sau cờ tính năng, các nhà phát triển có thể dần dần triển khai tính năng này cho một nhóm nhỏ người dùng, giảm nguy cơ xảy ra sự cố trên diện rộng.


Ví dụ: Netflix được biết đến với việc sử dụng cờ tính năng để thực hiện 'bản phát hành hoàng yến', trong đó các tính năng mới được triển khai cho một lượng nhỏ khán giả trước khi phát hành đầy đủ.

Cường điệu hay Giá trị?

Cờ tính năng không chỉ là một công cụ tuyệt vời dành cho nhà phát triển, chúng còn là công cụ thay đổi cuộc chơi cho toàn bộ quy trình phát triển phần mềm. Đây là điều cần thiết để hiểu rằng Cờ tính năng giúp bạn gửi và kiểm soát các bản phát hành của mình, nhưng đây là tầm quan trọng của chúng đối với quy trình làm việc hàng ngày của bạn:


  1. Giảm rủi ro: Cờ tính năng giảm rủi ro khi triển khai các tính năng mới. Bằng cách ẩn các tính năng mới sau các cờ, chúng tôi có thể kiểm tra kỹ lưỡng các tính năng này trước khi cung cấp chúng cho tất cả người dùng.


  2. Phản hồi nhanh hơn: Bằng cách phát hành các tính năng cho một nhóm nhỏ người dùng, chúng tôi có thể thu thập phản hồi và cải tiến nhanh hơn.


  3. Thử nghiệm: Cờ tính năng cho phép Thử nghiệm A/B, cho phép chúng tôi thử nghiệm các phiên bản khác nhau của một tính năng để xem phiên bản nào hoạt động tốt hơn.


  4. Khôi phục liền mạch: Nếu một tính năng không hoạt động như mong đợi, cờ tính năng cho phép khôi phục nhanh. Điều này đơn giản và ít rủi ro hơn nhiều so với việc phải hoàn nguyên toàn bộ bản phát hành phần mềm. Gì bây giờ?


Trong thời đại mà kỳ vọng của khách hàng và sự cạnh tranh cao hơn bao giờ hết, việc hiểu và tận dụng các cờ tính năng không còn là tùy chọn nữa—điều đó rất cần thiết. Hãy tưởng tượng một tình huống mà một lỗi lớn được phát hiện trong một tính năng sau khi nó được triển khai.


Nếu không có cờ tính năng, toàn bộ ứng dụng có thể cần phải được gỡ xuống để khắc phục sự cố. Nhưng với cờ tính năng, tính năng bị lỗi có thể bị tắt trong khi phần còn lại của ứng dụng tiếp tục phục vụ người dùng mà không bị gián đoạn.


Vai trò của cờ tính năng trong quản lý phát hành là một chủ đề đáng được quan tâm hơn trong ngành công nghệ. Như chúng ta đã thấy, chúng cung cấp một cách mạnh mẽ để kiểm soát việc phát hành tính năng, giảm rủi ro và cuối cùng là cung cấp sản phẩm tốt hơn cho người dùng.

Cách thực hiện các cờ tính năng

Việc triển khai các cờ tính năng trong phần mềm của bạn có thể đạt được theo nhiều cách. Bạn có thể:

  1. Xây dựng của riêng bạn: Nếu bạn có thời gian và tài nguyên, bạn có thể viết mã các cờ tính năng của riêng mình trực tiếp vào ứng dụng của mình. Điều này mang lại cho bạn nhiều quyền kiểm soát nhất, nhưng có thể tốn thời gian và việc duy trì nó là một cam kết rất lớn.


  2. Sử dụng thư viện: Có sẵn một số thư viện có thể giúp bạn triển khai các cờ tính năng, chẳng hạn như Togglz cho Java hoặc Django-waffle cho Python.


  3. Sử dụng Hệ thống quản lý cờ tính năng: Để có giải pháp mạnh mẽ hơn, bạn có thể sử dụng hệ thống quản lý cờ tính năng như Unleash , một công cụ mã nguồn mở, miễn phí cho phép bạn kiểm soát các cờ tính năng của mình mà không cần phải nâng nhiều.

Bắt đầu bây giờ

  1. bắt đầu giải phóng

Với gitdocker được cài đặt, thật dễ dàng để bắt đầu:


Chạy tập lệnh này:

 git clone [email protected]:Unleash/unleash.git cd unleash docker compose up -d


Sau đó trỏ trình duyệt của bạn tới localhost:4242 và đăng nhập bằng cách sử dụng:


tên người dùng: admin

mật khẩu: unleash4all


Nếu bạn muốn chạy mã nguồn trong repo này trực tiếp qua Node.js, hãy xem hướng dẫn từng bước để thiết lập và chạy trong hướng dẫn đóng góp .


  1. Kết nối SDK của bạn

Tìm SDK ưa thích của bạn trong danh sách SDK chính thức của chúng tôi và nhập SDK đó vào dự án của bạn. Làm theo hướng dẫn thiết lập cho SDK cụ thể của bạn.


Đối với SDK giao diện người dùng, hãy sử dụng:

  • URL: http://localhost:4242/api/frontend/
  • clientKey: default:development.unleash-insecure-frontend-api-token


Đối với SDK phía máy chủ, hãy sử dụng:

  • Giải phóng URL API: http://localhost:4242/api/
  • Mã thông báo API: default:development.unleash-insecure-api-token


Nếu bạn sử dụng một thiết lập khác, chi tiết cấu hình của bạn rất có thể cũng sẽ khác mà bạn có thể tìm thấy trên GitHub Repo .

Tóm lại là…

Trong thời đại mà kỳ vọng của khách hàng và sự cạnh tranh cao hơn bao giờ hết, việc hiểu và tận dụng các cờ tính năng không còn là tùy chọn nữa—điều đó rất cần thiết. Hãy tưởng tượng một tình huống mà một lỗi lớn được phát hiện trong một tính năng sau khi nó được triển khai.


Nếu không có cờ tính năng, toàn bộ ứng dụng có thể cần phải được gỡ xuống để khắc phục sự cố. Nhưng với cờ tính năng, tính năng bị lỗi có thể bị tắt trong khi phần còn lại của ứng dụng tiếp tục phục vụ người dùng mà không bị gián đoạn.


Vai trò của cờ tính năng trong quản lý phát hành là một chủ đề đáng được quan tâm hơn trong ngành công nghệ. Như chúng ta đã thấy, chúng cung cấp một cách mạnh mẽ để kiểm soát việc phát hành tính năng, giảm thiểu rủi ro và cuối cùng là cung cấp sản phẩm tốt hơn cho người dùng.