Rust 已被選中,以再次降低成本和提高效率! Rust 取代 Python,亞馬遜雲成本降至 1 4!

Mondo 財經 更新 2024-02-01

乙個神奇的組合出現了! 與使用 Python 相比,Rust 和無伺服器可以節省一大筆錢!

眾所周知,lambda 函式和大型執行時是乙個糟糕的組合,因為與本機**相比,冷啟動速度較慢,記憶體要求更高。 另一方面,許多開發人員使用 J**A 和 Python 比使用 Rust 等系統語言更有效率。

然而,現在,你不需要用 rust 重寫整個 lambda 函式 (pyhton) 來真正“降低成本和提高效率”。

雲諮詢公司 CloudEx 的工程主管 Merdler Kr**Itz 舉了乙個 lambda 函式的例子,該函式使用 Python 列出 S3(簡單儲存服務)儲存桶。 AWS SDK Boto3 for Python 已被證明過於臃腫,通過用 Rust 替換需要 Boto3 的函式,可以在成本和效能方面獲得巨大的好處——即使 Python 仍被用於其他用途。

用 Rust 替換 Python 的關鍵是 PYO3,它為 Python 提供了 Rust 繫結。 rust 中的屬性將函式公開為標準 python 介面。

因此,在 Merdler Kr**Itz 提供的示例中,冷啟動速度提高了三倍,記憶體要求也低得多。 對於 1GB 的 RAM,Rust 和 Boto3** 具有相似的效能,但對於 256MB 的 RAM,增強版的 Rust 仍然表現良好,而另乙個則不然。

在 lambda 中使用 rust 的成本效益:re:invent 上的乙個例子。

特別是在無伺服器平台上,減少所需的計算資源量可以降低成本。 “平均而言,Rust 比 Python 便宜,可能是後者的 1 3 到 1 4,”他聲稱。

在 Re:Invent 大會上,AWS 還宣布其適用於 Rust 的開發工具包已準備好投入生產。 去年 11 月初,這家雲巨頭基於“最小容器映象”向 Lambda 新增了對 Amazon Linux 2023 的支援,並表示其主要用途之一是“使用編譯為原生**的語言,例如 Go 或 Rust”。 ”

至少從 2015 年開始,Rust 中對 AWS 服務的非官方支援就已經存在,當時 Matthew Mayer 和 Anthony Dimarco 正在開發 Rust 1在 0 發布後不久,乙個名為 Rusoto 的獨立專案啟動了,其目標包括學習 Rust。 根據鏽箱庫板條箱IO的統計,Rusoto的**量已經超過了1100萬次。

AWS Rust 開發工具包的第乙個 alpha 版本由當時在 AWS 工作的 Iliana Etaoin 於 2021 年推出,她是 Rusoto 的共同維護者。

根據介紹,官方 Rust SDK 現在支援 300 多種 AWS 服務,並“支援現代 Rust 語言功能,例如非同步等待、非阻塞 IO 和構建器”。

AWS Lambda 還有乙個實驗性的 Rust 執行時,可簡化在 Rust 中的執行,並包括支援 Lambda 事件、擴充套件和 Lambda 執行時 API 的 crate。 乙個名為 Cargo Lambda 的相關專案支援使用 Lambda 模擬器進行本地開發和測試,以及在 Windows 或 macOS 上開發時針對 Linux 進行交叉編譯,無論開發人員在他們的 PC 上執行什麼,都可以選擇 arm64 和 x86-64。 使用 rust 構建 lambda,亞馬遜官方給出了詳細的文件。

當然,實驗性**在生產中沒有使用,所以在 lambda 上使用 rust 還為時過早。 不過,就目前而言,可以看出回報將是巨大的。

榜樣的力量是無窮無盡的。 根據亞馬遜內部員工在某職場社交平台上的反饋,“大家都在這裡用 Rust”,也有網友指出,Rust 編譯器團隊的負責人 Jon Gjergeset 也在亞馬遜工作。

該員工甚至做出了判斷:Rust遲早會取代C++。

使用鏽蝕的場景有哪些?乙個簡單的答案是所有使用 C++ 的場景。

不過,就亞馬遜此次宣布的部分替代Python而言,還有另一種情況是Python面臨被替換的風險越來越大。

進入“大模型應用開發”的語境後,原有的“python+docker”機器學習開發框架面臨著嚴峻的挑戰。

