Lightflus 的技术架构介绍

电子说

1.2w人已加入

描述

我们需要什么样的数据计算框架

关注过我的读者可能会记得我之前发表过一篇文章介绍过现代数据栈

现代数据栈

基于其中的思考,我尝试去写了个现代数据栈中比较重要的一个组件:流计算引擎。因此,我很高兴在这里给大家介绍 Lightflus ——这款新的云原生分布式流计算框架。'flus' 取自德语,在英文中为 'flow',流的意思。Lightflus 如其名,是一款轻量的流数据计算引擎;

Lightflus 诞生的原因是为了解决目前的主流计算框架 Spark 和 Flink 存在的问题:

门槛高:Spark 和 Flink 的上手门槛比较高,需要招聘有相关经验和技术能力的人来开发;

成本高:企业要投入较多资源和人力来搭建一个数据系统,且需要很专业的基础架构团队协助,但 Data 却往往不是企业的主营业务;

非云原生:在目前基础设施上云的大趋势下,Spark 和 Flink 虽然也在往云原生的方向发展,但由于历史遗留问题,进展比较缓慢;

这些问题进一步导致了:

重复建设,浪费资源,各家都要自己做一套基础架构来满足内部的数据需求;

中小企业或没有 IT 背景的传统企业的数据需求难以满足,数字化转型风险加剧,举步维艰;

于是我决定做一款新的计算框架来解决以上这些问题,Lightflus 由此诞生了。

Lightflus 的设计理念

Lightflus 是为绝大多数开发者设计的,其目的不是为了平替 Spark 和 Flink,而是让一个从未接触过流数据计算框架的开发团队也能快速上手并部署流数据任务到生产。需要强调的是,Lightflus 不是一款为了超越 Flink 性能 N 倍而设计的流计算引擎,它的目标是为了让小团队和大型企业都能低成本地去开发流数据的价值。

让 Developer 而非专门的数据开发工程师去做这件事,好处有四

developer 更清楚业务流程,自然也更清楚数据是怎么流动和变化的;

因为 developer 更清楚数据源的背景知识,他们能快速写出可以直接产生经济价值的代码;

developer 比起数据开发,更加深入了解目前的 infra,与 OPS 的长期合作也能让团队协作更顺畅;

对于开发团队的管理者,能将 DevOps 引入,形成 DataOps,提升研发管理效率,降低发布风险;

基于这些好处带来的优势,Lightflus 从草创起就专注于让普通开发者也能像写 stream 代码一样写流数据任务

Lightflus 的技术架构

Typescript API + Rust Runtime

Lightflus 提供 Typscript API,为了能让 Typescript 编写的 UDF 高效运行,Lightflus 将 v8 引擎 嵌入 Rust 实现的核心,通过 embedded v8 engine 来运行编译后的 JavaScript 函数。在未来,我们还将支持 WebAssembly 来加强性能;

Architecture

Lightflus 沿用主流的 Coordinator-Worker 的分布式计算架构,以满足未来对可用性、高扩展性、容错等的需求

k8s 和 Docker 支持

Lightflus 将于 release 版本支持 k8s 部署(意味着可以上生产的级别),demo 版本和 preview 阶段只提供 Docker 的支持;

对主流 cloud 的支持

在 release 1.x 以及之前的阶段,Lightflus 计划只公开支持 AWS,但是 Lightflus 本身是云中立的,理论上任何云都能很好运行 Lightflus。

编辑:黄飞

 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分