1. 程式人生 > >阿裏雲王牌架構師楊曦:N多環境N多應用個性配置管理如何從混亂到簡單?

阿裏雲王牌架構師楊曦:N多環境N多應用個性配置管理如何從混亂到簡單?

存儲系統 世界 出錯 技術分享 acf https 代表性 不同的 發的

阿裏雲高級解決方案架構師 楊旭
技術分享圖片
世界最大混合雲的總架構師,4年前,開始作為雙11阿裏雲技術負責人,負責搭建全球最大的混合雲結構,把 “雙11”的電商業務和技術場景在阿裏雲上實現,並保障這個混合雲在雙11當天能夠滿足全球客戶的購物需求。

正文:

眾多項目研發過程中為了調試觀察應用運行時表現,修改常量配置的場景下往往需要頻繁地對應用代碼及配置項做打包發布進行應用版本更新甚至回滾代碼。基於該場景,任何的應用配置項變更都需要將整個應用重新打包發布,整個過程非常繁瑣,且容易出錯。非常典型且具有代表性的是:Redis連接串配置,應用業務功能切換開關,應用的安全限流配置,數據庫訪問配置等等一系列。

在此引申一個切實場景:一批早期的數據庫實例所在服務器都即將過保進行替換,新數據庫實例的端口及用戶名密碼保持不變並且持續與老庫保持數據同步,一個非常棘手的問題來了,若一個應用需要同時訪問其中多個db實例,在切換的時候如何能做到快速的切到對應db的新實例上?盡可能縮短因切換全過程時間消耗而引起的業務系統不可用時長。

對於此,業界普遍解決方案是引入獨立於應用之外的配置類服務系統,那麽這類配置中心服務到底是如何應對這個棘手問題呢,同時具備哪些關鍵要素呢?

1.運行時動態調整配置項,業務代碼感知配置變化並做出響應。

針對上述場景問題,對癥下藥。通過依托於配置中心服務,動態修改配置項並且業務代碼及時感知到變化值,jdbc驅動能根據新的數據庫連接串的變化並對新數據源發起連接請求操作,完美地解決數據庫切換過程耗時長的問題,同理也能做到數據源的快速回切,比如發現待切換目標主庫存在其他問題必須切回。

2.配置集中式管理,避免遊離,杜絕配置項無對應owner。

作為應用owner,務必十分清楚自身應用需要哪些配置,分別是做什麽用途的,配置的存在形態是什麽。將這些原本存在於代碼或靜態properties配置文件的,梳理出來統一管理,這樣做的好處是業務代碼與配置項解耦,做到動配置而無需修改代碼又避免發生遺漏。

3.配置層面的權限管理,特別是關鍵配置項不能誰都可以改動。

配置數據的安全性對應用至關重要,倘若是涉及到業務開關或是全局功能的配置,權限策略需要嚴格把控,比如淘寶大秒殺系統的時間,商品,庫存等信息,是萬萬不可隨意改動的。阿裏雲ACM配置中心服務結合RAM訪問控制系統構建權限管理。
1技術分享圖片

4.配置服務自身的容災切換,高可用性等。

仔細剖析ACM的架構,這是一套分三層自下而上的高可用性和穩定性保障。首先從底層數據庫存儲主備容災,再到ACM的主要服務層分布式集群可靠性,最後再是ACM客戶端即應用側的本地配置數據容災。簡單地說就是ACM的DB及應用服務都掛了,也不會立即影響到客戶正在運行的應用系統,容災發揮了重要作用。

2技術分享圖片

Figure 1圖片來自阿裏雲ACM

那麽從業務使用需求角度我該如何選型配置服務?

幾款主流相似產品簡介:

1.ZooKeeper 是一個分布式應用程序協調服務,是 Google Chubby 的開源實現。它是一個為分布式應用提供一致性服務的軟件,提供的功能包括配置維護、域名服務、分布式同步、組服務等。在 Hadoop 集群等場景下,ZooKeeper 同時充當應用配置管理的角色。但是由於它是 CP(Consistency,Partition Tolerance) 類應用,因此在可用性和性能上都會受到一定影響。

2.ETCD和 ZooKeeper 類似,ETCD 是一個高可用的鍵值存儲系統,主要用於配置共享和服務發現。ETCD 是由 CoreOS 開發並維護的,靈感來自於 ZooKeeper 和 Doozer。它使用 Go 語言編寫,並通過 Raft 一致性算法處理日誌復制以保證強一致性。etcd 和 ZooKeeper 類似,同樣可以用來做應用管理配置。但是由於它是強一致的管理類應用,因此其可用性和性能在某些場景會受到一定影響。

3.Spring Cloud Config Server和 ACM 類似,Spring Cloud Config Server 為服務端和客戶端提供了分布式系統的外部配置支持。配置服務器為各應用的所有環境提供了一個中心化的外部配置。與 ACM 不同的是,Spring Cloud 配置服務器默認采用 Git 來存儲配置信息,其配置存儲、版本管理、發布 等功能都基於 Git 或其他外圍系統來實現。除此之外,在配置功能方面,ACM 和 Spring Cloud Config 也有很大不同。
3技術分享圖片

Figure 2來源阿裏雲ACM

【往期回顧】
1.阿裏雲王牌架構師一問開發者:我需要一個高並發的架構,我的系統要改造成微服務嗎
https://yq.aliyun.com/articles/623271?spm=a2c4e.11155435.0.0.120433122PgFrW

2.阿裏雲王牌架構師二問開發者:容器和虛擬化你會怎麽選?
https://yq.aliyun.com/articles/623272?spm=a2c4e.11155435.0.0.120433122PgFrW

3.阿裏雲王牌架構師楊曦:也談系統緩存設計誤區及高階使用技巧
https://yq.aliyun.com/articles/624061

更多幹貨內容盡在阿裏雲總監課,戳鏈接報名:https://yq.aliyun.com/promotion/689

阿裏雲總監系列課重磅上線!聚焦人工智能、彈性計算、數據庫等熱門領域,首次集齊12位阿裏雲技術高管,耗時半年精心打磨,從理論到實踐傾囊相授,從零開始繪制技術大牛成長路徑,限時直播課程免費報名中!
IMG_1996技術分享圖片

阿裏雲王牌架構師楊曦:N多環境N多應用個性配置管理如何從混亂到簡單?