之前,团队陷入不断的业务逻辑接口开发中,难度不大,需求很多,沟通流程烦,整体效率低。针对需求方多是开发人员的特点,我们想改变开发模式,不仅提高自身效率,也让需求方自助开发接口,期望整体效率提升50%。
于是去了解了Serverless、FaaS和已有解决方案(如腾讯云的云函数SCF,亚马逊的Lambda),试用腾讯云的网关API与云函数SCF,再结合自身业务场景,精简开发流程,实践出一个自助开发平台。
目前实践结果是:自身效率提升超预期,再加需求方已自助开发接口,两者结合,效果很好。本文主要分享实践结果及分析效率提升的原因。
现状
视频云运营系统主要包括10个模块:直播、点播、经营分析系统、自定义客户管理、基础产品数据平台、中长尾运营、互动直播、云通信、P2P、小微客服。前六个需持续投入开发,后四个基本无需投入。本文只涉及业务逻辑接口开发,不涉及前台页面。
特点:业务逻辑接口需求多,技术难度不大,提需求的多是开发人员。
问题:各模块需求较多时,接口排期时间长,与需求方沟通细节较耗费时间,功能变更维护成本大,发布流程慢(如简单的变更用30s改完,用三分钟走发布流程),导致整体开发、测试、发布、维护效率低下。
解决思路
传统的IDE模式,线下开发接口,手动贴命令测试,通过svn/git管理代码,从原始需求到接口上线,中间用到太多工具,如何精简流程,摆脱工具困扰,只通过web页面,就可以让开发者完成所有工作。不管何时何地,只要开发者能打开页面,就能对接口进行开发、测试、发布、维护。
实践结果
点击顶部的“新增接口”按钮,填写好标题和接口名即可创建成功,接口名具有全局唯一性,建议第一个接口命名为 rtx_test,如:
点击“提交”即生成一条接口记录,在最后一列,点击“编辑代码”按钮,打开编辑页,如:
点击接口列表最后一列的“在线测试按钮”,打开在线测试页,如:
效率提升分析
大赛事源站需求(包括拉流推流信息查询/断流操作/告警电话与拉流白名单的批量增删查等9个接口),原开发方式会排期1.5天,本开发方式实际只用3个小时左右;
基础产品--点播内容模块(包括收入详情/收入分布/用户预警/用户管理等列表曲线详情等8个接口),原开发方式会排期2天,本开发方式实际只用了不到4个小时。后与前台联调,仅在线上修改两三处格式,耗时不超过5分钟。样本数据较少,仅做参考。
开发模式改变,预估提升20%。原来通过svn/git管理代码,新增接口则创建一个文件,现在不使用svn/git,代码保存在数据库,完全通过页面管理,利用新增接口生成的示例代码,尽量做到让用户在现有代码上“改”,后续我们再给编辑代码页右侧增加手册,提供足够多的系统类与函数、代码片段等,尽量做到让开发者边拷边用;
线上调试功能,预估提升10%。原来测试的方式是,贴接口请求到命令行看返回结果,现在通过页面填好参数测试,而且可以边改代码边调试,调试完了将请求与结果一键复制,贴给前台即开发页面;
发布流程简化,预估提升10%。因为底层架构从数据库加载代码执行,目前未分离测试与正式环境,因此现在不需要发布,写好即是线上接口。这里存在安全隐患,目前只给少数人开放了编辑代码权限,其他人只能体验创建测试接口。第二期将分离草稿、测试、预发布、正式环境,只能在草稿中编辑,然后向上提测,因为代码保存在数据库,一旦测试通过,发布流程也就是将代码从草稿表拷到正式表,发布可在瞬间完成;
后续维护方便,预估提升10%。原方式维护接口,尤其不在公司内还要搭建开发环境或远程开发,现在只需要能访问公司内网,即可在web页面完成所有修改发布操作。
小结