首页 > 其他分享 >1 名工程师轻松管理 20 个工作流,创业企业用 Serverless 让数据处理流程提效

1 名工程师轻松管理 20 个工作流,创业企业用 Serverless 让数据处理流程提效

时间:2024-04-28 14:01:08浏览次数:27  
标签:Serverless 20 处理 流程 平台 数据处理 提效 数据 语势

作者:岳洋、陈德全、刘静娜

北京语势科技有限公司成立于 2023 年 6 月,语势科技定位为“智能投资时代的主题入口”,在资管行业从以机构为核心转向以用户为核心的变革时代,通过打造主题投资引擎,赋能普惠投资一体化,打造以投资者和资管机构为主题和核心、自然语言交互形式为入口的“新桥梁”。

语势科技日均处理万条金融资讯,通过收集信息、发掘新兴趋势、判断趋势拐点,形成了包含 10+ 个超级主题、40+ 个投资主题、200+ 子主题的主题投资体系;现有 10 个行业标杆客户, 通过数据 API 和周报月报等形式提供服务。目前已累计发出约 500 份报告,近 1000 份公众号分析文章。 远期将通过实时挖掘用户意图和进行主题计算,实现千人千面的主题投资 Agent。

平台特点及遇到的挑战

语势科技的产品属于典型的信息服务类产品。平台通过多种渠道汇集金融行业资讯并存储到本地后,按照投资分析框架启动相关流程进行处理,最终形成金融数据产品对外提供服务。平台业务功能及对系统资源的需求存在如下特点:

1. 数据量大,存储需求多样

a) 平台的核心数据以非结构化数据为主,各个处理阶段的数据包括源数据、中间数据及结果数据总量在 TB 级别,虽然这个量级对于文件或对象存储来讲是小菜一碟,但是对于分析/索引类存储还是存在一定压力。

b) 非结构化数据存储在面对不同的处理过程时,需要多种访问接口支持,包括文件、对象、OLAP 数据库和缓存及索引系统等。

c) 金融资讯的处理需要满足时效性要求,因此对于分析型存储系统的查询性能也存在较高要求。

2. 数据处理过程复杂多变

a) 数据处理流程是投资分析策略在系统中的体现,是整个平台的核心。这些流程中的关键节点处理逻辑是无法通过标准化的平台功能实现,需要通过 Java/Python 代码发布到平台,并可以由流程灵活调用。

b) 为了实现业务逻辑需求,在处理流程上各处理节点之间,以及节点和数据存储接口间,甚至各流程间都存在频繁的数据流动和交互需求。

c) 投资策略需要及时针对市场变化和客户需求进行调整。数据处理流程甚至核心处理逻辑就需要同步按照业务策略进行调整。

d) 因为数据处理逻辑的复杂性,导致开发上线后,还经常需要在生产环境针对特定数据的处理过程进行跟踪和分析,需要能够方便查看详尽的运行时信息。

3. 平台资源需求存在明显峰谷

a) 平台在全天运行期间会存在固定峰值,包括资讯集中流入和处理时段,业务人员集中查询时段。同时,在周初和月初也存在访问峰值。

b) 峰值时段对处理性能扩容比例要求较高,且不同的峰值类型对系统资源的需求类别也不一样,需要针对不同场景进行扩容动作的预先规划。

4. 可靠性/及时性要求

a) 资讯会 24 小时持续产生并流入平台,需要在进入平台若干分钟内处理完成并进入对外服务数据池,因此需要平台能够稳定持续进行处理,遇到峰值流量自动扩容以避免数据积压。如果处理过程存在遗漏或者出错要能够自动重试。

b) 对外服务相关系统作为最终用户的访问入口,对其服务连续性有一定要求。

针对上述的平台功能设计,语势科技对包括 IaaS/PaaS 在内的 IT 基础设施产生了如下需求:

1. 多样存储类型,各系统间流畅互访, 支持多样存储类型,各类存储系统间可以无缝互访,日常使用、管理和数据流转可以通过 GUI 配置。

2. 简单灵活的数据处理流程

a) 提供统一的处理流程管理入口,支持图形化的流程设计。

b) 支持使用常见开发语言实现复杂业务逻辑,并能够无缝嵌入流程。

c) 流程节点间,流程和数据存储接口,流程间可以实现复杂交互控制。

d) 可以对运行时流程跟踪分析处理过程,能够方便的对特定数据或流程进行跟踪分析。

3. 系统自动扩缩容

a) 数据处理流程的系统容量能够按照流量峰谷自动扩缩容,且其扩缩容可以按照一定脚本针对系统间依赖关系进行处理。

b) 其他业务系统需要按照业务访问峰谷自动调整。

4. 研发工作整体提质增效

a) 在保证系统可靠性的前提下,降低IT资源直接成本,以及管理成本b) 提高 CI/CD 整体流程效率。

云工作流 CloudFlow + 函数计算 FC 助力复杂数据处理提

语势科技是在云原生浪潮下诞生的数据科技企业,在创立之初就决定采用云原生技术来提高 IT 工作整体质效并优化成本。

在提升质效过程中遇到的挑战主要集中在数据处理流程方面,因此除了使用阿里云效及容器化部署等 CI/CD 常规提效工具,经过团队考察,最终选择了云工作流 CloudFlow 和函数计算 FC 两个新产品。目标是通过云工作流 CloudFlow 解决管理复杂数据流程的需求,使用函数计算 FC 解决云工作流 CloudFlow 运行过程中部分节点处理复杂业务逻辑,同时处理能力可以完美解决弹性伸缩的需求。

