微服务系统硬件要求_宋顺-配置中心,让微服务更『智能』.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测试

• 针对特定⽤户应⽤新的推荐算法

• 针对特定百分⽐的⽤户使⽤新的下单流程

• 功能验证

• 有些重⼤功能已经对外宣称在某年某⽇发布

• 可以事先发到⽣产环境,只对内部⽤户打开,测试没问题后按时对

你可能感兴趣的:(微服务系统硬件要求)