简介:为了帮忙企业和团队开掘更多源代码价值以赋能日常代码研发、运维等工作,云效代码团队在大数据和智能化方向进行了一系列的摸索和实际(例如代码搜寻与举荐),本文次要介绍咱们如何通过间接买通源代码来进步研发与运维效率。
大家好,我叫胡飞虎,花名虎仔,目前负责云效旗下产品 Codeup 代码托管的设计与开发。代码作为企业最外围的数据资产,除了被构建、部署之外还有更大的价值。为了帮忙企业和团队开掘更多源代码价值以赋能日常代码研发、运维等工作,云效代码团队在大数据和智能化方向进行了一系列的摸索和实际(例如代码搜寻与举荐),本文次要介绍咱们如何通过间接买通源代码来进步研发与运维效率。
随着微服务架构的风行,一个业务流程须要多个微服务共同完成。一旦呈现问题,运维人员在面对数量多、调用链路简单的状况下,很难疾速锁定导致问题产生的罪魁祸首:代码。
为了进步排查效率,目前常见的解决方案是:链路跟踪 + 日志剖析工具相结合。即通过链路跟踪产品(如阿里云的 Tracing Analysis)可视化还原业务执行过程的零碎调用链路的拓扑、接口申请量与耗时等数据,再配合日志剖析工具(如阿里云的 SLS)进一步剖析链路中某个零碎的具体日志从而锁定出问题的大抵坐标。
现实状况是开发人员可能自助剖析并解决联调过程中遇到的问题,但理论状况是一旦被依赖的服务执行返回失败时测试流程就终止了,必须要等到上游服务提供方的共事帮助排查能力解决;尤其当遇到在紧急场景时,更是考究一个“快”字,如果过于依赖排查人员对代码的相熟水平以及必须下载到本地电脑能力剖析的诸多限度,势必会升高问题排查的效率。
究其根源,链路跟踪 + 日志剖析工具的排查模式存在两个待解的问题:
- 无奈间接锁定有问题的源码,现有的定位形式只能查找到问题产生的现场信息(如产生的工夫、上下文数据和一些形容信息),而短少产生问题的凶手信息,即源代码数据;
- 限度条件多,首先须要排查人员事先晓得问题可能波及的代码库;其次代码库必须提前下载到本地 PC 电脑能力查看剖析,如果身边没有电脑则无奈进行上来。
买通源码,解决最初一公里
为了解决上述 2 个问题,云效代码治理平台 Codeup 联结阿里云日志服务工具 SLS 一起买通了日志到源码追溯的通道。管理员在实现一次配对后,开发者在排查过程中就无需关怀日志与代码库的关联关系,也无需长期申请代码库权限,让在线代码问题的排查变得简略而高效。
这里波及到两款工具,其中 Codeup 是代码托管产品,提供了代码源文件的存储与版本控制、代码文本搜寻等服务;SLS 提供了海量日志数据的收集、存储、检索等服务。
首先通过 SLS 收集上报业务零碎打印的日志数据,一旦生产环境呈现问题并由监控零碎发出报警,则开发或运维人员接到报警后第一工夫登录 SLS 控制台查问具体的日志详情,而后剖析具体日志详情以及一键跳转日志关联的源码仓库,定位到问题代码行,整个过程零打碎敲,让解决人员专一于问题自身,极大进步解决问题的效率。
实际操作指南
1、登录阿里云日志服务 SLS 界面,由管理员配置日志库与代码库的关联关系,通过点击图 1 所示的“查看源码”性能,能够进入配置页面。配置是一次性工作,失效后无需反复配置。
图 1“查看源码”初始化入口
2、抉择「查看源码」,抉择业务对应的云效代码库,如果代码暂未托管至云效 Codeup,别放心,这里反对一键疾速导入三方代码库到 Codeup,具体可见下方操作视频。
点击观看 http://mpvideo.qpic.cn/0b2ebm…
3、配置胜利后会在高级选项里新增“代码诊断”入口,如图 3 所示(入口名称可自定义,此处中自定义为:代码诊断)。
图 2 初始设置实现效果图
4、查看 SLS 日志详情,如需配合源码剖析,则只需抉择相应代码相干日志关键字,而后点击「代码诊断」即可,如图 4~6 所示,点击后能够在 SLS 页面间接查看相干的代码片段。
图 3 代码查问交互
图 4 关联查问的代码片段
图 5 Codeup 托管的代码详情
上述能力能够能够很好地解决日常联调场景和在线应急场景的问题。
- 日常联调场景中可能通过日志记录搜寻问题代码,自助解决全链路调试过程中呈现的一些相似参数校验,运行时异样等简略的代码问题。
- 在线应急场景下,可能通过一个 traceID 轻松从链路中定位问题的零碎,再从零碎的日志中查问具体日志数据,最初通过日志数据中记录的代码摘要疾速搜寻查问源码内容。整个过程一键实现,只有有相应的日志和代码库权限即可,即便没有 PC 电脑,挪动设施一样可能搞定。
原文链接
本文为阿里云原创内容,未经容许不得转载。