【产品日思录】vol38.技术流|新版上线应该怎么做?

《产品日思录》是我个人公众号上每天更新的系列文章,记录了我在做产品过程中的思考、总结、经验积累,也希望在这里和简书的大家分享~

36氪前一阵进行了一次比较大型的服务端上线,产品技术组对此做了许多准备,从结果来看还是比较成功的,今天的思考就来总结一下这次的上线流程,希望能对有同样经历的读者有所启发。

说是“技术流”,是因为我会主要从后台系统环境出发,描述如何一步步切换环境、测试、再上线的,因此要先对36氪部署结构有个基本了解,如下图所示:

图中黑色连线代表我们平时的测试环境连接示意。

从上到下。第一层,我们会准备3个App,其中2个App为5.9.3线上版本,用于验证服务端上线后是否会被影响,不同在于1个是为测试新代码准备的测试包,会根据上线流程,从测试环境连接到sim环境。第3个为即将发布的6.0版本,用于验证新App读取新接口是否可用。

第二层,我们准备了3套API接口环境,其中的“sim”API接口,是用于正式上线前的“预发布”环境,运行的是修改后的新代码,连接的是线上数据库和测试App,一般是先切换到“sim”环境,利用测试包验证新代码是否可正常运行,再将其发布到线上环境,以防上线后出现问题。

第三层,我们准备了2套数据库,测试库和线上库,最终的sim环境和线上环境都会连接到线上库进行真实情况验证

第四层,我们准备了3套CMS后台。和第二层一样,sim环境CMS后台,用于验证修改后的代码,是否可以正常操作线上数据库,并通过sim环境API反映在App。确认无误会再发布代码到线上CMS环境。

接下来,在上线当天,第一步,我们会做线上数据库的表结构变更,然后,会将代码部署到sim环境,利用sim环境的cms配置线上数据库数据,同时验证sim环境的cms功能是否OK,此外还会通过5.9.3测试包验证sim API接口的正确性。连接方式如下图①所示:

如果第一步无问题,第二步,我们就会将环境切换到线上。此时要先通知后台操作人员暂停操作,并提前发放好新后台的使用说明书。

切换方式如下图所示:

此时,无论是CMS还是API接口,都会切换到线上环境,切换后的连线如图②所示。做完这步操作后才是最紧张的环节,此时要马上验证线上Appv5.9.3是否会受影响、cms操作是否无误、主流程能否跑通,如果有问题,要立刻回滚到原始版本,以免影响线上用户操作。

当然,我们的这次上线操作并未发生大问题,所以接下来还需再做一步操作——验证新版本Appv6.0是否可行,此时只需将新版安装包连接到线上环境进行测试即可,由开发人员进行Bug修复。如下图③所示:

至此本次上线结束,虽然整体流程跑通了,但也暴露出一个问题,就是开发周期太长,一次性上线内容太多,导致很多细节没考虑清楚需要优化,上线后会出现不少需要调整的地方。之后还是尽量能分批次上线,缓解上线压力。

以上是我们的经验记录,对你有帮助么?期待你的留言~

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,962评论 25 709
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,828评论 19 139
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 14,404评论 4 61
  • 厂里原先的两只狗自从我们搬过来之后,解放了天性,每天撒欢的到处跑,不用被绳子困在方寸中! 春天的某一天,突然间,皮...
    浅墨淡笔阅读 2,999评论 2 2
  • 在我国汽车右行这个尽人皆知,但细心的朋友会发现,在乘坐火车时,一列列火车都是从我们的右边飞驰而过。在同一个国家,汽...
    地理答啦阅读 4,476评论 4 4

友情链接更多精彩内容