专栏首页DDD游戏灰度发布

游戏灰度发布

背景

快速可以说是互联网的最大特点了,唯快不破,快速响应,快速发布,快速部署,快速上线

但上线,毕竟还是有风险的,怎么能又快速响应,又能降低风险范围呢

前人,现人,后人们都在寻找着银弹

部署方式就进化了有很多次,蓝绿部署、滚动部署、灰度发布、金丝雀发布。。。

这些都是为了应对互联网的快速响应需求

游戏的发布现在还是比较粗暴的,对开发,运维也比较简单。

制定一个版本计划,开发,与运营沟通,确定版本内容,到了时间,所有游戏区全部关闭入口,停止服务器,发布,部署,重启,开放入口,一气呵成,快哉!

等等,理想很丰满,现实很骨感

在版本发布最后一天,开发人员在凌晨1、 2点时,还在开发,修复bug,好不容易打包,回家睡觉

第二天运维在8点开始停机发布新版本;

duang,怎么游戏服起不来了,开发请起床,查问题

迷迷糊糊的开发在梦境中惊醒,终于搞定,打包,发版本,启动服务(有时可能要一上午查问题,通知运营方,延长维护时间)

duang,玩家反馈,新功能有问题...

此时,回滚?还是。。。;好汉不回头,哪来的回滚

紧急停机,再寻找问题,修复,上线...

...

整个游戏的链条上,似乎大家都已经习惯,开发习惯,玩家也习惯

习惯麻痹了一切,没有提出更好的策略,大家都这么玩啊,无所谓啦~

方案

细思极恐,我们应该,也需要做得更好

灰度发布/金丝雀发布

灰度发布是在原有版本可用的情况下,同时部署一个新版本应用作为“金丝雀”(金丝雀对瓦斯极敏感,矿井工人携带金丝雀,以便及时发发现危险),测试新版本的性能和表现,以保障整体系统稳定的情况下,尽早发现、调整问题。

灰度发布/金丝雀发布由以下几个步骤组成:

  1. 准备好部署各个阶段的工件,包括:构建工件,测试脚本,配置文件和部署清单文件。
  2. 从负载均衡列表中移除掉“金丝雀”服务器。
  3. 升级“金丝雀”应用(排掉原有流量并进行部署)。
  4. 对应用进行自动化测试。
  5. 将“金丝雀”服务器重新添加到负载均衡列表中(连通性和健康检查)。
  6. 如果“金丝雀”在线使用测试成功,升级剩余的其他服务器。(否则就回滚)

游戏架构

这个架构图比现实丰满不少,真实情况组件可能是单点的,数据层也就是单个mysql,一切都是那么脆弱。

流程图

玩家首先登陆游戏运营平台,鉴权完毕,选择区服,通过网关服务器获取到真实game-server信息,通过TCP,玩家与game-server建立起长连接。

通过这个流程,就知道玩家与game-server直接牵手,强依赖的,如果gameserver重启,tcp连接是一定会断的,虽然前端可能尝试重新连接,但对玩家是有感的,不可能对玩家透明。

改进

怎么才能对玩家无感,切换版本呢?

在之前的架构图中,稍作修改,在玩家与Gameserver之间增加一层ha-proxy,这样就有了灰度发布的基础

玩家不再直接与game-server直连,而是与ha-proxy

透明性

对玩家来说,发版本就是透明的,发版本时,不再需要停机,入口也不需要关闭,7*24玩耍

流量灵活切换

灰度百分比,可以灵活控制,这里面又涉及到路由规则,复杂了,可以先百分百切换

快速迭代

玩家无感,出现bug,可以快速修复,快速上线

快速回滚

一旦新版本有问题,可以马上切回老版本,版本之间无逢切换

难点

加了ha-proxy,多了更多的灵活性

ha-proxy的难点,高可用,高可靠,高性能

高可用

最重要的一点,不能单点;

如果ha-proxy挂了,怎么办?就算game-server正常运行,也不能再提供服务,自己坑了自己

所以ha-proxy不能单点,哪是集群,还是主从?

每台物理机上都部署,还是集中几台部署?

高可靠

在新旧版本同时在线时,流量是否平滑过渡? 玩家操作是否保持完整性?

一个玩家操作横跨新旧版本时,数据一致性如何保障?

高性能

游戏服都是尽量压榨单台服务的能力,现在多了一层通讯,IO会不会影响性能?

结论

对于以上方案,不论是哪一种实现方式,仁者见仁,条条大路通罗马。

也可能你觉得这种想法本身就是个多余。

能卖1块钱的豆腐,为什么要卖5毛?

