汽车|核桃编程:前端可观测性建设之路

汽车|核桃编程:前端可观测性建设之路

文章图片

汽车|核桃编程:前端可观测性建设之路

文章图片

汽车|核桃编程:前端可观测性建设之路

文章图片

汽车|核桃编程:前端可观测性建设之路

文章图片


根据《中国少儿编程行业研究报告》及《2017-2023 年中国少儿编程市场分析预测研究报告》预测得出 , 少儿编程有望在 3-5 年内 , 达到少儿英语市场规模的一半 , 即 500 亿左右 , 发展前景广阔 。
在信息化时代的今天 , 人工智能给人们带来了巨大变化 , 新时代的家长处于互联网时代 , 与上一代的家长思维产生较大的变化 , 能够注重孩子的素质教育 , 注重培养孩子人工智能方向的才能 。 少儿编程教育就是在这样的背景下快速发展起来 。
核桃编程是少儿编程教育行业的领导者 , 致力于以科技手段促进编程教育 , 通过人工智能、自适应学习等先进技术和科学的教育方法 , 启发中国孩子的学习能力 。 自 2017 年 8 月成立以来 , 核桃编程的业务量飞速发展 , 仅仅 3 年时间付费学员人数就突破了 200 万 , 并实现了单月营收过亿 。
随着核桃编程业务的快速增长 , 核心应用的系统规模和系统复杂度也在经历翻天覆地的变化 。 核桃技术团队不断通过新兴的技术手段维护整套系统架构的技术先进性 。 在3 年时间里 , 技术团队至少对整体系统架构进行了 6 次以上的重大重构 , 涉及微服务化、容器化、分布式数据库等重要的技术 , 并尝试通过 Serverless 技术提升系统的弹性伸缩能力 。 在疫情期间 , 当系统负荷呈现数倍突增的情况下 , 核桃编程的系统架构依然经受住了考验 。
随着系统架构从简单变得复杂 , 有一个在互联网领域老大难的问题也逐步在核桃编程中体现出来:如何提升分布式系统的可观测性?在线上编程教学场景里面 , 用户一个简单的操作 , 就有可能涉及到前后端系统的多次交互 , 以及多个服务端微服务应用之间的相互调用 , 甚至还会受到第三方服务接口的影响 。 任何一个环节出现故障或者性能瓶颈 , 都会导致用户体验的断崖式下跌 , 而用户体验又是决定品牌形象的核心要素 , 所以对于核桃技术团队而言 , 保证优秀的用户体验需要在系统可观测性建设上做到这几个方面:
全面而且实时的了解系统每一个对外接口的性能质量 。通过数据掌握最终用户与系统交互时感受到的系统健康程度 。当系统健康程度存在问题时 , 技术团队能第一时间发现问题 , 并及时处理 。处理问题时 , 能迅速定位到系统瓶颈和故障源 。任何一个技术团队要想围绕着这几个方面 , 从零开始建设分布式可观测体系 , 都是一项非常艰巨的任务 , 好在业界对于分布式可观测性的建设 , 已经有了不少成熟的方法论以及开源项目可以参考 。
业界广泛认可的可观测性(observability)包含三个核心要素:Logging(离散的日志信息)、Metrics(聚合的指标)、Distributed Tracing(分布式追踪) 。 围绕这三个核心要素 , 有不少开源项目可以进行选择 , 帮助开发者快速建设分布式可观测体系 。

通过引入 Skywalking , Prometheus 等开源技术 , 核桃技术团队建立了完整的分布式可观测体系 , 能够对服务端复杂的微服务应用实现全链路追踪 , 并通过统一的日志服务体系收集分析业务日志 。 这样的努力对于系统稳定性以及用户体验的提升是立竿见影的:当系统服务端的任何一个环节出现故障或性能瓶颈的时候 , 技术团队都能第一时间得到通知 , 并快速定位问题 , 进行针对性处理 。