客户案例 > 案例详情

1 名工程师轻松管理 20 个工作流,语势科技用 Serverless 让数据处理流程提效

客户介绍

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

业务挑战

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

平台业务功能及对系统资源的需求存在如下特点:

数据量大,存储需求多样

平台的核心数据以非结构化数据为主,各个处理阶段的数据包括源数据、中间数据及结果数据总量在 TB 级别,对于分析/索引类存储存在一定压力。

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

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

数据处理过程复杂多变

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

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

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

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

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

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

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

可靠性/及时性要求

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

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

阿里云的解决方案

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

多样存储类型,各系统间流畅互访

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

简单灵活的数据处理流程

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

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

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

  • 运行时流程分析与处理,能够方便地对特定数据或流程进行跟踪分析。

系统自动扩缩容

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

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

研发工作整体提质增效

  • 在保证系统可靠性的前提下,降低 IT 资源直接成本,以及管理成本。

  • 提高 CI/CD 整体流程效率。

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

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

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

子案例正文
业务价值

实践证明,对于标准的工作流,与使用传统的 Java 应用框架,采用云工作流 CloudFlow 的 Web 界面开发,开发工作量几乎减半。此外,由于省去了上线发布环节,上线调试工作效率也因此得到了提升。尽管 CloudFlow Web 控制台的跟踪调试功能需要一段时间的适应,但整体工作效率有了较大提升。

在过去六个月的使用过程中,语势科技已成功开发将近 20 个工作流,工作流调用了数十个函数,总运行次数几十万次。即便是在只有一名工程师负责工作流的情况下,还是能够保持平均每两周上线一个新的工作流。对于工程师来说,一旦工作流上线,通常无需过多干预,除了偶尔需要在线上进行跟踪和调试,工程师基本不必关注其运行状态,实现了“发布即无需维护”的效果。