本文分享自微信公众号 - 码农戏码(coder-game),作者:Jack

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-01-26

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 灰度发布

    灰度发布就是已一种平滑过渡的方式来发布,通过切换线上新旧版本之间的路由权重,逐步从旧版本切换到新版本;比如要上线新功能,首先只是更新少量的服务节点,通过路由权重...

    用户4158112
  • 灰度发布

    灰度发布,对于大厂来说是必不可少的,对于我这种从来没有灰度发布过的,并不是很清楚,估计也有很多人不知道这个东西。以前只是直到灰度发布,这次稍微了解一下。

    wade
  • 灰度发布

    灰度发布(又名金丝雀发布)是指在黑与白之间,能够平滑过渡的一种发布方式。在其上可以进行A/B testing,即让一部分用户继续用产品特性A,一部分用...

    心平气和
  • 从零开发一个灰太狼游戏是什么样的体验?

    版权声明:本文为CSDN博主「极客江南」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

    陈大奇
  • 游戏服务器概述

    (1)了解常见查找/排序算法的特点:利用算法来改善性能,胜于通过编译器选项、编程技巧;

    Zoctopus
  • 七、jQuery狂拍大灰狼案例

    由于重新开始按钮的事件与开始事件几乎一致,因此同会调用处理进度条的事件。但重新开始时需要将进度条的进度重新赋值为 100%。因此,在进入函数时,先将进度条置为 ...

    Dreamy.TZK
  • 灰度发布方案

    灰度发布(又名金丝雀发布)是指在黑与白之间,能够平滑过渡的一种发布方式。在其上可以进行A/B testing,即让一部分用户继续用产品特性A,一部分用户开始用产...

    lyb-geek
  • 关于灰度发布

    几个月前部门内容组织了一次系统设计的议题,分到我们头上的题目是设计一套灰度发布系统。嗯,然后我们就精心设计(参考公司现有系统)了一番,不过鉴于滴滴现在大部分的人...

    iTesting
  • 腾讯游戏云 Dolphin 上线 开启游戏更新 easy 模式

    近日,腾讯游戏云游戏更新解决方案(Dolphin)于官网正式上线。作为率先推出游戏更新解决方案的综合云服务商,腾讯游戏云整合平台的技术优势和海量自研游戏的开发运...

    腾讯游戏云
  • 腾讯游戏K8s应用实践|更贴近业务场景的K8s工作负载:GameDeployment & GameStatefulSet

    贺佰元,腾讯高级工程师,硕士毕业于北京邮电大学计算机专业,先后在唯品会和腾讯从事容器和云原生方面的研发工作,有近9年的虚拟化及云计算行业经验,16年开始专注于...

    腾讯云原生
  • 手机 QQ 突然上线「小游戏」开放平台,微信的什么时候来?

    根据知晓程序(微信号:zxcx 0109)独家消息,1 月 11 日,手机 QQ 发布更新版本,突然上线「玩一玩」平台功能的灰度内测。

    知晓君
  • DDoS防护——中国互联网企业的“出海之盾”

    2020年开年,一系列“活久见“级别的黑天鹅事件给世界造成了巨大的冲击,其中一个正在加速的变化就是,现实世界的娱乐、社交等生活边界被虚拟网络蚕食鲸吞。以移动互联...

    腾讯安全
  • 手游的一些事儿 - 动态更新

    标题本来想叫“手游那些事儿”,想了想还是算了,不想盗用“明朝那些事儿” 的“招牌”(其实还是有盗用的嫌疑,哈哈)。

    meteoric
  • 灰度发布实现及蓝绿发布

    随着公司业务的不断发展壮大,需要一套稳妥的发布方案,如果发布的新版本服务有问题能及时撤回,不至于造成太大范围的影响;

    常见_youmen
  • MTSC2019大会日程重磅发布,腾讯WeTest独家Topic大揭秘!

    ? WeTest 导读 中国移动互联网测试开发大会 Mobile Testing Summit China(简称 MTSC)是由国内最大的移动测试技术社区 T...

    WeTest质量开放平台团队
  • 一个博弈游戏,据说智商130才看的懂

    博弈论是一门非常有意思的学问,之前小灰曾经分享过两个著名的博弈场景:囚徒困境和智猪博弈。

    小灰
  • MTSC2019-腾讯WeTest独家揭秘移动游戏测试和质量保障 QA 黑科技

    ? ? WeTest 导读 TesterHome 联合腾讯 WeTest 出品 MTSC2019 重磅游戏测试 Topic ,首次公开揭秘腾讯亿级用户游戏背后...

    WeTest质量开放平台团队
  • 这条灰色产业链曾让苹果公司损失10亿美元!

    有光的地方就有阴影,手游行业越发繁荣,但同时也伴随着越来越多的灰色技术和灰色玩法。

    FB客服
  • OpenAI发布DQN实现,提出5点做强化学习模型的最佳方法

    李林 编译整理 量子位 报道 | QbitAI 出品 今天,马斯克和YC总裁Altman等创办的人工智能非营利组织OpenAI,发布了DQN及其三个变体的Ten...

    量子位

扫码关注云+社区

领取腾讯云代金券