7 月 31 日至 8 月 1 日,由开放原子开源基金会与 Linux 基金会亚太区联合开源中国共同举办的“全球开源技术峰会 GOTC 2021 深圳站”在深圳会展中心圆满召开。峰会汇聚国内顶尖开源厂商和开源社区成员,吸引了来自全国各地的数千名开源爱好者参会,共话中国开源生态的发展趋势。
在 GOTC 深圳站峰会上,百度带来多个技术领域的开源产品和落地实践,包括自动驾驶平台Apollo、七层负载均衡 BFE、函数计算引擎 EasyFaaS、云原生数据库Doris、百度超级链、AI Edge、云边融合 Baetyl 等。其中,百度Apollo自动驾驶开放平台拥有全国最大的自动驾驶车队,规模超过了 500 辆,落地全国 30 座城市,取得了 293 张测试牌照,总路测里程突破了 1300 万公里,相关的专利达到了 2900 多件。百度超级链成立首个区块链SIG小组,在哈尔滨工业大学、云南大学等高校落地区块链课程,开源生态逐渐繁荣。百度智能云边缘计算团队在 LF Edge Akraino 项目中创建了 The AI Edge Blueprint Family,已经落地包括智能驾驶、视觉 AI、AI 安防、边缘联邦机器学习等项目。BFE项目于今年 6 月正式上线 1.2 版本,已聚集 80 多位来自不同公司或组织的贡献者。落地用户案例涵盖银行、媒体、保险、交通运输、互联网等行业。百度一直坚持开源共享、繁荣生态的理念,希望能与更多开发者一起共同打造前沿技术的开源生态。
云原生开源计算领域:七层负载均衡 BFE、函数计算引擎EasyFaaS
七层负载均衡 BFE
2019 年 7 月,百度核心七层负载均衡转发引擎BFE对外开源。 BFE(Beyond Front End),其前身是百度从 2012 年开始建设和使用的现代化的七层负载均衡和流量转发平台,2014 年使用 Go 语言重构。目前,BFE在百度每日转发请求达到万亿级别,日峰值QPS超过 1千万。
自开源以来,BFE 产品快速迭代,20 个月发布 15 个版本,至今年 6 月,正式上线 1.2 版本。7位维护者,来自百度、快手、字节跳动;80+位来自不同公司或组织的贡献者;收到 800+ 提交,4800+ stars;落地用户案例涵盖银行、媒体、保险、交通运输、互联网等。2020 年 6 月,BFE 成为 CNCF Sandbox Project,这也是中国首个网络方向的 CNCF 开源项目。
百度资深产品专家宋健介绍了 BFE 的技术特性。一是高安全性和稳定性,BFE 基于 Go 语言开发,在内存管理方面内存泄露的风险大大降低,可以捕捉异常,使运行更加稳定。以百度为例,在百度的规模下 BFE 平台稳定运行,已经支撑了百度集团绝大部分的流量转发。二是功能快速开发,因为 BFE 有良好的模块化插件化设计,Go 语言代码又易于编写和维护。三是复杂场景支持,BFE 开源可以支持多租户模型,有强大的路由转发模型,支持多数据中心/多容器集群调度。四是运维友好支持,内置大量状态探针,这些探针数据可以以 Prometheus 的格式对外暴露,适合对接基于开源生态搭建的监控和运维可视化平台,支持配置动态热加载。这也是很多用户采用 BFE 的原因,此前配置加载对于业务会产生一定影响,BFE 支持动态热加载,可以实现更高的可用性。
函数计算引擎 EasyFaaS
随着云计算技术的演进,Serverless 技术因其优势越来越受到关注。百度云原生团队为了更好地推广Serverless技术,2021 年 4 月 6 日,百度函数计算引擎 EasyFaaS 开源。
百度云原生 Serverless 高级研发工程师何守芬介绍,EasyFaaS 项目灵感来源于何守芬所在团队在探索一些函数计算应用场景时的发现。据何守芬介绍,EasyFaaS 来源于百度云原生团队对 CDN 边缘计算的一些业务场景探索。在 CDN 节点上,有很多关于在边缘上基于用户自定义的一些请求的裁剪,视频编解码等这样需要将算力放到边缘的需求,非常适合使用函数计算来满足用户这样的需求。
团队之前在做的时候首先想到的是直接将云上已有的函数计算服务部署在边缘,但是失败了,原因在于边缘计算场景与云端IDC机房有很大差别,它的集群环境更加复杂,中心与边缘节点之间的通信容易受到网络质量影响,同时公有云上函数计算产品有很多依赖,比如ETCD,中心的K8S等服务,中心组件的运维成本比较高,因此团队想要设计适合边缘计算场景的函数计算引擎,拥有适配性强,资源占用少,依赖轻,无状态和自治的特点,因此就有了 EasyFaaS。
EasyFaaS核心技术主要体现在三方面。第一高内聚,EasyFaaS 引擎可以作为最小服务单元,本身无状态且内部自治。第二高弹性,支持动态调整,比如函数实例容器资源大小可以进行动态容量调整,代码运行时也支持动态挂载及卸载。第三高性能,一些技术使用了多层缓存机制,为了降低冷启动时延,预启动了资源池。目前,EasyFaaS 的功能框架也分为三层。一是产品功能方面,提供基本函数源信息管理、代码包管理、版本管理、灰度发布。二是请求控制与容器调度,支持函数调用请求非常快地调度到对应的用户工作容器、并发控制、错误重试功能。三是底层依赖容器网络技术,还有因为函数计算需要语言运行,我们对于多语言运行时和运行挂载都做了相应处理。
边缘计算领域:边缘 AI 的云原生落地实践、智能边缘融合端云的技术实践
边缘 AI 的云原生落地实践
据市场调研机构 MarketsandMarkets 预测,全球边缘人工智能Edge AI软件市场规模将从 2018 年的 3.56 亿美元增长到 2023 年的 11.52 亿美元。IDC 预测, 到 2024 年,全球企业在边缘应用上的支出将达到 2,500 亿美金,其中与硬件+AI 相关的支出将达到 326 亿美元,占整体边缘市场支出的 13。但是市场需求旺盛的大背景下,AI 落地边缘仍然面临很多挑战。
百度智能云边缘计算部架构师孔德超以“边缘 AI 的云原生落地实践”为题演讲,他指出,目前边缘算力有限,使用场景复杂,如何让 AI 在边缘高效落地,算力最大化使用是亟待解决的问题。为此,百度做了一系列的布局,打造边缘 AI 云原生生态。
2019 年,百度智能云边缘计算团队在 LF Edge Akraino 项目中创建了 The AI Edge Blueprint Family,目的是解决 AI 在边缘如何落地的问题。The AI Edge Blueprint Family 已经落地包括智能驾驶、视觉 AI、AI 安防、边缘联邦机器学习等项目。
此外,百度还创建了云边容器引擎 + 边缘AI弹性计算框架,构建一体化开源方案——AIEdge 开源方案,在资源有限的情况下,通过算子编排,算力调度,最大化利用算力。发布适配于单机的边缘 AI 调度框架 AIEdge Lite,采用更轻量的算力调度,最大化利用算力,完成更多的 AI 任务……
智能边缘融合端云的技术实践
百度智能云物联网主任架构师李乐丁介绍,百度对边缘计算采取非常开放的态度,百度在边缘计算上的开源战略是向开发者提供 Opensource 方案,借助合作伙伴的力量共同组建一个包含硬件、软件和中间平台在一起的完整的端到端的解决方案。
李乐丁着重介绍了 Baetyl 项目。Baetyl 是 Linux 基金会旗下开源项目,其目标是为边缘侧的设备提供标准的云原生的编排能力,从而让边缘和云连接一起。Baetyl 的作用是沟通边缘计算和云计算的粘合剂。百度在云上有非常多强大的能力,如百度的 Apollo,以及其他友商提供的服务,百度希望能够利用云上强大的计算能力不断地迭代数据模型和 AI 模型,让我们有更好的知识和认知能力。另一方面让 AI 上的项目处理隐私和身边的事件,如何将两个不同的元素结合在一起?Baetyl 希望承担其中的责任。
回归到 Baetyl 本身,Baetyl 支持将云计算将云计算的应用无缝扩展到边缘,使云和边缘的数据实现自由交换;具备跨平台特性,支持 x86/ARM/MIPS CPU,各类 GPU 和神经网络芯片。
LF AI amp;DATA Forum 2021:百度Apollo自动驾驶开放平台
2013 年起,百度就开始了自动驾驶领域的研究,希望能够发挥百度在人工智能领域技术优势,普及自动驾驶技术发展,从而带动全行业创新能力的提升。在 2017 年 4 月以前,主要以百度内部研发为主。2017 年 4 月以后,百度正式宣布了 Apollo 计划,推出了全球首个自动驾驶开放平台Apollo。现在,百度Apollo已经成长为全球最活跃的自动驾驶开放平台,拥有全球生态合作伙伴超过210家,汇聚全球开发者 65000 名,开源代码数60万行。Apollo自成立之初就在不断探索开源道路,在每个阶段,都致力于将已有的积累以开源开放的方式同行业分享,拓宽自动驾驶技术领域,加速创新引领行业的发展,全面赋能整个行业。
百度 Apollo 资深技术布道师胡旷介绍,Apollo 开放计划是百度自动驾驶历史中的重要里程碑事件。截至目前,Apollo拥有全国最大的自动驾驶车队,规模超过了 500 辆,落地全国 30 座城市,取得了 293张测试牌照,总路测里程突破了 1300 万公里,相关的专利达到了 2900 多件。百度不仅拥有 T1-T4 各级测试的牌照,而且是中国第一家也是唯一一家获得 T4 牌照的企业。从Apollo 1.0到Apollo 6.0 EDU版本,Apollo经历了10次迭代更新,每一次都向着贴近开发者的实际需求更近一步,解决实际研发中的问题,成为更完善的自动驾驶解决方案。Apollo 6.0 EDU更是专注教育生态建设,助力自动驾驶领域培训更加适合的人才。
实现更加深刻的开源,赋能自动驾驶行业,构建持续向好的自动驾驶生态体系,是Apollo当下的要务。赋能绿色智慧矿山,助力大国工业,让技术深入生产生活各个领域,让开源惠及更多开发者、合作伙伴,共同推动自动驾驶生态良性循环,加速自动驾驶时代的快速到来。
“从开放开源之初,Apollo 秉承开放能力,共享资源,加速创新、持续共赢的理念,得到了业界的广泛认同,接下来 Apollo 将持续赋能自动驾驶的发展,也愿意与众多的开发者和合作伙伴一起不断推动自动驾驶行业创新发展。”胡旷表示。
大前端领域:Apache ECharts 5 背后的技术升级
2018 年 3 月,百度将 ECharts 项目捐赠给 Apache 基金会,ECharts 成为了 Apache 基金会孵化级项目,同时也是首个由百度贡献给国际顶尖基金会的开源项目。2021 年1 月 26 日晚,Apache 基金会正式官宣 Apache ECharts 顺利通过孵化阶段,毕业晋升为 Apache 顶尖项目。
Apache ECharts 核心开发者,百度资深研发工程师宿爽在 GOTC 现场分享了 Apache ECharts 的现状和技术升级。目前,Apache ECharts 的 npm每周下载量31万多,GitHub依赖项目151K,周边项目7606,代码贡献者165 位,正式committers 25个,项目管理委员会成员14位。
最新版本 Apache ECharts 5 分五大模块:动态叙事、视觉设计、交互能力、开发体验、可访问性。其中交互状态增强方面,包括为所有系列提供选中和淡出状态、数据的单选和多选、系列的聚焦外淡出、标签和自定义系列的聚焦外淡出等等。折线图的高性能绘制绘制方面,包括一千万数据缩放平移、使用 TypeArray 减少内存开销 、LTTB 降采样 (LTTB Down Sampling)。迁移为 TypeScript,迁移主体工作集中完成,遵循逻辑等价变换(不边迁移边重构)。迁移之后可带来提高代码可读性、重构的正确行保证、避免不易发现的 bug、对于 ECharts 使用者使得类型精度大幅提高等等益处。脏矩形渲染方面,现在可只擦除画面中有修改的部分。叙事能力提升包括自定义系列的过渡动画配置等等。
数据库领域:云原生数据仓库 Apache Doris
Apache Doris 的历史最早可以追溯到 2008 年,当时主要服务于百度凤巢的统计报表,随着百度业务的飞速发展对系统进行了多次迭代和升级,并于2017 年正式对外开源,2018 年更名为 Doris 并捐献给 Apache 基金会。Apache Doris PPMC,来自百度的资深研发工程师陈明雨介绍了选择 Apaceh Doris 的几个理由。
一是足够简单。系统架构方面,Doris采取主从架构,系统有两类进程模块,FE模块作为管控节点主要负责用户请求接入、元数据存储以及解析查询计划等工作,BE模块主要负责执行查询计划以及数据存储,任何节点都可线性扩展,而且不依赖任何第三方组件,包括HDFS、Zookeeper等,最大化降低了分布式系统的运维成本。SQL支持方面,Doris在FE模块上实现了MySQL兼容协议层,用户使用标准MySQL客户端即可方便地连接到Doris,并且Doris还支持标准SQL语言。Doris的分布式管理框架可以自动管理数据副本分布、修复和均衡,副本损坏时Doris可以自动感知并修复,节点扩容过程仅需一条SQL语句即可完成,整个过程不影响线上业务运行,后台自动进行数据的迁移和数据分片的负载均衡。同时Doris升级方式极其简单,只需替换二进制程序、滚动重启集群即可,升级过程中Doris还具备一些查询自动重试和故障理由功能,可以极大程度减少对业务侧的影响。
二是足够高效。存储引擎方面,Doris具备一个高效的列式存储引擎,可以获得极高的压缩率。在存储结构上采用多种编码方式、自适应编码、按需读取;在索引结构上方面,Doris提供了丰富的索引结构来帮准加速数据的读取和过滤,包括数据写入时自动生成的智能索引(如前缀稀疏索引和MinMax索引),以及用户自主在某些列上添加的二级索引(如BloomFilter、倒排索引等)。同时在读取逻辑上Doris也有很多优化,如延迟物化功能,先过滤、再取数,减少查询请求对 IO的资源消耗。
查询引擎方面,Doris是基于 MPP 的火山模型,通过MPP查询框架实现了数据Reshuffle能力,更好利用多节点资源进行数据处理。同时,Doris还对很多查询算子进行了优化、例如Runtime Filter等,开启功能后查询延迟得到极大幅度降低。 Doris还 在查询优化器方面也做了大量的工作,能够同时进行基于规则和基于代价的查询优化。
三是功能丰富。Doris能够支持高并发的在线服务场景的,单节点可以支持上千QPS的查询请求;还支持 SQL 级别和 Partition 级别的 Cache,非常适合查询频繁的场景;同时,Adhoc这类高吞吐的即席查询和库内ETL也是Doris的强项,在TB级别数据上Doris可以部分代替Hive等离线系统的功能,在一套系统中满足所有需求。在用户行为分析业务中,Doris通过Bitmap数据类型进行高基数精准去重,非常适合用户留存分析、漏斗分析以及用户画像圈人等场景。Doris还可以通过物化视图加速查询响应,并能支持基于主键的数据更新。
四是开源开放,Doris 目前每周的活跃贡献者能够达到20多人,Contributor数量也已经到达 180+,社区呈现活跃度呈持续上升趋势。随着更多开发者和用户的加入,Doris 社区会逐步发展壮大。
区块链领域:区块链开源平台 XuperChain
XuperChain(超级链)是中国国产自研且开源的区块链技术,拥有近500篇区块链技术专利,具备全球化网络和联盟化网络部署能力,自主研发了超级节点、链内并行、立体网络、可插拔共识机制等技术,在安全、可控、高效、易用上领先行业。
2019年5月,XuperChain在国内率先对外开源。2020年9月,XuperChain作为首个项目捐赠给开放原子开源基金会,以全新形态培育和发展。目前,XuperChain开源社区拥有2万+用户,产生100余篇开源文档,线上直播、线下沙龙不断,社群活跃,开发者踊跃贡献文档和代码,形成了良好的开源技术氛围。2021 年,XuperChain开源社区先后在北京、上海、深圳举办多场线下开发者沙龙活动,发布区块链开源内核XuperCore,成立首个区块链SIG小组,吸引黑曜石实验室等企业参与贡献一站式开发工具Xuper IDE,在哈尔滨工业大学、云南大学等高校落地区块链课程,开源生态逐渐繁荣。
XuperChain核心开发者、百度资深研发工程师樊冰新现场分享了XuperChain的开源框架和应用场景。XuperChain秉承开源开放的理念,采用轻框架理念,所有组件可插拔,不断提高可扩展性、安全性和性能,降低区块链开发门槛。开源以来,XuperChain推出了一系列易用性提升措施,加速区块链应用落地,包括基于功能和基于业务场景的智能合约模板,如存证、溯源、积分管理等,满足政务、金融等多领域,支持多种应用场景快速接入。
目前,百度将区块链与人工智能、大数据、IOT等技术创新融合,推出三十多个全场景、全行业、全领域解决方案,将区块链应用深入至产品溯源、存证取证、版权保护、数据共享、智能制造等诸多领域,形成一批成熟的商用化解决方案。