全部產品
Search
文件中心

Application Configuration Management(Deprecated):使用情境

更新時間:Jul 06, 2024

ACM 產品從 2008 年開始就被大量應用於阿里巴巴內部應用的組態管理。ACM 不僅適用於微服務、分布式架構下的組態管理、服務治理,在巨量資料等情境下也可靈活營運。本文選取典型的情境案例進行詳細介紹。

遷移到MSE Nacos

ACM進入下線狀態,所有組態管理相關的需求由MSE中的Nacos承接(ACM獨享版,更好的安全和穩定性)。您需要在ACM控制台匯出配置,然後在MSE控制台匯入之前置出的配置即可完成遷移。具體操作,請參見將應用配置從ACM遷移到MSE Nacos

微服務應用架構下的組態管理

在微服務架構下,應用和機器的數目眾多,單個應用的不同配置需要分發在多台機器上,各應用之間存在複雜的配置依賴。

在傳統架構的應用發布過程中,修改一個應用配置就需要將整個應用重新打包發布,過程繁瑣且容易出錯。

dg_config_update_traditional

若使用 ACM 進行組態管理,應用的配置資訊的管理、發布都通過 ACM 實現,配置的發布不再需要與應用打包為一體。在新版本的配置發布後,在所有應用立即生效,如下圖所示。

dg_config_update_acm

ACM 作為配置中心為微服務帶來以下好處:

  • 集中管理所有配置,在應用眾多的情況下組態管理變得更加方便。
  • 所有配置不依賴版本發布,使配置更新變得更加靈活。
  • 支援灰階發布和復原,使得配置的變更發布在微服務架構下變得更加安全。

分布式架構下的服務治理

在分布式架構下,服務治理是非常關鍵的。其中,服務治理的服務路由、服務限流、服務降級、服務鑒權等功能,均可通過 ACM 實現。

以限流降級為例,在阿里巴巴雙11,每一次服務限流降級相關操作都要求秒級響應,此需求就通過 ACM 來實現。

其中,每個 RPC 的服務端都會通過 ACM 來註冊監聽對應服務的流控管理資訊。當應用需要流控時,管理員在服務治理控制台做出限流操作,服務治理系統就會通過 ACM 將流控資訊推送到對應的目標應用服務端,讓應用服務端根據相關配置進行限流。

ACM 為分布式架構下的服務治理帶來以下好處:

  • 效能良好:通過配置推送的方式來監聽服務治理資訊,對效能幾乎無影響。
  • 回應時間迅速:相關的服務治理資訊可以被秒級推送。
  • 安全性高:當限流降級錯推以後還可以通過秒級配置復原來恢複狀態。

應用業務情境動態推送

如何讓前端頁面快速響應營運活動、降低開發成本、提高營運效率,也是 ACM 的使用情境之一。

以某電商營運為例。通過在前端 JavaScript 埋入 ACM 的配置內容(如三方庫版本號碼,靜態資源 URL 等),在營運活動發布時,營運人員可以通過營運工具修改 ACM 配置規則,直接讓前端 JavaScript 的展示生效。

ACM 為應用的業務情境推送帶來以下好處:

  • 通過配置將業務靜態代碼和業務情境解耦,顯著提高營運相關的應用發布流程。

巨量資料Realtime Compute的動態調整

在巨量資料的Realtime Compute領域,通常需要動態調整計算參數來取得最精確的Realtime Compute結果。

以阿里巴巴內部某 APM 類監控系統為例。該監控系統需要動態調節業務的閾值,來控制Realtime Compute系統,實現計算業務的警示。而且在閾值修改過程中,要求整個過程即時性好,應用不能停機。該監控系統的計算閾值採用 ACM 的規則來推送。

ACM 為巨量資料Realtime Compute情境的應用帶來以下好處:應用計算參數動態配置,動態生效,生效時間快,效能影響低。

企業級互連網架構下的異地多活情境

異地多活是企業級互連網架構中的一種進階容災架構。相對於傳統容災架構,有業務恢復短、容量需求低、營運快捷簡單等特點。目前異地多活架構被阿里巴巴和餓了麼等公司廣泛採用。

在阿里巴巴內部,容災多活架構的核心演算法、ID 分區和對應的路由規則均採用 ACM 來動態推送。其中,相應的用戶端和服務端,如 RPC,MQ,DB 都植入了路由路徑。當容災演練或者真實災難發生時,管理員只需要動態地推送規則,相應的規則會影響到所有架構組件。示意圖如下。

ACM 為異地多活情境中的應用帶來以下好處:

  • 基礎架構和容災邏輯解耦,具體的路由邏輯由容災規則切換決定。
  • 生效快,理論上容災的切換規則可以秒級推送到十萬層級機器。