互联网公司上线问题

2016-09-20 16:07:15 +08:00
 renshuxian

小弟新去了一家互联网公司,每两周上线一次,每次都要凌晨发新的包,每次都要陪着通宵,总这样感觉身体要跨,想研究下怎么能白天发包然后热部署呢,公司现在已经是初步的分布式+集群 几十台服务器 几十个服务相互调用

7774 次点击
所在节点    Java
62 条回复
kanchi240
2016-09-20 16:20:49 +08:00
灰度
renshuxian
2016-09-20 16:22:15 +08:00
@kanchi240 大哥能在详细说说么
LMkillme
2016-09-20 16:25:05 +08:00
其实蛮享受以前凌晨更新的时候,两三个人半夜在办公室吃烧烤,啤酒,音乐,看看足球,吹求打屁
renshuxian
2016-09-20 16:27:32 +08:00
@LMkillme 那是建立在没出问题的情况下呀,可以看看电影,要是出问题了,后半夜写代码的感觉可不好
clarkyi
2016-09-20 16:30:06 +08:00
我们以前也是这种状态,不过现在切换了方式,用 jenkins 先把程序打好包,再用 rundeck 来发布到线上。虽然没有命令的方式方便,但是最起码不用半夜上线了
LMkillme
2016-09-20 16:30:16 +08:00
@renshuxian 测试做好来。
renshuxian
2016-09-20 16:34:14 +08:00
@clarkyi 我们也是 jenkins 但是如果如您说的用 rundeck 他会不影响生产的用户的使用么 比如我们的订单有 8 台集群,他能保证发布的时候不出问题么
renshuxian
2016-09-20 16:34:53 +08:00
@LMkillme 测试肯定是要的 但是很多环境只有生产有,只能最后才能测,很尴尬
clarkyi
2016-09-20 16:39:41 +08:00
@renshuxian 你手动发布的时候能保证发布不出问题么?
这个跟你手动发布是一个道理,只是把命令什么的都统一起来了而已,再者发布的时候可以先发布一台机器暂且叫预发布机,环境跟线上完全一致,只是不对外开放访问。当你确认这一台机器跑起来是正常的再一次发布到外网。
当然像你说的订单系统对数据一致性要求高的,肯定是要找一个访问量低的时间段来更新的。或者有对应的机制来处理正则处理的订单这都是外话了。
renshuxian
2016-09-20 16:43:29 +08:00
@clarkyi 感谢,那我懂了 还是要晚上上
darkfireworld
2016-09-20 18:49:46 +08:00
核心业务无法中断的,那就只能晚上了。
renshuxian
2016-09-20 18:59:13 +08:00
@darkfireworld 主要是想理解下那些大公司到底用了什么黑科技实现的热部署
dgsrz
2016-09-20 20:10:15 +08:00
预发布+分批次发布线上,也没啥黑科技的……除了核心应用或数据库变更需要放在业务低峰期
owt5008137
2016-09-20 20:13:06 +08:00
把生产环境的数据定期导到开发环境测啊。
生产环境部署可以试试采用 AB 组,更新前是 A 组,更新后是 B 组,切换环境就是路由切过去就行了。然后正式切换前先灰度一部分用户做预发布,如果预发布没问题了全部切 B 。就完了
ri0day
2016-09-20 20:56:06 +08:00
楼上是对的。 2 组 ,先拿下来一组。发代码上去,测试。测试完了 放上去给外面使用。再弄第二组。第二组发完了,测试好了,就也放上去。
renshuxian
2016-09-20 21:52:17 +08:00
@dgsrz 嗯我们现在也是这样 开发环境 测试环境 预发布 生产 就是纠结 生产一定要晚上上
renshuxian
2016-09-20 21:54:07 +08:00
@owt5008137 但是切 B 的过程中 客户的使用会造成影响吧
renshuxian
2016-09-20 21:55:24 +08:00
@ri0day 还是刚才的问题 比如 8 台的负载 如果分两批上线,前端只有 4 台工作压力可能会很大
xiaogui
2016-09-20 22:10:08 +08:00
晚上受影响的用户相对会比较少,出问题有更多的时间解决。但是另一方面晚上易疲惫,所以有的时候反而容易范二。
ywgx
2016-09-20 22:23:05 +08:00
信不信 来 xabcloud.com 给你完美解决方案

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

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

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

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

© 2021 V2EX