共用方式為


功能管理概觀

傳統上必須完全重新部署應用程式本身,才能運送新的應用程式功能。 測試一個功能通常會需要應用程式的多個部署。 每個部署可能會變更功能,或向不同的客戶公開此功能以進行測試。

功能管理是一項軟體開發實務,可讓功能發行與程式碼部署脫勾,而能夠快速地依需求變更功能可用性。 其使用一種名為「功能旗標」(也稱為「功能切換」和「功能開關」) 的技術來動態管理功能的生命週期。

功能管理可協助開發人員處理下列問題:

  • 程式碼分支管理:使用功能旗標來包裝目前正在開發的新應用程式功能。 這類功能預設會「隱藏」起來。 您可以安全地傳送功能 (即使尚未完成),讓其在生產環境中保持隱匿狀態。 使用這個稱為「隱匿部署」的方法,您便可以在每個開發週期結束時發行所有程式碼。 您不需要再維護多個開發週期程式碼分支,因為指定的功能需要多個週期才能完成。
  • 生產測試:使用功能旗標在生產中授與提早存取新功能的能力。 例如,您可以限制只有小組成員或內部的搶鮮版 (Beta) 測試人員可以獲得此存取權。 這些使用者會獲得完整無缺的生產體驗,而非測試環境中的模擬或部分體驗。
  • 發行小眾測試版:使用功能旗標,漸進地對終端使用者推出新功能。 您可以先鎖定一小部分的使用者母體擴展來推出,等過一段時間以後再逐漸增加母體擴展。
  • 即刻終止開關:功能旗標針對發行新功能提供固有安全網。 您可以開啟和關閉應用程式功能,不需重新部署任何程式碼。 如有必要,您可以快速停用功能,而無須重建和重新部署應用程式。
  • 選擇性啟用:使用功能旗標來區隔使用者,並傳遞一組特定功能給每個群組。 您可能有一個只能在特定網頁瀏覽器運作的功能。 您可以定義功能旗標,從而只讓該瀏覽器的使用者看見並使用該功能。 藉由使用此方法,您可以在之後輕鬆地擴充支援的瀏覽器清單,而不必進行任何程式碼變更。

基本概念

以下是與功能管理相關的幾個新詞彙:

  • 功能旗標:功能旗標是具有 on 或 off 二元狀態的變數。 功能旗標也有相關聯的程式碼區塊。 功能旗標的狀態會觸發是否要執行程式碼區塊的選擇。
  • 功能管理員:功能管理員是應用程式封裝,可控制應用程式中所有功能旗標的生命週期。 功能管理員也會提供額外的功能,例如快取功能旗標和更新其狀態。
  • 篩選條件:篩選條件是評估功能旗標狀態的規則。 潛在的篩選條件包含使用者群組、裝置或瀏覽器類型、地理位置和時段。

有效的功能管理實作至少須由兩個搭配運作的元件組成:

  • 一個使用功能旗標的應用程式。
  • 一個儲存功能旗標及其目前狀態的個別存放庫。

在您的程式碼中使用功能旗標

在應用程式中實作功能旗標的基本模式很簡單。 功能旗標是布林值狀態變數,可以控制程式碼中的條件陳述式:

if (featureFlag) {
    // Run the following code
}

您可以使用統計方式設定 featureFlag 的值:

bool featureFlag = true;

您可以根據特定規則來評估旗標的狀態:

bool featureFlag = isBetaUser();

您可以擴充條件以設定任一狀態的應用程式行為:

if (featureFlag) {
    // This following code will run if the featureFlag value is true
} else {
    // This following code will run if the featureFlag value is false
}

功能旗標存放庫

若要有效地使用功能旗標,您必須將用於應用程式中的所有功能旗標外部化。 您可以使用此方法來變更功能旗標狀態,而不必修改和重新部署應用程式本身。

Azure 應用程式組態為功能旗標提供集中式存放庫。 您可以使用它來定義不同種類的功能旗標,並快速且自信地操作其狀態。 然後,您可以針對各種程式設計語言架構使用 Azure 應用程式組態程式庫,輕鬆地從您的應用程式存取這些功能旗標。

下一步

若要開始使用 Azure 應用程式組態的功能旗標,請繼續閱讀針對您的應用程式語言或平台特定的快速入門指南。

若要深入了解如何在 Azure 應用程式設定中管理功能旗標,請繼續下列教學課程。

功能篩選可讓您按條件啟用功能旗標。 Azure 應用程式設定提供內建功能篩選器,讓您只能在特定期間或對應用程式的特定目標對象啟用功能旗標。 如需詳細資訊,請繼續下列教學課程。