失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 阿里云解决方案架构师李晨:百万级价签系统的实时洞察与创新实践

阿里云解决方案架构师李晨:百万级价签系统的实时洞察与创新实践

时间:2022-06-19 00:19:48

相关推荐

阿里云解决方案架构师李晨:百万级价签系统的实时洞察与创新实践

1月14日,第六期阿里云用户组AUG活动在北京举行。有着多年运维经验的阿里云解决方案架构师李晨向现场客户分享了什么是可观测智能运维,并通过盒马门店的实际案例,清晰地讲解了百万级价签系统的实施洞察以及在实践中遇到的问题挑战。本文根据现场分享整理而成。日志服务应用于阿里很多产品线,今天给大家分享一个新零售场景如何使用日志服务解决实际业务问题的最佳实践。在这里感谢新零售团队尔冉总结的SLS最佳实践经验。

业务价值

在阿里IT内部有一个比较出名的故障解决标准“一五十”,就是要求1分钟内发现问题,5分钟内定位问题,10分钟内解决问题。这其实是个非常高的要求,我们需要按照这个要求来设计系统,保障系统的健康稳定,从而给客户提供优质的服务。

盒马业务大量使用了电子价签。传统的价签是纸质的,维护价格非常麻烦。对于新零售这个新领域来说,需要很快速地应对业务的变化,需要实现线上线下同价销售,让线下门店跟随线上一样频繁的促销活动,一样灵活的价格优惠策略。电子价签正好可以解决这个问题,可以免去人工更换价签的烦恼,通过动态刷新价格图,可以实现百万商品同时价格变更,让顾客有更好的购物体验。

根据这个场景,阿里内部研发了一套价签系统,来保证在两百多个门店、200万块价签,能够实现价格同步刷新的能力。目前这套系统每天会有1000次的价格变化,这些价格变化会给每块价签推送刷图任务,每天有超过1亿次的刷图任务。

这套系统同样要满足上面“一五十”的要求,为了实现这一目标,首先要求所有数据传输必须是实时的,需要做到秒级采集数据,分钟级预警。其次是需要实现完整的业务可观测,通过采集和存储大量IOT设备的日志来实现。接着就是需要支持全链路串联,能够按任务进行跨系统,将日志串联起来一起分析排查故障。最后需要有多维度的监测,各种指标需要可以灵活配置,为不同的运维人员、开发、测试提供服务。

问题挑战

针对这个极具挑战性的目标,我们研发运维人员经过分析,把这个问题拆解成:这每天一亿次的请求,如何做到能实时且直观地看到单次刷图任务的执行结果,并对失败的任务展示其报错节点和错误日志。对于这个挑战,我们接下来看看新零售团队是怎么来解决的。

首先他们把整个业务架构给梳理清楚了。在这个业务当中,刷图任务从服务器触发,传递到IOT套件,然后IOT套件会把任务下发到各个门店的基站。基站再把刷图内容下发到每个价签上,价签进行刷图操作。在这个过程当中,其实我们遇到了大概四类问题:

价签数据环境间串扰:主要是要解决如何集中存储2个集群,以及日常、预发、线上3个环境的日志。价签无法存储日志:主要解决如何存储和解析IOT套件和价签错误码跨4个子系统诊断异常:如何设计跨系统任务的唯一标识跨4个部门联合排查问题:如何做好4个部门、6个研发团队间的协同

解决方案

基于上面的目标,团队基于日志服务构建了一套可观测平台,把非结构化的日志信息,根据业务逻辑,加工成一条条全链路日志,做成可视化界面,提供检索能力。

整个方案由数据采集、清洗、日志富化、展示和告警这几个部分构成。

首先会采集业务系统数据下发过程中每个环节的日志到日志服务中,然后使用数据加工将这些数据根据traceid进行整合,并且与csv文件中的设备信息进行关联,对富化日志内的字段,最后通过仪表盘和告警完成业务监测系统的构建。

下面就是如何把非结构化的日志信息,根据业务逻辑,加工成一条条全链路日志,做成可视化界面,提供检索能力的全过程。

将服务器、IOT套现、终端各个环节下发的数据日志,都传到SLS中,通过统一的ID进行关联,就可以将一次请求的日志全部串起来。任何一个环节出现了问题,都可以很清晰的定位出来。

结果呈现

首先我们做了一个业务全流程分析视图,可以看到所有刷图任务的整体状况,显示在每个数据下发环节的成功和失败情况。电子架签在每个区域和门店的健康状况、哪些地方有问题、哪些环节出故障都可以清晰地看到。

我们还针对每个门店都做了门店分析视图,显示每一个门店里面有哪些设备,这些设备出现了什么样的问题。比如,我们发现某个门店有一些设备掉线了,掉线之后会有相关的一些告警机制,然后发送到对应门店的运维人员,由运营人员通过更换设备等操作修复故障。

另外日志服务也支持定期发送报表到钉钉群里,这个对我们定期回顾复盘系统运行状态很有帮助。

接下,我会拿几个具体的案例,给大家介绍说我们怎么使用日志服务来解决问题的。

首先是一个心跳测试的场景,需要去检查设备的心跳是不是按照规则来进行的,比如说一分钟上传一次心跳,是不是有一些异常的情况?原先没有用SLS的时候,测试人员需要自己写代码去open search里面去捞数据,捞完了之后用jackets跑一些程序,跑完了之后,把相关的一些时间字段给提取出来做对比,最后形成可视化的视图。

这件步骤全部需要通过写代码来实现,大约需要耗时一整天,使用了SLS之后,整个过程变得很简单,一共就只有六个SQL语句。首先把时间戳进行转化,然后把相关的字段给提取出来,提取出来之后,插入另一个分区的相同字段,然后最后把这两个字段进行对比最终得出了一个可视化的图。通过SLS,直接使用六行SQL语句就把所有要的信息给拿到了。原来可能需要一天时间完成的事情,30分钟就做完了。

另一个是告警的场景。从设备上发送上来的日志里是没有包含属性信息的,比如设备来自哪个门店,哪个城市,这些信息都放在一个外表中,那我们就把这个外表做成一个CSV的文件,放到OSS中。然后SLS可以从OSS中读取这个文件去丰富日志内容,将设备的属性信息添加到日志中,从而实现在告警时显示设备的详细信息。

基于SLS构建的业务可观测平台对新零售业务来说,实实在在提高了研发、测试和运维效率,帮助我们把这个业务做好。我今天的分享就到这里,谢谢大家。(正文完)

阿里云解决方案架构师李晨:百万级价签系统的实时洞察与创新实践

如果觉得《阿里云解决方案架构师李晨:百万级价签系统的实时洞察与创新实践》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。