线上服务要咋切换版本才不会影响用户?

2020-07-31 10:58:29 +08:00
 x97bgt

有若服务,每个服务都有集群,直接相互配合才能提供对外服务。假设若干服务要一起升级新版本,要咋起部署才能平滑升级,不影响线上?

面试时遇到的问题,没答出来。。。

8138 次点击
所在节点    程序员
52 条回复
godwinma
2020-07-31 16:40:57 +08:00
@594duck 百万加字段还 ok 吧,没啥事儿。
securityCoding
2020-07-31 16:43:50 +08:00
网关带+版本号灰度

nginx 也能做只是不能自动化
wangyzj
2020-07-31 16:48:46 +08:00
k8s 或者蓝绿
TtTtTtT
2020-07-31 17:02:18 +08:00
理论上,蓝绿发布就可以了。
实际上,保持代码向下兼容,然后加配置或者控制前端页面放量。
核心上,只要保证最外层的业务在最后开启就可以了。
slyang5
2020-07-31 17:32:44 +08:00
@wangxiaoaer 掘金的更新是我 见过最粗暴的, 好几次都停服
yangbonis
2020-07-31 19:42:58 +08:00
有向无环图,copy 入度大于 1 的节点转化成树,再从叶子到根分批次 1-n,先开第 n 批。通常反向代理等服务在第 1 批,数据库服务在第 n 批。我不太懂数据库,是用一些 sql 语句来升级的吗?性能问题只有并行和硬件两种方法,并行就是把锁的粒度变小。实际上把本来无关的代码强行安排次序也是锁。
zjie
2020-07-31 20:53:24 +08:00
,把所有需要升级的服务器都部署到单独的灰度组,然后根据用户的 id 之类的灰度,比如最开始是 1%,把这些流量打到新的灰度集群,其他就走原来的。
灰度没有问题,就扩容,扩大灰度范围。
最后没有问题,灰度全量,

一段时间后没有问题,老的机器下线回收。
cominghome
2020-07-31 21:46:59 +08:00
最有性价比的办法:找个人少的时间,直接滚动发布(能问这个问题我感觉你们系统应该不支持类似灰度路由这样的操作)
leeg810312
2020-07-31 22:59:03 +08:00
有没有大佬简要说一下案例流程啊,学习一下
chihiro2014
2020-08-01 01:24:01 +08:00
chenxytw
2020-08-01 18:09:29 +08:00
@594duck 空手套方案玩得溜啊
594duck
2020-08-01 20:31:19 +08:00
@chenxytw 要怎么样,支付宝拿来开个价 亿级 mysql 秒加字段。这么厉害,我这种老运维真不会,学习下好不被淘汰

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/694561

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX