• 日拱一卒
    2019-10-02
    你觉得金丝雀发布可以用在移动端应用或者桌面应用上吗?如果可以的话,大概要怎么实现呢?

    首先,我们目前一般都在采用红黑部署的模式,对于不重要的更新,偶尔会尝试灰度部署。灰度部署可能对于互联网类型的大流量高并发的应用更有意义,因为它们会涉及到更多的资源,灰度发布会更节省资源。

    我理解金丝雀发布这种方式并不会和某种应用类型绑定,之所以在Web应用中流行,是因为对于用户来说,Web类型的应用,只需要在用户端安装浏览器即可,不需要有额外的配置,所有的安装部署全部在服务器端进行,更容易控制。

    如果在移动端或者桌面端实施这一部署方式,需要1. 筛选种子用户,发送版本更新消息,并提供更新途径。2. 用户更新版本后,收集用户使用情况,评估新版本是否达到预期目标。3. 根据评估结果,决定是否升级版本或者回滚。

    种子用户的维护比较重要,一般会先从内部用户开始逐渐扩展。

    无论哪种类型的应用,采用金丝雀的方式进行部署,都会对监控提出更高的要求。
    展开

    作者回复: @日拱一卒 同学,每一次的回答都很到位。先赞一个!

    这里稍微补充一点。在移动端进行金丝雀发布还是比较普遍的。因为很多移动端APP。都是强依赖一个后端服务。可以比较方便的通过后端API来进行控制。如果是桌面版的程序,要实现金丝雀发布,前提也是需要有一个和后端服务沟通的渠道。

    这里的一个技巧,是使用功能开关来控制版本的回归,而不用要求客户重新安装旧版本。

     1
     2
  • 幻想
    2019-12-08
    这篇是这个专栏里的精品文章,写的很好,优秀。
    
    
  • lisa
    2019-10-07
    在生产环境下做集成测试提到了两个方法对于写用例的成本太高了,尤其是测试同学来写集成用例,因为涉及到和被测系统的联动,比如识别测试标签,识别后可能会根据测试点需要做不同的处理,感觉很难落地,facebook在这块落地上有遇到什么困难,怎么解决的,可以详细说说么?

    作者回复: 我在Facebook工作的时候,Facebook没有怎么使用在生产环境下做集成测试。大家很多集成测试是在开发环境和测试环境直接做的。不过因为开发环境、测试环境和生产环境共享数据,所以集成测试跟线上环境还是很相似。这里有一个做法可以参考,对对测试数据打标签、所有业务逻辑都对测试标签进行处理。所以我觉得"识别后可能会根据测试点需要做不同的处理"这个就得这么做。

    
    
我们在线,来聊聊吧