天天看點

微服務系統硬體要求_宋順-配置中心,讓微服務更『智能』.pdf

配置中⼼,讓微服務更『智能』

宋順

攜程架構架構研發部技術專家

攜程架構架構研發部技術專家

2016年初加⼊攜程,負責中間件産品的研發⼯作

開源配置中⼼Apollo主要作者

/ctripcorp/apollo

畢業于複旦⼤學軟體⼯程系,曾就職于⼤衆點評,

擔任背景系統技術負責⼈

1. 為什麼需要配置中⼼?

2. 配置中⼼的⼀般模樣

3. 如何讓微服務更『智能』?

4. 配置中⼼的最佳實踐

1. 為什麼需要配置中⼼?

2. 配置中⼼的⼀般模樣

3. 如何讓微服務更『智能』?

4. 配置中⼼的最佳實踐

配置即『控制』

程式的釋出其實和衛星的發射有⼀些相似之處

衛星發射升天後

• 處于⾃主駕駛狀态,按照預設的軌道運⾏

• 間歇可收到地⾯的『控制』信号對運⾏姿态進⾏調整

程式釋出到⽣産環境後

• 按照預設的邏輯運⾏

• 通過調整配置參數來動态調整程式的⾏為

• 這些配置參數就代表着我們對程式的『控制』信号

圖⽚來源:/space/a7194/how-it-works-nasas-experimental-laser-communication-system/

配置需要治理

權限控制、審計⽇志

灰階釋出、配置復原

不同環境、叢集管理

微服務的複雜性

單體應⽤時代

• 應⽤數量少

• 配置簡單

• 運維可以登機器修改配置⽂件

微服務時代

• 應⽤數量多

• 配置數量也急劇增⻓

• ⼈⼯登機器修改不僅效率低,還容易出錯

圖⽚來源:/blog/introduction-to-microservices/

需要⼀個統⼀的配置中⼼來管理微服務的配置!

1. 為什麼需要配置中⼼?

2. 配置中⼼的⼀般模樣

3. 如何讓微服務更『智能』?

4. 配置中⼼的最佳實踐

1. 為什麼需要配置中⼼?

2. 配置中⼼的⼀般模樣(以開源配置中⼼Apollo為例)

3. 如何讓微服務更『智能』?

4. 配置中⼼的最佳實踐

治理能⼒

01 統⼀管理不同環境、不同叢集的配置

⽀持灰階釋出 02

03 ⽀持已釋出的配置復原

完善的權限管理、操作審計⽇志 04

可⽤性

配置即『控制』

• 是以在⼀定程度上,配置中⼼已經成為了微服務的⼤腦

• 作為⼤腦,可⽤性要求顯然是⾮常⾼的

Apollo at a glance

服務端⾼可⽤

用戶端⾼可⽤

可⽤性場景舉例

實時性

配置即『控制』,是以我們希望我們的控制指令能迅速、準确地傳達到應⽤程式

圖⽚來源:/toysoxo-shipping-delivery-informaton/

配置釋出的過程

發送ReleaseMessage的實作⽅式

1. 為什麼需要配置中⼼?

2. 配置中⼼的⼀般模樣

3. 如何讓微服務更『智能』?

4. 配置中⼼的最佳實踐

開關

釋出開關

• 釋出開關⼀般⽤于釋出過程中,⽐如:

1. 有些新功能依賴于其它系統的新接⼝,⽽其它系統的釋出周期未必和⾃⼰的系統⼀緻,

可以加個釋出開關,預設把該功能關閉,等依賴系統上線後再打開。

2. 有些新功能有較⼤⻛險,可以加個釋出開關,上線後⼀旦有問題可以迅速關閉

• 需要注意的是,釋出開關應該是短暫存在的(1-2周),⼀旦功能穩定後需要及時清除開關代

碼。

實驗開關

• A/B測試

• 針對特定⽤戶應⽤新的推薦算法

• 針對特定百分⽐的⽤戶使⽤新的下單流程

• 功能驗證

• 有些重⼤功能已經對外宣稱在某年某⽇釋出

• 可以事先發到⽣産環境,隻對内部⽤戶打開,測試沒問題後按時對