在構建機器學習應用時,更多的人會想到 python + docker,但當時間到了“大模型時代”時,基於這種組合構建大模型應用似乎不合時宜,而 python 的效能和 docker 的冷啟動問題注定了這樣乙個事實:在處理需要大量計算的大資料集或複雜模型時, 它不太可能成為該領域的主流選擇。

一方面,Python是一種解釋型語言,編譯速度慢,維護問題嚴重。 另一方面,Docker 越來越多地面臨磁碟空間消耗、硬體加速器支援、可移植性和安全依賴性等問題。

基於此,一些業內人士認為,Rust+Wasm 更有可能取代 Python+Docker,成為 LLM 生態中構建基礎設施的主要場景。 這不得不讓人聯想到馬斯克的猜測,即“AGI將建立在Rust之上”。

編輯搜尋圖片 單說 Rust,為什麼 Rust 作為 agi 時代的程式語言受到追捧?

首先,編譯速度極快:Rust 是一種以其極快的效能而聞名的編譯語言。 當與 WebAssembly(一種用於基於堆疊的虛擬機器的二進位指令格式)結合使用時,該組合有望提供無與倫比的執行速度。

其次,記憶體安全:Rust 的乙個突出特點是它強調記憶體安全而不犧牲效能。 這確保了應用程式的快速和安全。

然後,併發性:Rust 的併發性方法是獨一無二的。 它確保在編譯時捕獲資料爭用(併發系統中最常見和最具挑戰性的錯誤之一)。 這意味著開發人員可以編寫併發性,而不必擔心引入難以檢測的執行時錯誤。

此外,乙個富有表現力的字型系統:Rust 有乙個強大而富有表現力的字型系統。 該系統不僅有助於在編譯時捕獲錯誤,而且還允許開發人員以清晰簡潔的方式表達他們的意圖。

同時,現代包管理:Rust 的包管理器 Cargo 簡化了管理依賴項、構建專案甚至發布庫的過程。 該工具因其易用性和效率而受到稱讚。

最後,快速增長的生態系統:Rust 生態系統正在蓬勃發展。 像 “ndarray”、“llm”、“candle” 和 “burn” 這樣的庫展示了大型模型相關社群積極參與擴充套件 Rust 的 LLM 應用程式開發的能力。

那麼為什麼需要 webassembly呢?

與大多數“現代程式語言”不同,Rust 的一大亮點是它可以直接編譯成機器程式碼,而不需要中間的“執行時”。 但是,在很多場景下,比如瀏覽器、雲原生、邊緣裝置等,不允許直接執行機器程式碼。 即使是熟練的 Rust 也缺乏與之匹配的執行時。

在實踐中,人們會發現 WebAssembly 是 Rust 執行時的首選之一。 細心的人可能還會注意到,Rust 編譯器還為 Wasm 平台新增了乙個目標。 兩人是天作之合。

國內發展與國外發展有明顯區別。

國內軟體行業的大型底層專案比國外少很多,發展方向主要在需求變化的上層邏輯。

在過去的三四十年裡,開發人員更多地關注業務應用層,做功能模組的排序和堆疊,而底層的研究更像是一團毛線。

不過,我們也在慢慢看到新的發展主題正在到來:業務端更關心安全性和可靠性,更關心**鏈的依賴性是否可持續,更關心是否會卡住。 例如,去年,Microsoft Azure的首席技術官Mark Russinovich發布了一條在科技界熱搜的推文,他想放棄C++,轉向Rust。

有趣的是,Microsoft 70%的常見漏洞和暴露都與記憶體安全問題有關。 而且,儘管已經為解決這些問題做出了努力,但它們仍在飆公升。

為此,Microsoft安全響應中心啟動了乙個安全系統程式語言計畫,打算將其專案遷移到Rust專案。 就連後來大家都知道的 Windows 核心,也開始用 Rust 重寫。

所以我們看到很多知名公司也在大力投資 Rust,比如 Microsoft 和 Google 等國外公司都成為了 Rust 的白金贊助商之一,AWS 直接招募了 Rust 官方團隊的成員展開人才大戰,Meta(前身為 Facebook)正式宣布 Rust 為其伺服器支援的語言, 等等。

再比如,華為、位元組跳動等國內科技公司在內部培養了 Rust 團隊並推動了 Rust 的落地,PingCap 也採用了 Rust 來實現 TikV,大通科技、海之星圖等眾多明星創業公司直接選擇了 Rust 作為其產品的主要語言。

根據位元組跳動Volo負責人吳迪的講話內容,有增刪。

