日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當前位置:首頁 > 科技  > 軟件

Rust又被降本增效選中!Rust替代Python,亞馬遜云成本降為1/4!

來源: 責編: 時間:2024-01-15 09:22:20 260觀看
導讀撰稿 | 云昭出品 | 51CTO技術棧(微信號:blog51cto)一種神奇的組合出現了!Rust和無服務器搭配,可能比使用Python要省下一大筆錢!眾所周知,Lambda函數和大型運行時是一個糟糕的組合,因為跟本機代碼相比,冷啟動速度較慢,內存需求更

撰稿 | 云昭c1N28資訊網——每日最新資訊28at.com

出品 | 51CTO技術棧(微信號:blog51cto)c1N28資訊網——每日最新資訊28at.com

一種神奇的組合出現了!Rust和無服務器搭配,可能比使用Python要省下一大筆錢!c1N28資訊網——每日最新資訊28at.com

眾所周知,Lambda函數和大型運行時是一個糟糕的組合,因為跟本機代碼相比,冷啟動速度較慢,內存需求更高。另一方面,許多開發人員使用Java和Python比使用Rust等系統語言開發起來會更有效率。 c1N28資訊網——每日最新資訊28at.com

然而現在,不需要用Rust重寫整個Lambda函數(Python),就可以真正的“降本增效”。c1N28資訊網——每日最新資訊28at.com

1、基于Python的AWS太復雜,改用Rust解決后,成本降為1/4!

一位云咨詢公司CloudEX的工程主管,Merdler Kravitz舉了一個Lambda函數的例子,該函數使用Python列出S3(簡單存儲服務)存儲桶。事實證明,用于Python的AWS SDK Boto3過于膨脹,通過用Rust替換需要Boto3的函數,可以在成本和性能方面獲得巨大收益——即使Python仍在用于其他代碼。c1N28資訊網——每日最新資訊28at.com

用Rust替換Python代碼的關鍵是PyO3,它為Python提供了Rust綁定。Rust代碼中的屬性將函數公開為標準Python接口。c1N28資訊網——每日最新資訊28at.com

結果,在Merdler Kravitz提出的例子中,冷啟動速度快了三倍,對內存的要求也低得多。對于1GB的RAM,Rust和Boto3代碼具有相似的性能,但對于256MB的RAM,增強版Rust仍然表現良好,而另一個則不然。 c1N28資訊網——每日最新資訊28at.com

在Lambda中使用Rust的成本效益:re:Invent上的一個例子在Lambda中使用Rust的成本效益:re:Invent上的一個例子c1N28資訊網——每日最新資訊28at.com

尤其是在無服務器平臺上,減少所需的計算資源可以降低成本。“Rust平均比Python更便宜,大概是后者的1/3到1/4,”他聲稱。c1N28資訊網——每日最新資訊28at.com

在re:Invent會上,AWS同時宣布了其用于Rust的SDK已準備好生產。 去年11月早些時候,這家云巨頭基于“最小容器映像”為Lambda添加了對亞馬遜Linux 2023的支持,并表示其關鍵用途之一是“在使用編譯為本地代碼的語言時,如Go或Rust。”c1N28資訊網——每日最新資訊28at.com

2、亞馬遜與Rust結緣已久

至少自2015年以來,Rust對AWS服務的非官方支持就一直存在,當時Matthew Mayer和Anthony DiMarco在Rust 1.0發布后不久啟動了一個名為Rusoto的獨立項目,目標包括學習Rust。根據Rust crate 存儲庫crates.io的統計數據,Rusoto的下載量已超過1100萬次。c1N28資訊網——每日最新資訊28at.com

AWS Rust SDK的第一個alpha是由當時在AWS的iliana etaoin于2021年推出的,她是Rusoto的共同維護者。c1N28資訊網——每日最新資訊28at.com

根據介紹,官方的Rust SDK現在支持300多項AWS服務,并“支持異步/等待、非阻塞IO和構建器等現代Rust語言功能”。c1N28資訊網——每日最新資訊28at.com

