微服务工具建设实践

如果无法正常显示,请先停止浏览器的去广告插件。
分享至:
1.
2. 微服务工具建设实践 柯长青 高级系统工程师
3. 个人介绍 • 2014年加入汽车之家 • 经销商事业部架构组 • 致力于提升研发效能 • 提升研发人员开发体验
4. 目录 • 微服务介绍 • 微服务的挑战 • 工具建设实践
5. 微服务介绍
6. 微服务介绍 2014-2016 研发70人 服务数量150个 服务器100+台 手工上线 一切找运维 2017-2018 研发100+人 服务数量300+个 服务器200+台 自动化上线 推广微服务架构 2019-2021 研发200人 服务数量670+个 服务器上千节点 微服务 容器化
7. 微服务介绍
8. 微服务挑战
9. 微服务的挑战 • 对运维的挑战 • 对开发的挑战
10. 对开发的挑战 • 分治带来割裂 • 高复杂度带来质量效率挑战 • 服务容器化
11. 应对挑战:工具建设
12. 挑战一:分治带来割裂
13. 问题 • 项目用到的技术杂,无边界 • 重复建设,重复踩坑严重 • 好的实践无法被发现和扩散 • 项目流转,人员流转学习成本高 • 对新人不友好
14. 工具一:标准项目脚手架
15. 项目模板建设内容 公共依赖统一 管理 定期在沟通 群里推送说 明文档 标准化的文 档和Demo 统一项目技 术栈 优秀实践固 化
16. 项目模板
17. 项目脚手架 • 高效创建新项目 • 开箱即用 • 从源头标准化 • 最佳实践快速扩散
18. 团队组建 • 成立虚拟团队共同建设 • 各业务组均有成员参与 • 业务开发为主,架构开发为辅
19. 效果 • 脚手架累积创建项目400+ • 全部门技术栈统一 • 项目模板从业务研发团队得到持续反馈和改进
20. 挑战二:对质量效率带来挑战
21. 问题 • 排查问题效率低、难度大 • 发现问题严重滞后于用户 • 开发对服务运行指标掌握不足
22. 工具二:日志监控系统
23. 日志功能 程序日志 明细查询,慢日志查询, 日志统计分析 APP日志 明细查询,崩溃分析, HTTP分析 站点评价 站点评分 Web日志 实时/例是查询,性能分析, 慢流量分析等 前端日志 明细查询 关键业务 在纷杂的日志中重点关注核心 业务部分
24. 监控功能 多数据源 es、influxdb、http 报警规则 频次、同环比、自定义, 支持测试防止犯错 报警内容模板 多种触达方式 内容自定义,支持变量引 邮件、短信、电话、钉钉 用 报警抑制 静默时间 灵活的调度策略 预定义间隔和cron表达式结合 提供最大灵活性
25. 程序日志报警
26. 程序日志查询
27. 调用链查询
28. 服务指标趋势图
29. 服务评分
30. 系统整体架构
31. 监控报警实现 • 数据(Data) • 指标(Metric) • 规则(Rule) • 调度(schedule)
32. 程序日志格式 • 字段丰富 • 统一格式 • 合理设置分词 • TraceId和Skywalking打通
33. 程序日志格式实现 • 扩展主流日志框架 • 将格式固化在类库里
34. 和skywalking打通 • 用Filter将skywalking的TraceId放入MDC • 在Layout中取出TraceId
35. 服务指标按天计算保存 • 服务各实例指标计算 • Uri主干指标计算
36. 发现性能问题 • Url性能突然变差 • 性能持续变差
37. 服务评分算法 • 指标:流量,性能,错误率,单测覆盖度,平均复杂度,代码质 量分 • 单项得分=数值TP位置 • 综合得分=所有单项平均分
38. 服务评分算法
39. 应用情况 程序日志 调用链 Web日志 有效监控 12亿/天 3.3亿/天 40亿/天 1300+,日运行 64万次
40. 开源 • 开源监控系统 • Grafana同环比插件 • autolog4j
41. 挑战三:服务容器化
42. 初期思路 • 基础环境统一 • 应用层各自建设
43. 问题 • 学习成本高 • 复用差 • 能力增强困难
44. 工具三:镜像标准化构建
45. 镜像标准化 • 按应用环境类型分别统一标准化 • 分层复用 • 脚本自动构建 • 能力增强
46. 分层设计
47. 标准化 • Openresty • Node • Springboot • Golang • Tomcat
48. 标准化
49. 能力增强 • DIGO_ENABLE_SKYWALKING = true • DIGO_ENABLE_JVM_SANDBOX_REPEATER = true • DIGO_ENABLE_JACOCO = true
50. 工具建设心得 • 标准化 • 自助 • 让过去犯的错对未来有价值 • 快速原型
51.

首页 - Wiki
Copyright © 2011-2024 iteam. Current version is 2.132.0. UTC+08:00, 2024-09-21 13:49
浙ICP备14020137号-1 $访客地图$