不過,有一種觀點認為 Rust 不會在國內大規模使用,就算是要用,也應該從各大雲廠商開始,而且是多種底層專案,而雲廠商比較主流的語言是 Golang,因為 Golang 的開發效率相當高, 這非常符合國內雲廠商的業務邏輯。幸運的是,位元組跳動正在從 Golang 遷移到 Rust。

一種語言的興起,往往是解決時代痛點的辦法。 PHP解決了門戶快速構建的問題,Python降低了程式設計門檻,J**A解決了移動時代的應用開發需求,C C++在40多年前就已經為系統底層做出了貢獻。

Rust 也是如此。 與大多數“現代程式語言”不同,Rust 是在強調安全性、速度和可靠性的新環境中選擇的。 從 15 年的穩定算起,Rust 確實來得很短。 它已連續 8 年成為開發人員中最受尊敬的語言!

2023 年 Stackoverflow 開發者調查顯示,85% 使用 Rust 的開發者希望明年再次使用它。

最後,點點花絮,2023 年過去了,在日常生活中應用和開發 Rust 是什麼感覺?

我們選擇了這四種態度,都應該是國內 Rust 開發者現狀的一瞥,可以看出這也是乙個公升級和鬥怪的過程

全職 Rust 開發者:一開始做 Rust 還挺開心的,但不到兩個月,激情就沒了,天天真的哽咽,現在成了天天的“垃圾 Rust”。 」

Rust 專案負責人:建議自己訓練一下,不要聽網上說 Rust 上手有多難。 只要公司裡有乙個人非常了解 Rust,其他人都可以快速上手。 」

Ashorer:如果你不做乙個有三到四個生命週期的複雜泛型,你通常不會有問題。 Rust 上的手寫業務只需要乙個月的時間,寫花裡胡哨的東西需要經驗。 」

使用 Rust 8年以上的人:我帶的新人大多有J**A或者C這樣的語言基礎,乙個月基本就能上手,演算法、非同步、多執行緒都沒問題,就算文科生轉而寫Rust,也不覺得難。 」

相關問題答案

    如果你想降本增效,那就試一試吧

    鈑金零件未經加工的情況並不少見,有時甚至在生產過程中大量質量低劣。如果將有缺陷的零件退回返工,非常費時費力,嚴重時會因缺料而影響下游生產。一方面,不平整的鈑金件會導致零件變形,甚至在安裝過程中連線不良或根本無法組裝的部件。另一方面,鈑金零件也會釋放肉眼看不見且無法準確測量的內應力,導致零件在切割後翹...

    以透明的績效推動企業降本增效

    本次研討會由江蘇省數字經濟聯合會 南京市企業數位化轉型研究會主辦,達仁智庫 透明數字科技協辦,江蘇開放大學支援。來自中科曙光 國網南京供電公司 新工集團 中汽創智 南京公安研究院 國信集團財務公司 玻纖研究院 南京先進計算產業發展等企業超過家院所的餘位數位化領軍企業參加了本次研討會。達人智庫合夥人 ...

    音樂產業2023降本增效,拓展版圖

    作者 Punpeng 編輯 樊志輝 近日,Spotify開始了今年的第三次裁員,也是最大規模的裁員。月日,Spotify在其官網宣布,由於經濟增長明顯放緩,為實現公司發展目標,迎接未來的挑戰,計畫裁員人,約佔公司員工總數的 早在今年月,Spotify就宣布裁員 即約名員工。今年月,該公司宣布裁員 裁...

    螞蟻資料庫致力於降本增效

    背景 專案背景 某省級高速中心的清算結算系統一直無法解決資料庫設計 選型等相關問題。在某省級高速工程建設過程中,資料庫建設方案一直是難點。該項目的建設面臨來自兩方面的壓力 時間短 任務重 在政策方面,某省交通科學研究院責令某省級高速公路盡快實現網路通行費計費 車道資料及現有清匯系統的設計,並做好整改...

    螞蟻資料庫致力於降本增效,一省高速清算結算的實踐意義重大

    中國正處於數位化轉型的關鍵時期,高速公路正朝著智慧高速公路的建設邁進。無論是傳統的高速卡口,如 資料採集 資料上傳 和 資料處理 基礎設施時代,或近期將實現具有 車輛協同智慧型化 邊緣控制中心 和 智慧型高速雲控中心 等特點的智慧高速公路建設 在時代,海量資料儲存 複雜計算 互動能力將成為關鍵,而這...