AWS Lambda還有一個實驗性的Rust運行時,它簡化了Rust中的運行功能,并包括支持Lambda事件、擴展和Lambda runtime API的crate 。一個名為Cargo Lambda的相關項目支持使用Lambda模擬器進行本地開發和測試,以及在Windows或macOS上開發時為Linux進行交叉編譯,無論開發人員的PC上運行的是什么,都可以選擇ARM64和x86-64。使用Rust構建Lambda,亞馬遜官方也給出了詳細的文檔。c1N28資訊網——每日最新資訊28at.com

圖片圖片c1N28資訊網——每日最新資訊28at.com

當然,實驗性代碼不用于生產,因此在Lambda上使用Rust還為時過早。不過現在,可以看出回報將會很大。c1N28資訊網——每日最新資訊28at.com

榜樣的力量是無窮的。據某職場社交平臺上亞馬遜內部員工反饋,“這里人人都用Rust”,有網友還指出,Rust編譯器團隊的leader Jon Gjergeset,也在亞馬遜任職。c1N28資訊網——每日最新資訊28at.com

圖片圖片c1N28資訊網——每日最新資訊28at.com

這位員工甚至做出了判斷:Rust 早晚會替代C++。c1N28資訊網——每日最新資訊28at.com

3、AGI時代,Rust為什么比Python吃香

都有哪些場景使用Rust?一個簡單的回答就是所有使用C/C++的場景。c1N28資訊網——每日最新資訊28at.com

但與此次亞馬遜宣布的部分替換Python而言,還有一個場景Python越來越有被替代的風險。c1N28資訊網——每日最新資訊28at.com

就是進入到“大模型應用開發”語境后,原來的“Python+Docker”的機器學習開發框架正在面臨嚴重的挑戰。c1N28資訊網——每日最新資訊28at.com

構建機器學習應用時,更多人會想到Python+Docker,然而當時間來到“大模型時代”,再基于這一組合構建大模型應用似乎就會不合時宜,Python的性能和Docker的冷啟動問題都注定了這一事實:當處理需要大量計算的大型數據集或復雜模型時,不太可能會成為這一領域的主流選擇。c1N28資訊網——每日最新資訊28at.com

一方面,Python是解釋性語言,編譯速度較慢,維護方面的問題也較為嚴重;另一方面,Docker越發暴露出磁盤空間消耗、硬件加速器支持、可移植性、安全依賴等問題。c1N28資訊網——每日最新資訊28at.com

基于此,有業界人士認為:Rust+WASM更有希望取代Python+Docker,成為LLM生態構建基礎設施的主要場景。這不得不讓人想到馬斯克那句“AGI會建立在Rust上”的猜測。c1N28資訊網——每日最新資訊28at.com

圖片圖片c1N28資訊網——每日最新資訊28at.com

單講Rust,Rust為什么會被追捧為AGI時代的編程語言?c1N28資訊網——每日最新資訊28at.com

首先,編譯極快:Rust 是一種編譯語言,以其極快的性能而聞名。當與基于堆棧的虛擬機的二進制指令格式 WebAssembly 結合使用時,這兩個組合有望提供無與倫比的執行速度。c1N28資訊網——每日最新資訊28at.com

其次,內存安全:Rust 的突出特點之一是它強調內存安全而不犧牲性能。這確保了應用程序既快速又安全。c1N28資訊網——每日最新資訊28at.com

然后,并發性:Rust 的并發性方法是獨一無二的。它確保在編譯時捕獲數據競爭(并發系統中最常見和最具挑戰性的錯誤之一)。這意味著開發者可以編寫并發代碼,而不必擔心引入難以檢測的運行時錯誤。c1N28資訊網——每日最新資訊28at.com

此外,富有表現力的類型系統:Rust 擁有強大且富有表現力的類型系統。該系統不僅有助于在編譯時捕獲錯誤,而且還允許開發者以清晰簡潔的方式表達他們的意圖。c1N28資訊網——每日最新資訊28at.com

