像某宝、狗东这样的网站怎么发布(更新)项目的

2020-09-10 13:03:45 +08:00
 leeton

像某宝、狗东这样的网站怎么发布(更新)项目的,平时也没见过他们提示系统升级中 稍后访问之类的

7939 次点击
所在节点    程序员
44 条回复
firefox12
2020-09-10 16:54:08 +08:00
负载均衡就是 nginx + upstream 吗?。 有更好一点的方案吗?
cominghome
2020-09-10 16:59:20 +08:00
@firefox12 核心思路和 nginx + upstream 差不多,但是各家多多少少都会有自己二次开发的产品
lynan
2020-09-10 17:14:37 +08:00
有在半夜 12 点的时候遇见狗东过几次接口超时,报错
当时在想哈哈哈被我逮到了把,偷偷更新
null2018
2020-09-10 17:15:32 +08:00
很简单啊,先从域名下摘一台机器,然后发布到机器上,测试在这台机器回归,没问题的话,摘机器,发布,挂机器,再摘再挂,或者晚上到凌晨再上线,最主要的话是发布其实没你想象那么慢
knightdf
2020-09-10 17:18:55 +08:00
类似灰度发布?
opengps
2020-09-10 17:21:30 +08:00
zc1249274251
2020-09-10 17:27:41 +08:00
多轮测试,备份、灰度发布 当然后边还有一些数据同步
owenliang
2020-09-10 17:49:04 +08:00
灰度部署几台不就好了嘛
azh7138m
2020-09-10 19:13:02 +08:00
@lynan 半夜可能不是更新,可能是线上压测,故障演练
maichael
2020-09-10 19:16:04 +08:00
滚动、灰度、蓝绿,只要设计良好,不停服更新不会很难。
LudwigWS
2020-09-10 20:32:35 +08:00
太复杂了
dizun
2020-09-10 20:53:13 +08:00
摘下一部分更新好再挂上呗。这种商城类的支付应该是单独的接口,所以灰度只要保证接口兼容性就没问题了。
tingfang
2020-09-10 22:07:04 +08:00
滚动发布,新旧版本共存。发布不难,难的是开发要考虑新旧版本兼容,数据迁移,数据兼容等。老版本只修 bug,不改功能,所有新功能都要提供新版本接口。
zhgg0
2020-09-10 22:54:09 +08:00
@lynan 大厂一般不会在半夜发布的,半夜发布出问题了,如果解决问题有可能很多人不在比较麻烦,所以都选择在白天发布,你说的半夜遇到超时问题,可能是压测导致的,压测一般下半夜开始。

大厂机器都很多,负载均衡机器加上探测应用机器是不是活的这种功能,就能解决发布时不影响功能的问题了。
alexsunxl
2020-09-10 23:03:51 +08:00
核心思路基本都是注册中心+upstream 。
比如说 100 台机器(实例)串行 10%更新, 对 1-10 做更新,同时把这 10%摘出来,不打流量进去。
更新完成后打流量,看监控一下,看下拨测,看下告警和日志,没问题就到下一组 11-20 。有问题就回滚,取消整个发布,解决了重新再来。

整个发布过程要做到可观测,可监控,可回滚。
Auster
2020-09-10 23:34:51 +08:00
分批部署
MinQ
2020-09-11 00:41:29 +08:00
@zhgg0 我司都是半夜发,第二天回家睡觉……
leeton
2020-09-11 04:45:31 +08:00
@lynan 优秀
monkeyWie
2020-09-11 07:35:26 +08:00
k8s 滚动升级就完事
zhilincom
2020-09-11 08:13:47 +08:00
应用部署能理解,我想知道他们数据库是如何更新的?就是修改表结构的操作。

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

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

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

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

© 2021 V2EX