这是我参与「第五届青训营」伴学笔记创作活动的的第14天
本节课内容如下
核心服务治理功能
目录
1 服务发布
服务发布(deployment),即指让一个服务升级运行新的代码的过程
服务发布的难点
- 服务不可用
- 服务抖动
- 服务回滚
蓝绿部署
蓝绿部署是一种通过运行两个相同的环境来减少风险和故障时间的技术。 这些环境被称为蓝色环境和绿色环境。
其中只有一个环境是活动环境,该环境服务于所有生产流量。
- 简单、稳定,但需要两倍资源
灰度发布(金丝雀发布)
灰度发布(又名金丝雀发布)是指在黑与白之间,能够平滑过渡的一种发布方式。在其上可以进行A/B testing,即让一部分用户继续用产品特性A,一部分用户开始用产品特性B,如果用户对B没有什么反对意见,那么逐步扩大范围,把所有用户都迁移到B上面来。灰度发布可以保证整体系统的稳定,在初始灰度的时候就可以发现、调整问题,以保证其影响度。
- 故事背景:金丝雀(canary)对瓦斯极其敏感,17世纪时,英国矿工在下井前会先放入一只金丝雀,以确保矿井中没有瓦斯
2 流量治理
在微服务架构下,我们可以基于地区、集群、实例、请求等维度,对端到端流量的路由路径进行配置
3 负载均衡
负载均衡(Load Balance)负责分配请求在每个下游实例上的分布。
常见的LB策略
- Round Robin
- Random
- Ring Hash
- Least Request
- ......
4 稳定性治理
线上服务总是会出问题的,这与程序的正确性无关
- 网络攻击
- 流量突增
- 机房断电
- 光纤被挖
- 机器故障
- 网络故障
- 机房空调故障
- ......
稳定性治理
- 限流
- 熔断
- 过载保护
- 降级
5 总结
- 服务发布:蓝绿部署、灰度发布
- 基于地区、集群、实例、请求等维度的流量治理功能
- 几种常见的负载均衡策略
- 微服务架构中的稳定性治理功能