同時,現代包管理:Cargo,Rust 的包管理器,簡化了管理依賴項、構建項目甚至發布庫的過程。因其易用性和高效性而受到贊譽的工具。c1N28資訊網——每日最新資訊28at.com

最后,快速增長的生態:Rust 的生態正在蓬勃發展。像“ndarray”、“llm”、“candle”和“burn”這樣的庫證明了大模型相關的社區積極參與擴展 Rust 的LLM應用開發的能力。c1N28資訊網——每日最新資訊28at.com

那么為什么還需要WebAssembly?c1N28資訊網——每日最新資訊28at.com

與絕大部分 “現代編程語言” 不同,Rust 的一個亮點是它可以直接編譯成機器碼,不需要一個中間的 “運行時”。然而,許多場景諸如瀏覽器、云原生、邊緣設備等,直接運行機器碼是不被允許的。即便熟練Rust也缺少一個與之相匹配的運行時才能跑得通。c1N28資訊網——每日最新資訊28at.com

在實踐中,人們會發現 WebAssembly 就成為了 Rust 運行時的首選之一。細心的人也可能注意到:Rust 編譯器也添加了 Wasm 平臺的 target。兩者簡直天作之合。c1N28資訊網——每日最新資訊28at.com

4、新的開發語境到來國內和國外,Rust采用差距

國內開發跟國外開發有個很顯然的不同。c1N28資訊網——每日最新資訊28at.com

國內軟件行業的大型底層項目相對國外來說少的多,開發方向主要在需求不斷更迭的上層邏輯。c1N28資訊網——每日最新資訊28at.com

過去三四十年,開發者更多專注于業務應用層上,做功能模塊的排序與堆疊,而底層代碼的研究更多像一個個毛線團,想要條分縷析,并非一日之功,只能說這并不適合當時快速擴張的主旋律。c1N28資訊網——每日最新資訊28at.com

圖片圖片c1N28資訊網——每日最新資訊28at.com

然而,我們也慢慢看到新的開發主題正在到來:業務側更關注安全、可靠,更關心供應鏈的依賴是否可持續,更關心會不會被卡脖子。比如:去年微軟Azure的首席技術官 Mark Russinovich 的一條推文上了技術圈的熱搜,他想要棄用C++,搬家到Rust上的意圖非常強烈。c1N28資訊網——每日最新資訊28at.com

圖片圖片c1N28資訊網——每日最新資訊28at.com

據說有意思的是,微軟所有70%的常見漏洞和暴露都與內存安全問題有關。而且,盡管人們花了很多努力來修復這些問題,但它們仍在飆升。c1N28資訊網——每日最新資訊28at.com

為此,微軟安全響應中心已經啟動了安全系統編程語言計劃,打算將他們的項目遷移到Rust項目中。甚至后來大家都知道的Windows內核,也開始用Rust來重寫。c1N28資訊網——每日最新資訊28at.com

所以我們看到眾多知名企業也在大力投入 Rust,比如國外的企業如微軟、谷歌成為了 Rust 基金會白金贊助商之一,AWS 更是直接將 Rust 官方團隊的成員招入麾下開啟了搶人大戰,Meta(原 Facebook)正式宣布 Rust 作為其服務端支持的語言等等。c1N28資訊網——每日最新資訊28at.com

再比如,國內科技公司如華為、字節跳動等公司均在內部培養了 Rust 團隊并推動 Rust 的落地,PingCAP 采用了 Rust 實現 TiKV,以及眾多明星初創企業如達坦科技和海致星圖直接選擇 Rust 作為其產品的主力語言。c1N28資訊網——每日最新資訊28at.com

圖片圖片c1N28資訊網——每日最新資訊28at.com

根據字節跳動Volo負責人吳迪的演講內容整理,有增刪c1N28資訊網——每日最新資訊28at.com

然而,有一種觀點認為:國內不會大規模使用 Rust,即便要用 Rust,應該會從各大云廠商開始,而且是各種底層項目,目前云廠商更主流的語言是 Golang,因為 Golang 的開發效率相當的高,這很符合國內云廠商的商業邏輯。幸運的是,字節跳動正在從 Golang 轉向 Rust。 c1N28資訊網——每日最新資訊28at.com