数据流程图如下:

经过实践发现,对于常见的工作流,使用云工作流 CloudFlow 的 Web 界面开发相比使用主流 Java 应用框架减少约一半开发工作量,同时,由于省去了上线发布环节,上线调试工作效率也有所提升,基于 web 控制台的跟踪调试在经过一段时间适应后使用效率也有较大提升。

在这半年的使用期间,语势科技已累计开发了将近 20 个工作流,工作流调用数十个函数,运行几十万次。尽管在只有一名工程师负责工作流的情况下,还是能够保持平均每两周左右会上线一个新的工作流。对于工程师来讲,除了个别时候需要进行线上跟踪调试,工作流上线后基本不用关心其运行状态,真正做到了“发布后不用管”。

展望

作为一个大模型年代围绕数据为核心的创业企业,我们会更加深度挖掘数据平台和大模型能力结合的可能性,通过阿里提供的基础设施创新能力,提供给我们的最终客户能力更强、迭代更快的数据产品。

标签:Serverless,20,处理,流程,平台,数据处理,提效,数据,语势
From: https://www.cnblogs.com/alisystemsoftware/p/18163624

相关文章

  • P1173 [NOI2016] 网格
    P1173[NOI2016]网格分讨+建图+点双分析一下替换个数的上界,发现最多为\(2\),因为最坏情况下,也仍存在一个位置只有两个出去的方向(即边缘),堵住即可。那么现在答案就只有\(-1\)、\(0\)、\(1\)、\(2\)四种情况。分开讨论:\(-1\):当图中只有一个跳蚤或者只有两只跳蚤连在一起时\(0......
  • VS2008 LIB的升级改造
    今天用VS2019编译一个在VS2008下Coding的工程的时候,VS给出了一堆链接错误信息,如下图所示的一些错误: Error47errorLNK2019:unresolvedexternalsymbol"public:__thiscallstd::_Mutex::~_Mutex(void)"(??1_Mutex@std@@QAE@XZ)referencedinfunction"public:void__t......
  • VS和jetbrains比较容易忘记的几个快捷键(更新至20230428)
    //PS:这几个是我经常忘记的,记录一下,//         暂时只记录用到的,其他的用到后再去补充添加,后面会陆续补充。 VS2022Ctrl+T :在所有代码里面搜索的快捷键,(不是Ctrl+Q)快速搜索并定位文件名称的快捷:在当前文件快速搜索函数名称的快捷键: JetBrains在所有......
  • 【2024-04-26】新的启程
    20:00不要只想着成功,你越想成功,就越容易失败。成功就像幸福一样,可遇而不可求。它是一种自然而然的产物,是一个人无意识地投身于某一伟大的事业时产生的衍生品,或者是为他人奉献时的副产品。幸福总会降临的,成功也同样:常常是无心插柳柳成荫。            ......
  • [GYCTF2020]FlaskApp
    [GYCTF2020]FlaskApp打开环境是一个base64编解码的网站提示里是一张图片源码提示PIN尝试输入错误字符看看页面结果,于是在解码页面输入123有源码泄露@app.route('/decode',methods=['POST','GET'])defdecode():ifrequest.values.get('text'):text=r......
  • [pwn]XYCTF 2024 个人WriteUp
    目录XYCTF2024WriteUp>pwn1.hello_world(签到)2.invisible_flag3.static_link由于本人菜鸡和时间问题,只打了前两周,打出了pwn的三道简单题目,记录自己的做题过程,如何后续复现可能也会更新。XYCTF2024WriteUp>pwn1.hello_world(签到)常规checksecIDA反编译进入主函数发......
  • 实验三202383310064闫忠奥
    实验一#include<stdio.h>#include<stdlib.h>#include<time.h>#include<windows.h>#defineN80voidprint_text(intline,intcol,chartext[]);voidprint_spaces(intn);voidprint_blank_lines(intn);intmain(){ intline,col......
  • P3920 WC2014 紫荆花之恋
    P3920WC2014紫荆花之恋毒瘤题目,动态点分树。前置科技点替罪羊树高速平衡树(除去fhq_treap和splay之外的所有平衡树)约定\(dis(u,v)\)为原树上\(u,v\)两点间的距离\(siz\)为子树大小思路维护一棵可以动态插入节点的点分树,有点权和边权,求任意两点点权和大于两点......
  • 2024年 ▇▇▇▇大学嵌入式系 综合实践 全过程记录
    2024年▇▇NU嵌入式系综合实践全过程记录写在结课答辩完成后:这是一门失败的课程,在我们眼中看来,这更像是▇▇▇▇▇▇大学软件工程学院的近年来在本科人才培养改革失败上的集中体现和必然结果。落后于主流的课程设计、古老的实验设备、部分教师的不作为与死板固执、学生不......
  • 20240427打卡-02构建之法阅读笔记之一
    在一个团队里,每个人的代码风格不一样,并且每个人负责不同的模块,而最后整合的时候就会出现困难,明明在自己的电脑上可以运行,但为什么到别人的电脑上就会报错,就好比这次团队作业的一个功能,一个人实现了图片的上传功能,但是在别人的电脑里无论如何也实现不了。如何能让自己负责的模块功......