云网强基,共享未来——2023中国移动数智金融大会在宁波举行 | OATLY:新植物基进入2.0时代,行业的未来在中国 | GOTC 2023 圆满落幕,字节跳动详解多款开源项目 | 升级安全健康科技 林内持续打造适老生活解决方案 | 百度智能云推出618超省季活动,AI作画套餐最低9.9元 | 赛博昆仑成为OpenHarmony安全委员会委员单位 | 2023密码丰会 | 天威诚信董事长陈韶光女士荣获2023年度“商用密码行业年度人物奖” | 高温来袭换新空调刻不容缓 京东618以旧换新购格力空调至高补贴700元 | 品牌助力航天科普丨美呐正式成为2023年中国航天科普公益巡展赞助商! | 10周年成就“中国特曲”新典范 五粮特曲携群星燃爆夏日现场 |
 
当前位置: 新闻>滚动>

GOTC 2023 圆满落幕,字节跳动详解多款开源项目

发布时间:2023-06-15 16:49:45  |  来源:中国网科学  |  作者:  |  责任编辑:科学频道

5月 27至 28日,字节开源携多个开源项目及相关技术实践方案亮相 2023全球开源技术峰会(Global Open-source Technology Conference,GOTC )。为期两天的峰会上,来自字节跳动的多位开源布道师、工程师向大家讲述了字节跳动开源的故事,以及相关的开源项目和实践经验。

字节跳动的开源之路,经历了从使用到参与,再到主动开源这三个阶段。

Apache软件基金会董事、字节跳动首席开源布道师姜宁讲述了字节跳动的开源之路。他提到,字节跳动在开源的不同阶段关注的重点不一样。比如在使用开源时,会面临开源软件供应链风险,包括安全风险、运维风险、合规风险,这就需要有对开源软件有清晰的认知。因此字节跳动做了开源合规治理相关的工作,包括基础建设、合规治理、培训宣贯等。整体来说,为了在全阶段都更好地拥抱开源,字节跳动相应地开启了开源合规治理、开源文化培养和教育、开源可持续战略等方面的建设。

之后,字节跳动多位工程师带来具体开源项目与实践的相关分享,覆盖 Rust、云原生、数据库技术、AI技术、安全实践等多个热点话题。

云原生理念下的技术实践与分享

火山引擎资深云原生工程师、CloudWeGo Reviewer胡文带来了“基于 Kitex Proxyless和 Istio的云原生微服务实践”主题分享。

CloudWeGo-Kitex是一个支持多协议的 RPC框架,字节内部主要是 Thrift协议,所以在 Thrift协议深耕已久,做了大量优化,Kitex开源希望能帮助其他企业快速构建微服务,但使用 Kitex-gRPC采用 Istio - Sidecar解决方案存在上面说的问题,同时也希望使用 Thrift协议的用户能基于 Istio实现服务治理,所以针对多协议,Kitex支持了基于 Istio的 Proxyless模式。

Kitex直接基于 xDS协议对接 Istiod控制面,无需再借助 sidecar来实现与控制面交互,可以实现 Proxyless模式的方式纳入到网格中统一管理。

胡文还分享了基于 Kitex Proxyless落地全链路泳道的实践设计。流量染色环节,在网关层进行流量染色,根据原始请求中的元数据,来进行一定规则(条件、比例)转换成对应的染色标识;基准泳道中,未被染色的流量会被路由到基准泳道中;分支泳道中,被染色的流量会被路由到 reviews-v2 ->ratings-v2的分支泳道中。

火山引擎资深云原生工程师刘晟丽带来了“字节跳动基于 Kubernetes的大规模集群联邦技术实践”主题分享。

随着字节跳动内部各业务系统云原生化的演进,k8s集群数量和规模极速增长,集群维护成本不断提高,同时数量众多,形态各异的集群也为用户选择集群部署带来认知负担。

字节跳动自 2015年起发展云原生第一代基础架构,自 2021年起已进入第三代架构设计与搭建中。具体到集群联邦技术方面,字节跳动 2019年以 KubeFed为基础引入集群联邦,但随着生产环境的不断变化,KubeFed无法满足新的要求。

因此在 2021年,字节跳动为满足多样化负载接入、精细化调度需求、以及更高的业务稳定性保障,提出的第二代联邦系统 KubeAdmiral。 KubeAdmiral为用户提供统一的服务部署入口,方便任务负载在多集群之间流转,为打造统一资源池,提高资源利用率奠定基础。

数据库技术、分布式训练框架、安全建设实践

火山引擎分析型数据库负责人陈星详细以 ByConity为例,讲述了分析型数据库技术创新与开放之路。

ByConity的背景可以追溯到 2018年,当时字节跳动开始在内部使用 ClickHouse,因为业务的发展,要服务于大量的用户,数据规模变得越来越巨大,ClickHouse已不能满足需求。所以字节在 ClickHouse架构基础上进行了升级,于 2020年在内部启动了 ByConity项目,并于 2023年 1月发布 Beta版本,5月底正式对外开源。

