在2021年8月13日-8月15日期间,全球500强著名的云计算及大数据信息管理技术领导者 — 戴尔Dell EMC科技集团举办了一项围绕Pravega的国际创意大赛,一时间23个参赛队云集,包括了高手如云的BAT大厂云团队。
思迹参赛团队在队长Fly Yu的带领下,全体成员饱含创造智慧,积极参与,疯狂coding和废寝忘食地联调,志在必得。最终结果也可喜可贺,思迹团队在23个参赛队中脱颖而出,以“芯片软件CI/CD大数据分析与状态监测”的成果交付而荣获该创客大赛的第一名。
我们都知道,CI(Continuous Integration)/CD(Continues Deployment)在软件的开发/迭代过程中扮演着非常重要的角色,在嵌入式的世界同样如此。
随着物联网, 智能驾驶,机器学习,5G等技术的快速发展,对嵌入式系统尤其是软件的要求越来越高,一方面软件要足够灵活,能够根据实际需求进行定制和剪裁,以满足功耗和存储的限制;另一方面对软件的准确性、安全性以及稳定性有着更严苛的标准。
实际项目中,我们嵌入式SDK(Software Development Kit)面临的是需要适配的硬件种类越来越多,而且复杂程度越来越高,从ARM Cortex-M0/M4/M7/CM33,到ARM-Cortex A 系列,以及包含DSC/DSP等各种架构, 硬件类型多达60种。除此之外一个完整SDK不仅要提供基础的BSP和driver层的支持, 也需要对三方middleware的集成,以方便客户进行二次开发。比如支持主流的RTOS,图形图像处理,机器学习,音频处理,电机控制等等热门领域。
这么一个复杂的SDK,对软件质量的把控带来了巨大挑战。测试点组合多,测试分支复杂,测试项繁多,测试结果和日志数据巨大,往往需要投入不小人力和时间成本去人工分析,以至于测试结果难以汇总,软件整体质量很难把控,尤其是难以得到真实数据的支撑,也很难从历史数据上得到有用的信息,这样的CI/CD已经严重拖累了SDK的开发、迭代。
CI/CD 的痛点之一是数量巨大的测试日志分析,人工分析慢,耗费的时间长。嵌入式软件日志通常没有固定的格式,主要有:软件编译日志,固件下载日志,测试执行日志。日志的分析目的是为了找到日志当中最有价值的信息,并且能够通过分类,达到快速归类和定位问题,从而帮助开发者迅速修复问题。
CI/CD的痛点之二,软件质量/状态无法有效监控。软件开发是一个非常不确定的过程,需求变化,架构调整,人员变动,都可能对软件质量带来很大的风险。因此对于软件整个开发过程的控制是十分重要的,这就需要有真实数据的支撑,需要了解当前迭代版本的各种细节,从而才能掌控全局,减少软件质量风险。
基于以上的分析,我们急需解决的是SDK CI的状态和结果分析。Apache Flink是目前主流的数据分析引擎,而Pravega 是一个非常优秀的流式存储引擎,支持定义各种各样的数据处理方式,配合Flink可以实现各种数据的实时复杂数据的处理需求, 能够提供良好的实时性和一致性。
上图是此项目的架构。CI生成的流式日志数据,属于流式数据,经过filebeat + logstash对数据进行简单的清理,源源不断的写入Pravega stream。Pravega支持数据的持久化,并且提供弹性的无限扩展能力。因此对于日志数据来讲Pravega太合适不过了,不仅免去了额外的存储需求,而且Pravega也能对数据进行缓冲, 达到削峰填谷的作用。Pravega的引入极大的简化了系统架构,提高了系统的并发能力。
数据处理部分,采用了基于朴素贝叶斯算法的模型。朴素贝叶斯算法简单有效,常用于文字的分类,例如垃圾邮件检测等。在我们的模型中,选用关键词和短语作为特征值,经过大量历史日志训练,基本上可以达到95%以上的准确率。
在Flink job部分,以UDF的方式嵌入上述模型,Pravega Stream充当数据源。Pravega的特性决定了event不会被遗漏,重复,或者乱序处理。如果配置得当,Flink Job 还可以自动从故障中断的地方恢复。
Pravega提供了非常棒且易于使用的flink-connector, 经过处理的数据的写入业务数据库MySQL存储, 最后通过Grafana 完美的呈现一个动态、实时的可视化报表。
实时的可视化状态监控报表,支持查看任意历史时间点的状态。报表中提供了整体软件测试的结果汇总,各编译器编译速度的分析,硬件平台的测试进度,以及具体测试失败原因的预测和分类。与此同时,通过对pravega的进一步整合,CI系统可以借助pravega实现web端的实时log,服务器后端从stream读取数据由websocket发送到浏览器前端,解决了旧的设计中日志丢失的巨大缺陷,精简了数据处理端系统的复杂度。
本文的解决方案落地以后,很大程度上解决了SDK CI的痛点,软件开发迭代效率有了很大的提高,整个开发测试成本;并且数据对于改进SDK的开发的流程以及对CI系统的优化提供了可靠的依据。
总之,此项目的价值体现于以下几个方面:
1. 实现了实时的流式数据分析和实时的可视化系统,支持历史数据和实时数据的统一分析处理。构建一个实时的数据分析平台本身是极其复杂的,好在基于Pravega 和Apache Flink的架构简化了系统复杂度,包含但不局限于实时数据的收集,转换,聚合,校验,分析,存储,可视化等等各种数据场景。
2. 项目易于落地。Pravega和Apache Flink一样,周边生态很丰富,提供了各种插件和多种语言的客户端;而且Pravega 和 Flink 也都具有高可用和易于扩展的特性,在实际落地过程中,可以根据实际情况进行适配;由于设计之初Pravega就考虑到了云应用的场景,所以很容易使用容器编排。本项目全部基于docker开发,整个过程对于开发、测试和部署来说非常方便,极大的简化了落地成本。
3. 基于贝叶斯算法的AI可以对原始不规则日志进行实时清洗和筛查,解决了如何对日志分析进行筛查的难点。朴素贝叶斯算法简单高效,特别适合文字、日志分类。合适的特征选取,可以快速适配各种日志的分析或分类,准确度高,易于实现。
回到我们这一获奖“大事”上,创客大赛的成功不仅让外界看到了我们思迹团队在芯片研发自动化测试和大数据分析处理领域的技术实力和卓越表现,同时这一惊喜“大事”值得所有“思迹人”为之庆祝。
这次大赛对于“思迹人”来说,充满困难,但也有着挑战。为了超越竞争对手,团队成员心中都捏着一把汗,但同时每个成员心中又有一团火,不甘示弱。最终通过精湛的技术与智慧战胜了他们。
最后,子曰:“创意人人有,而最最突出的那个人会获得最大的成功”!也希望此次比赛能给大家信心鼓励,如果你有想做的梦,不妨放心大胆去冲,祝大家都能获得属于自己的成功!
2021-08-17
在2021年8月13日-8月15日期间,全球500强著名的云计算及大数据信息管理技术领导者 — 戴尔Dell EMC科技集团举办了一项围绕Pravega的国际创意大赛,一时间23个参赛队云集,包括了高手如云的BAT大厂云团队。
2021-10-11
2021世界智能网联汽车大会在北京中国国际展览中心举办。结合汽车产业智慧变革、绿色发展的新特征,2021世界智能网联汽车大会以“引新荟智 绿创未来”为主题,围绕产业再造、融合应用、和合共生三个篇章展开。
2021-10-09
2021年10月9日,思迹信息官方微信公众号“思迹信息“发出第一篇推文《思迹报道》并正式投入使用。从此以后,”思迹信息“将作为一个专门的公司新闻咨询频道与员工关怀渠道。
Copyright © 2014-2018 T-footprint All Rights Reserved.
沪ICP备17008576号