寫在最后:時代選擇了Rust

一個語言的興起,往往是它解決了所處時代的痛點問題。PHP解決了門戶網站快速搭建的問題,Python降低了編程的門檻,Java解決了移動時代的應用開發需求,C/C++則很早在系統底層做出了40多年前的貢獻。c1N28資訊網——每日最新資訊28at.com

Rust也是如此。與絕大部分 “現代編程語言” 不同,在一個強調底層安全、快速、可靠的新背景下,Rust被選中了。從15年穩定版算起,Rust的確走過的時間還很短。它已經連續8年成為開發者中最受尊敬的語言!c1N28資訊網——每日最新資訊28at.com

2023年StackOverflow開發人員調查顯示,85%使用Rust的開發人員希望明年再次使用它。c1N28資訊網——每日最新資訊28at.com

圖片圖片c1N28資訊網——每日最新資訊28at.com

最后來個小花絮,2023過去,那些在日常中應用和開發Rust,是怎么樣一種感覺?c1N28資訊網——每日最新資訊28at.com

我們選取了這四種有態度的看法,全當一窺國內Rust開發者的現狀,可以看出也是一個升級打怪的過程,以此共勉吧——c1N28資訊網——每日最新資訊28at.com

全職Rust的開發者:「一開始做Rust全職還是挺開心的,但是沒兩個月激情就沒了,天天寫真的夠嗆,現在也變成天天吐槽“垃圾Rust”了。」c1N28資訊網——每日最新資訊28at.com

帶隊Rust項目的leader:「建議自己培養,別聽網上瞎扯 Rust 入門有多么難。只要公司里有一個很懂 Rust 的,其他人就都可以快速上手。」c1N28資訊網——每日最新資訊28at.com

上岸者:「自己不去作死搞復雜的帶三四個 lifetime 的 generic,一般不會出問題。Rust 上手寫業務只要一個月,想寫花里胡哨的東西才需要經驗。」c1N28資訊網——每日最新資訊28at.com

使用Rust8年以上的大牛:「我帶的新人大都有Java或C等語言基礎, 基本上一個月都能上手, 算法, 異步和多線程都沒問題, 甚至還有文科生轉過來寫rust的, 他們都覺得不難。」c1N28資訊網——每日最新資訊28at.com

參考鏈接:

https://devclass.com/2023/12/21/rust-in-aws-lambda-a-magic-ingredient-to-reduce-cost-and-increase-performance/c1N28資訊網——每日最新資訊28at.com

https://zhuanlan.zhihu.com/p/624525824c1N28資訊網——每日最新資訊28at.com

https://juejin.cn/post/7181794889238052901c1N28資訊網——每日最新資訊28at.com

https://www.zhihu.com/question/537491737/answer/2527548502c1N28資訊網——每日最新資訊28at.com

https://zhuanlan.zhihu.com/p/667210058c1N28資訊網——每日最新資訊28at.com

本文鏈接:http://www.www897cc.com/showinfo-26-61004-0.htmlRust又被降本增效選中!Rust替代Python,亞馬遜云成本降為1/4!

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: 針對大規模服務日志敏感信息的長效治理實踐

下一篇: 12個Java開發者必知必會的編程技巧

標簽:
  • 熱門焦點
Top 主站蜘蛛池模板: 博乐市| 澜沧| 唐海县| 武隆县| 渭南市| 彭泽县| 郧西县| 德州市| 额济纳旗| 盐津县| 辽阳县| 二手房| 富顺县| 浑源县| 芦溪县| 陆河县| 库车县| 霍邱县| 临朐县| 云浮市| 凌云县| 子长县| 汉中市| 怀集县| 犍为县| 定南县| 新沂市| 教育| 平乐县| 红安县| 长沙市| 新昌县| 喀什市| 双鸭山市| 乌苏市| 东宁县| 富宁县| 卢龙县| 南靖县| 美姑县| 柯坪县|