• <track id="6sua3"></track>

  • <menuitem id="6sua3"></menuitem>
  • <menuitem id="6sua3"></menuitem>

    <progress id="6sua3"><bdo id="6sua3"></bdo></progress>
    <samp id="6sua3"></samp>

        1. <samp id="6sua3"></samp>

            GOTC 2023 圓滿落幕,字節跳動詳解多款開源項目

            2023-06-16 19:13: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會議上與大家見面的開源項目,字節跳動還開源了多款產品。姜寧表示,字節跳動看重參與開源的長期價值,對開源一直是開放、鼓勵的,希望與全球合作伙伴共同實現生態繁榮。


            科技新聞傳播、科技知識普及 - 中國科技新聞網
            關注微信公眾號(kjxw001)及微博(中國科技新聞網)
            微信公眾號
            微博

            免責聲明

            中國科技新聞網登載此文出于傳遞更多信息之目的,并不意味著贊同其觀點或證實其描述。文章內容僅供參考,不構成投資建議。投資者據此操作,風險自擔。


            推薦閱讀
            已加載全部內容
            點擊加載更多
            www.97sese.com.