跑跑
go后端工程师
项目经验
一、DevOps流程开发-go开发(腾讯)
背景问题:现如今部门内部推崇云原生,DevOps强调的是如何通过自动化的工具和沟通来完成软件的生命周期(开发,测试,运维)管理,从而更快、更频繁地交付更稳定地软件。目前面对 手Q 这一庞大的业务,存在很大的问题,质量全靠OA测,对接全靠人力,沟通成本大,沟通不及时,遗漏问题多,工具平台多。一个角色不同阶段会打开多个系统来关注不同的指标,又是多个需求并发进行的,企业微信群又比较多(需求群,开发群,合流群),导致回复不及时,同步不及时等问题。
目的:为了更快的交付更稳定的软件,提升研发效率,实现高效交付,以提高整个软件开发生命周期的效率以及质量,缩短软件开发周期并提供高质量的持续集成
实现方案:实现了一个编排系统,规范化好每一个环节的流程,将Devops中的各个环节串联起来,通过流程来贯穿整个迭代周期,具体实现是通过配置文件来编排整个流程,比如:在开发创建分支绑定tapd需求单时,监听到这一行为会实现自动拉群,在开发Mr个人分支时,自动触发去跑一系列的CodeDog、单测覆盖率的扫描等等一些检查项,这些对于开发人员来说是无感知的,如果失败会在对应群里推送处消息并艾特特定人员进行处理,如果成功会自动帮开发合MR,开发在提MR之后就可以去开发其他需求,不用太多精力关注MR单的情况,从而实现敏捷研发模式。
二、质量大平台-go后台(腾讯)
背景问题:面对手 Q 数十亿级的月活量 及 对接手 Q 内部工具系统繁多,需针对每个版本的用户bug 问题 进行 数据跟踪及统计,供每个版本的模块负责人、版本负责人及 pm 进行对比和总结,以及时发现最近迭代之间的质量差异,并及时作出相应的对策及调整。
实现方案:主要后台开发通过版本对比 报告,项目报表报告数据等计算了每个版本的 bug 解决率,合流延期率,需求延期提测时间,需求被压缩时间等指标,再传给前端通 过视图即报表的形式供各负责人查看,并有邮件功能可以自主的选择发送相应的信息。
三、zoom即时通讯
主要负责的是整个zoom消息服务端的研发,日活上千万,负责新功能开发,以及现有服务的优化,采用ejabberd/OTP并发编程,对外暴露Restful API以及与客户端通过xml协议进行通信,使用Mnesia+Redis+Mongodb三层存储结构进行存储,引人Gitlab+Jenkins做持续集成.
large channel优化
背景:让支持5k支持量的channel变为支持50K。
实现方案:
业务层面:优化单独比较大的业务逻辑。
架构层面:优化route,分配给空闲node,使得更多的线程并发处理这个channel。
工具层面:通过火焰图,针对耗时大的函数进行优化。
结果:经过多次观测,调优,耗时数月,最终50K的channel通信的耗时由分钟级变为毫秒级,使得整体架构耗时也随之下降。后续PM希望能将力度再次加大,变为支持100K。在不扩大机器的情况下,只能减少部分功能来换取时间,因此暂时搁置。
logo
浙公网安备33011802001633号
浙ICP备1805484号-2