作为一个分布式的云原生 SQL数仓引擎,ByConity擅长交互式查询和即席查询,具有支持多表关联复杂查询、集群扩容无感、离线批数据和实时数据流统一汇总等特点。其核心优势包括:高性能低成本、多种场景统一支持、生态友好。

字节跳动基础架构计算框架研发工程师徐合邦介绍了一款通用的分布式训练调度框架 Primus。

近些年来,机器学习科技已经深植各应用领域,并且成功带来显著的提升。面对与日俱增的训练资料和模型规模,为了满足更高效率的模型训练,分布式训练的概念顺应而生。

作为一个通用的分布式训练调度框架,Primus提供一个通用的介面桥接了分布式训练任务和物理计算资源,让资料科学家可以专注与学习算法的设计,并且让分散式训练任务可以运行在不同种类的计算集群,例如 Kubernetes和 YARN。于此基础上,Primus更提供了分布式训练任务所需的容错能力以及资料调度能力,进而更提升了分布式训练的易用性。

Elkeid项目负责人、字节跳动主机安全负责人陈越分享了字节跳动技术团队在生产环境下多工作负载安全建设实践。

企业生产环境工作负载随着传统的物理、虚拟机到后来的容器、容器集群的演变,其安全风险也随之变化。伴随着复杂度提升,对安全能力的要求也越来越高,如:反入侵,威胁溯源与止损,风险发现等。理想情况并不独立的解决某一个 Workload的风险,而是将多种混合的 Workload其视作一个整体来看。

Elkeid解决方案通过统一代理、统一平台的方式解决上述风险问题了。主机安全,容器安全,RASP,阻断于响应能力,追溯能力通过插件的形式集成在一个Agent上,既可以通过宿主机部署保护宿主机与之上的容器;也可以云原生方式部署。并不是不同产品的拼接,而是原生的一套架构,带来的优势便是各方信息都可以自然的关联与组合;运维运营压力也会由此降低。

用 Rust构建新一代工具

Rust语言在性能、安全性、跨平台和社区支持等方面具有很高的优势,被越来越多的开发者视为一种非常有潜力的编程语言。本次峰会,字节跳动分享了两款基于 Rust语言构建的新一代工具。

Rspack是一个基于 Rust的高性能构建引擎,具备与 Webpack生态系统的互操作性,可以从 Webpack低成本的迁移,并提供更好的构建性能。在处理具有复杂构建配置的巨石应用时,Rspack可以提供 5~10倍的编译性能提升。

字节跳动前端工程师何相君详细介绍了 Rspack的技术选型目标与实现策略,其目标是尽可能保证与 Webpack API以及插件的兼容,尽可能的提高构建速度。实现策略则是按照 Webpack原架构进行移植,改进原本的算法以尽可能的并行化。

Rspack用 Rust实现核心部分,充分利用并发和 LTO优化。而之所以选择 Rust语言,是因为 Rust性能优秀,和 C、C++在一个等级;且 napi支持良好,可以基于此更好地兼容 Webpack API,得益于 Rust的宏支持,也可以少写样板代码;Rust作为 WebAssembly的新特性,基本上都能很快得到支持,甚至可以看到 WASM proposal落地后推着 Rust proposal前进的 issue;Rust生态中 swc提供丰富的 AST操作 API,同时支持转译 JavaScript到 ES5。

实践证明,Rspack可以解决许多问题,字节跳动前端工程师何庚坤介绍,Rspack具备更快的速度,以及更灵活丰富的配置,不止覆盖 Web开发场景,还能够应对各种场景;强大可自定义配置的拆包能力等决定了产物的性能……

何庚坤还分享了 Rspack未来的计划,包括支持更多常用框架,如 Vue、Qwik等;完善插件 API,兼容更多 Webpack生态;支持 Module Federation模块联邦;支持 Lazy Compilation懒编译;支持 Persistent Cache持久缓存;更多生产环境优化策略;持续优化构建性能。

此外,字节跳动还带来了 Rust RPC框架背后相关技术的分享。

字节跳动服务框架研发工程师刘翼飞介绍了代码生成工具 Pilota的设计背景、原理,以及面临的一些挑战。Pilota通过 IDL生成 Rust代码,提供给 Volo框架和用户使用。而 Volo则是字节跳动服务框架团队研发的高性能、可扩展性强的 Rust RPC框架。

对于一个 Rust RPC框架来说,根据 IDL做代码生成是为了让用户更方便地使用框架。而生成代码的质量以及周边能力都会对用户的开发体验有着非常非常直接的影响。面对非常庞大的代码生成量,就需要有更好地处理方式。所以字节跳动开发了 Pilota框架,来为用户生成良好的代码。Pilota在面对庞大 IDL做了体验优化,Thrift Parser和 Protobuf Parser只要转换成 Pilota自有的 AST格式,即可兼容任意形式的 IDL。

除了在 GOTC 2023会议上与大家见面的开源项目,字节跳动还开源了多款产品。姜宁表示,字节跳动看重参与开源的长期价值,对开源一直是开放、鼓励的,希望与全球合作伙伴共同实现生态繁荣。