安居客小程序持续交付之路
导读
背景
痛点分析
发版平台多:目前负责发版的小程序包括了安居客微信小程序、58房产微信小程序、安居客百度小程序、安居客支付宝小程序,其中涉及到了微信、百度、支付宝三个小程序平台,而对应的发版过程中,上传操作需要打开各自平台不同的开发者工具,后续送审、发布环节则需要在各小程序管理后台进行手工操作。 发版频率高:早期没有固定的发版日期,单个小程序每周可能会发布5-10次,对于发版同学来说,这可能意味着需要更频繁的在正常工作及发版任务中进行切换,对于负责发版的同学,这种体验非常糟糕。 发版成本高、效率低:由于部分小程序在上传前需要先对代码进行编译,从而导致每个参与到发版的QA同学都需要安装对应的开发环境及工具、修改相关配置以及拉取代码,导致了发版成本较高;而编译过程有时又比较耗费时间,需要不时的关注,影响正常工作效率。
持续交付进化之路
安装各个小程序的SDK,微信(miniprogram-ci)、百度(swan-toolkit)、支付宝(alipay-dev); -
配置各个小程序后台: 微信:微信公众号获取上传密钥文件(调用SDK上传需要传入的参数)、关闭ip白名单; 百度:在百度智能小程序开发者工具获取登录密钥; 支付宝:小程序后台配置工具id和工具密钥、关闭ip白名单。 本地编写调用SDK执行上传的脚本,可根据具体小程序SDK必传参数传入对应的参数值即可实现上传代码至小程序后台。
针对设为体验版、送审、发布这三个功能,官方并未提供对应的SDK,在此之前只能通过手工操作页面的方式进行。
[2]Puppeteer:Puppeteer is a Node library which provides a high-level API to control Chrome or Chromium over the DevTools Protocol. Puppeteer runs headless by default, but can be configured to run full (non-headless) Chrome or Chromium. 参考来源:https://github.com/puppeteer/puppeteer
基于小程序SDK的上传服务,对各个小程序上传SDK进行了封装,并提供上传各个小程序到对应管理后台的服务。这部分需要根据SDK的要求在对应的小程序后台设置好对应的配置项,具体操作与上文本地阶段所介绍的相同,执行过程只需要根据接口传入的参数去调用对应的上传SDK即可。 基于UI操作的服务,主要提供获取体验码、送审、发布服务。根据传入的参数,决定具体是执行哪个平台的小程序中的哪个操作,并通过Puppeteer驱动页面操作。
效果及收益
-
发版成本降低:在小程序平台化后,负责发布的同学不再需要安装各种环境及开发者工具,也无需打开任何开发者工具就可进行编译、打包、上传的工作;同时,在提审、发布等环节也不需要去到各小程序的后台进行手工操作。 目前仅在安居客相关的4个小程序上累计各迭代了26个版本,粗略估算,每个小程序单次流程可节约30分钟。 流程透明化:作为平台方,早期在发版日当天下午,各业务方会频繁询问新集成包的相关信息以及发版流程节奏。而目前来说,我们可以依靠平台能力,大家可以实时的拿到新的集成包,以及查看发布流程的整体进度。 构建包统一管理:与Android及iOS对于历史版本包的需求类似,基于目前的平台,我们已实现了对小程序的各个版本历史包的统一管理。 业务快速接入&多平台快速扩展:目前除了安居客小程序,集团已有十余个小程序接入;基于目前的平台架构,后期如果再有其他平台的小程序,如头条、手Q等需要接入,可以实现快速接入。
总结
相关文章