本節(jié)介紹了通過配置管理降低配置變更風(fēng)險(xiǎn)的實(shí)踐方法。

遷移到MSE Nacos

ACM進(jìn)入下線狀態(tài),所有配置管理相關(guān)的需求由MSE中的Nacos承接(ACM獨(dú)享版,更好的安全和穩(wěn)定性)。您需要在ACM控制臺(tái)導(dǎo)出配置,然后在MSE控制臺(tái)導(dǎo)入之前導(dǎo)出的配置即可完成遷移。具體操作,請(qǐng)參見將應(yīng)用配置從ACM遷移到MSE Nacos。

組織配置

ACM 提供了 dataId、group、app、namespace 等四個(gè)維度來幫助管理配置。勤于梳理且善用這些維度,能減少在配置管理過程中發(fā)生失誤,提高系統(tǒng)穩(wěn)定性。

  • 配置組織方式
    • dataId

      • 用來表示一組相關(guān)的 key=value 的配置項(xiàng)的集合。

      • 規(guī)范 dataId 命名,例如: com.company.trade.threadpool.params,trade.p1.props。

    • group

      一般使用模塊名或者云資源名。若一個(gè)應(yīng)用使用了 Nginx,SLB, 此處 group 命名即 nginx,slb。

    • app

      應(yīng)用分組,一般是一個(gè)簡(jiǎn)單的業(yè)務(wù)單元或者微服務(wù)分組,由一個(gè)小型或中型團(tuán)隊(duì)開發(fā)和維護(hù)。

    • namespace

      粗粒度隔離多個(gè)應(yīng)用的配置,例如多環(huán)境。

  • 配置影響分級(jí)

    每個(gè)配置項(xiàng)的變更對(duì)系統(tǒng)的影響均不同。例如:日志級(jí)別的變更出現(xiàn)錯(cuò)誤,會(huì)改變系統(tǒng)的日志量,此外一般不會(huì)有其它負(fù)面的影響。而連接池、線程池、限流閾值、主機(jī)配置等的變更往往是一個(gè) Server 級(jí)別或者一個(gè)應(yīng)用服務(wù)集群級(jí)別的影響。

    分布式系統(tǒng)如全局路由規(guī)則、負(fù)載均衡策略、網(wǎng)絡(luò)配置等是重量級(jí)的配置,錯(cuò)誤的變更往往會(huì)帶來嚴(yán)重的后果。因此需要按照配置影響力,將配置等級(jí)分為 P0~P4。

    以下是示例說明。

    級(jí)別 影響力 例子
    P0 全網(wǎng) 全局路由規(guī)則,網(wǎng)絡(luò)配置,負(fù)載均衡配置
    P1 應(yīng)用集群 集群限流閾值,集群服務(wù)端點(diǎn)
    P2 主機(jī)級(jí)別關(guān)鍵配置 主機(jī)資源配置,線程池大小
    P3 進(jìn)程級(jí)別非關(guān)鍵配置 日志級(jí)別
    P4 無關(guān)緊要的配置 版本信息
  • 避免配置項(xiàng)集中于一個(gè)文件

    若將應(yīng)用的所有配置項(xiàng)都放在一個(gè)配置里,則意味著所有的人都在一個(gè)配置集上修改,這將導(dǎo)致配置變更、推送變得相對(duì)頻繁,且增加了互相沖突以及誤操作的風(fēng)險(xiǎn),不利于更好的配置授權(quán)和分級(jí)的變更流程管控。

  • 重要配置變更使用灰度發(fā)布

    重要的配置(如 P0、P1 級(jí))需設(shè)置變更審核、灰度等發(fā)布策略來降低變更風(fēng)險(xiǎn)。

確保配置安全

敏感配置信息請(qǐng)加密后存儲(chǔ)在 ACM 里

ACM Server 的主機(jī)和配置存儲(chǔ)中默認(rèn)不做數(shù)據(jù)加密處理。對(duì)于一些敏感配置信息,如密碼、Token、AccessKey 等信息,必須加密后才可以存儲(chǔ)在 ACM 里。

ACM 的 API 和控制臺(tái)均有提供配置信息加密工具,幫助您將信息加密之后再存儲(chǔ)到 ACM 里。