微信灰度小程序可分享到朋友圈功能

364 阅读5分钟

微信灰度小程序可以分享到朋友圈了,如下图

朋友圈小程序

感觉朋友圈要被拼多多和各大ws占领了,更不能看了。

那什么是灰度发布?还有哪些部署方案呢?

常见部署方案有哪些?

在项目敏捷开发的过程中,不可避免需要快速、安全的更新应用,目前比较流行的几种部署方案有: 滚动发布、灰度发布/金丝雀发布和蓝绿部署

什么是灰度发布?

灰度发布(又名金丝雀发布)。 是指在黑与白之间,能够平滑过渡的一种发布方式。 在其上可以进行A/B testing,即让一部分用户继续用产品特性A,一部分用户开始用产品特性B,如果用户对B没有什么反对意见,那么逐步扩大范围,把所有用户都迁移到B上面来。–维基百科

  • 优点:

    1. 保证整体系统稳定性,在初始灰度的时候就可以发现、调整问题,影响范围可控;
    1. 新功能逐步评估性能,稳定性和健康状况,如果出问题影响范围很小,相对用户体验也少;
    1. 用户无感知,平滑过渡
  • 缺点:自动化要求高

什么是蓝绿部署?

你的项目部署在AB服务器(或是不同集群)上面,并用到了负载均衡。把A停了,部署A,B继续服务。A部署好了,启用A,然后停B,部署B。有点像电线线路,蓝线和绿线并联。

  • 优点:发布策略简单;用户无感知,平滑过渡;升级/回滚速度快。
  • 缺点:需要准备正常业务使用资源的两倍以上服务器,防止升级期间单组无法承载业务突发;短时间内浪费一定资源成本。

什么是滚动发布?

滚动发布是指每次只升级一个或多个服务,升级完成后加入生产环境,不断执行这个过程,直到集群中的全部旧版本升级新版本。

滚动发布
*上图:红色:正在更新的实例;蓝色:更新完成并加入集群的实例;绿色:正在运行的实例

  • 优点:用户无感知,平滑过渡,节约资源。
  • 缺点:部署时间慢,取决于每阶段更新时间;发布策略较复杂;无法确定OK的环境,不易回滚。

微信用户数量大,腾讯也不差钱。并且可以根据部分用户的反馈,及时进行查漏补缺,并及时完善产品的不足,如果发现重大问题,也可以回滚到旧版本。另外,下面延伸部分,可以看出,鹅厂超级爱灰度机制。

小结

综上所述,三种方式均可以做到平滑式升级,在升级过程中服务仍然保持服务的连续性,升级对外界是无感知的。那生产上选择哪种部署方法最合适呢?这取决于哪种方法最适合你的业务和技术需求。 如果你们运维自动化能力储备不够,肯定是越简单越好,建议蓝绿发布,如果业务对用户依赖很强,建议灰度发布。如果是K8S平台,滚动更新是现成的方案,建议先直接使用。

  • 蓝绿发布:两套环境交替升级,旧版本保留一定时间便于回滚。
  • 灰度发布:根据比例将老版本升级,例如80%用户访问是老版本,20%用户访问是新版本。
  • 滚动发布:按批次停止老版本实例,启动新版本实例。

延伸

2015年5月31日,马化腾在香港大学李兆基会议中心大礼堂举办了一场创业演讲,演讲中爆了一个大料:微信的诞生史

微信在诞生之前,在腾讯内部有三个团队在同时做微信,主要竞争者为张小龙的e-mail团队和手机QQ团队。做这个产品之前,腾讯内部并没有给这个产品定一个完整的基调,而是让公司内部形成一个激烈的竞争,通过观察用户对产品的喜好程度和产品的实际完成情况决定上线结果。

马化腾的灰度机制是这样的:很多公司在一开始做产品定义时,要么确定它是黑的,要么确定它是白的。但是马化腾发现,互联网产品的定义是有用户投票决定的。在一开始,我们不定义它是黑,还是白,有一个灰度的周期。在这个灰度周期里,让用户的口碑决定它是生是死,是白还是黑。

说的再直接点,这也是马化腾创新上的灰度机制:容忍失败,允许适度浪费,鼓励内部竞争内部试错。马化腾说过,在产品研发过程中,我们还会有一个困惑:自己做的这个产品万一失败了怎么办?

如果在资源许可的情况下,这样做的好处,就是内部竞争,激发创新思维。没有竞争就意味着创新的死亡。即使最后有的团队在竞争中失败,但它依然是激发成功者灵感的源泉。

灰度机制,真香!