大規(guī)模應(yīng)用自動推理提升系統(tǒng)效率

來源:亞馬遜云科技
作者:亞馬遜云科技
時間:2024-11-22
2845
亞馬遜云科技始終致力于為客戶構(gòu)建簡單、易用的云服務(wù),但其簡單背后往往是龐大、復(fù)雜的分布式系統(tǒng),每秒處理著數(shù)十億個請求。

FBFBBA7D-3F79-4902-9CAC-67E8E065EC1C.jpeg

01

自動推理的基本概念

亞馬遜云科技始終致力于為客戶構(gòu)建簡單、易用的云服務(wù),但其簡單背后往往是龐大、復(fù)雜的分布式系統(tǒng),每秒處理著數(shù)十億個請求。驗證這些復(fù)雜系統(tǒng)的正確性是一個極大的挑戰(zhàn)。隨著新功能的增加、組件的重新設(shè)計、安全的增強(qiáng)和性能的優(yōu)化,亞馬遜云科技的服務(wù)一直處于不斷變化和發(fā)展的狀態(tài)。很多變化本身就非常復(fù)雜,必須在不影響亞馬遜云科技本身或客戶的安全性和韌性的前提下進(jìn)行。

設(shè)計評審、代碼審計、壓力測試和故障注入是亞馬遜云科技一直使用的寶貴工具,但仍然需要使用額外的技術(shù)來確認(rèn)其正確性。尤其是在大規(guī)模、容錯架構(gòu)中,細(xì)微的bug可能會逃過檢測。有些問題甚至可能源于最初的系統(tǒng)設(shè)計,而不是實施缺陷。隨著亞馬遜云科技服務(wù)規(guī)模和復(fù)雜性的增長,需要使用基于數(shù)學(xué)和邏輯的更強(qiáng)大技術(shù)作為對傳統(tǒng)測試方法的補(bǔ)充。這就是人工智能的一個分支——自動推理發(fā)揮作用的地方。

傳統(tǒng)測試側(cè)重于在特定場景下驗證系統(tǒng)行為,而自動推理旨在使用邏輯來驗證系統(tǒng)在任何可能場景下的行為。即使是一個中等復(fù)雜的系統(tǒng),要重現(xiàn)可能發(fā)生的每一種狀態(tài)和參數(shù)的組合,所需的時間也是難以想象的。自動推理可以通過計算來證明系統(tǒng)的正確性,從而高效達(dá)到類似的驗證效果。

使用自動推理需要開發(fā)者具有不同的思維方式,不是試圖考慮所有可能的輸入場景及其可能出錯的方式,而是定義系統(tǒng)應(yīng)該如何工作,并識別出讓它正確運行所必須滿足的條件,然后使用數(shù)學(xué)證明來驗證這些條件是否為真,即驗證系統(tǒng)是否正確。

自動推理將系統(tǒng)的規(guī)范和實施以數(shù)學(xué)的形式進(jìn)行審核,然后使用算法來驗證系統(tǒng)的數(shù)學(xué)表示是否滿足規(guī)范。通過把系統(tǒng)編碼為數(shù)學(xué)系統(tǒng),并使用形式邏輯對其進(jìn)行推理,自動推理使我們能夠有效和權(quán)威地解答有關(guān)系統(tǒng)未來行為的關(guān)鍵問題。系統(tǒng)能做什么?它將做什么?它永遠(yuǎn)不會做什么?自動推理可以幫助回答系統(tǒng)的這些問題,即便是最復(fù)雜的、大規(guī)模的和潛在無限的系統(tǒng)——這些場景單單通過傳統(tǒng)測試是無法徹底驗證的。

值得注意的是,自動推理無法讓系統(tǒng)達(dá)到完美的程度。因為它仍然依賴于對系統(tǒng)組件的正確行為以及系統(tǒng)與其環(huán)境模型之間的某些假設(shè)。例如,系統(tǒng)模型可能錯誤地假設(shè)底層組件,如編譯器和處理器沒有任何bug(盡管也可以對這些組件進(jìn)行驗證)。盡管如此,與使用傳統(tǒng)軟件開發(fā)和測試方法相比,自動推理讓開發(fā)者對結(jié)果的正確性更有信心。

02

更快地開發(fā)

亞馬遜云科技的Amazon Simple Storage Service(Amazon S3)工程師每天都在使用自動推理來防止bug。Amazon S3的背后是世界上最大、最復(fù)雜的分布式系統(tǒng)之一,它存儲了400萬億個對象、EB(Exabyte)級別的數(shù)據(jù)并通常需要每秒處理1.5億個請求。Amazon S3由許多子系統(tǒng)組成,這些子系統(tǒng)本身就是分布式系統(tǒng),其中許多由數(shù)萬臺機(jī)器組成。Amazon S3一直不斷增加新的功能,同時它也被亞馬遜云科技的客戶大量使用。

Amazon S3索引子系統(tǒng)是Amazon S3的一個關(guān)鍵組件,它是一個對象元數(shù)據(jù)存儲,支持快速查找數(shù)據(jù)。該組件包含一個龐雜的數(shù)據(jù)結(jié)構(gòu)和精密的優(yōu)化算法。這些算法對于開發(fā)者來說很難被精準(zhǔn)掌握,并且Amazon S3在查找時不能被容許發(fā)生任何錯誤,為此亞馬遜云科技大約每個季度都會在極其謹(jǐn)慎和大量測試的前提下進(jìn)行新的改進(jìn)。

憑借亞馬遜云科技15年的經(jīng)驗積淀,Amazon S3已發(fā)展成為一個穩(wěn)健且經(jīng)過嚴(yán)格測試的系統(tǒng)。然而,在Amazon S3索引子系統(tǒng)中曾出現(xiàn)一個難以追溯根源的bug,雖然系統(tǒng)具備自動異?;謴?fù)能力,讓這個bug無法對整體系統(tǒng)造成影響,但它的存在并不能讓一直追求更高穩(wěn)定性和可靠性的亞馬遜云科技開發(fā)人員滿足。

為什么這個bug存在這么久?像Amazon S3這樣的分布式系統(tǒng)擁有大量組件,每個組件都有自己的異常情況,而且它們有可能同時發(fā)生。就Amazon S3而言,它擁有超過300個微服務(wù),這些異常情況的潛在組合數(shù)量巨大。即使開發(fā)人員有證據(jù)證明bug存在,并可能知道引起bug的根本原因,但對于開發(fā)人員來說,他們不可能考慮到所有異常情況,更不用說這些異常情況存在不同組合。

這種復(fù)雜性促使開發(fā)人員探索如何使用自動推理來探索隱藏在這些狀態(tài)中的可能狀態(tài)和錯誤。通過構(gòu)建系統(tǒng)的正式規(guī)范,開發(fā)人員能夠找到bug并證明未來不會再次出現(xiàn)此類bug。使用自動推理也讓開發(fā)人員有信心每一兩個月發(fā)布一次更新和改進(jìn),而不是一年只發(fā)布三或四次。

03

更快的代碼

Amazon Identity and Access Management(Amazon IAM)服務(wù)的正確性是確保亞馬遜云科技客戶工作負(fù)載安全的基礎(chǔ)。每個發(fā)送到亞馬遜云科技的請求,即每個API調(diào)用都由Amazon IAM授權(quán)引擎處理,這會涉及到數(shù)百萬客戶、數(shù)千種資源類型和數(shù)百種亞馬遜云科技的服務(wù)。這種請求每秒就超過12億次。Amazon IAM是亞馬遜云科技中對安全要求最高以及需要高度擴(kuò)展的軟件之一。

在亞馬遜云科技,任何改變在進(jìn)入到生產(chǎn)環(huán)境之前,都需要開發(fā)人員高度確保系統(tǒng)保持安全和正確。使用自動推理,可以證明系統(tǒng)在幾乎所有情況下遵守特定的安全屬性,即可證明的安全性。自動推理不僅使亞馬遜云科技能夠為客戶提供可證明的安全保證,還能夠大規(guī)模交付功能、保障安全性和持續(xù)優(yōu)化。

與Amazon S3一樣,Amazon IAM在過去超過15年時間里,已經(jīng)成為一個經(jīng)過時間考驗的、值得信賴的系統(tǒng)。但亞馬遜云科技想進(jìn)一步提高標(biāo)準(zhǔn),通過構(gòu)建一個正式規(guī)范來捕獲現(xiàn)有Amazon IAM授權(quán)引擎的行為,將其策略評估原則編碼為可證明的規(guī)范,并使用自動推理實現(xiàn)更高效的實施。今年早些時候,通過使用自動推理工具,亞馬遜云科技得以成功將原有授權(quán)引擎無縫替換并高效實施。

依托于規(guī)范和證明的支持,亞馬遜云科技能夠更有信心地安全優(yōu)化代碼。由于Amazon IAM的廣泛應(yīng)用,每一微秒的性能改進(jìn)都意味著更好的客戶體驗和更好的成本優(yōu)化。通過優(yōu)化字符串匹配、刪除不必要的內(nèi)存分配和冗余計算,加強(qiáng)Amazon IAM的安全性并提高可擴(kuò)展性。每次更新之后,開發(fā)團(tuán)隊都會重新運行證明,以確保系統(tǒng)繼續(xù)按照預(yù)期運行。

如今,優(yōu)化后的Amazon IAM授權(quán)引擎相比之前提速50%。自動推理不僅提高了性能,還極大增強(qiáng)了亞馬遜云科技開發(fā)團(tuán)隊對系統(tǒng)穩(wěn)定性的信心。

04

更快部署代碼

大多數(shù)在線安全交易都受到加密保護(hù)。例如,RSA加密算法通過生成兩個密鑰來保護(hù)數(shù)據(jù):一個用于加密數(shù)據(jù),另一個用于解密數(shù)據(jù)。這些密鑰實現(xiàn)了安全的數(shù)據(jù)傳輸以及安全的數(shù)字簽名。在加密場景下,正確性和性能至關(guān)重要,加密算法中的任何一個bug都可能導(dǎo)致災(zāi)難性的后果。

隨著亞馬遜云科技客戶將工作負(fù)載遷移到Amazon Graviton上,針對ARM指令集的密碼優(yōu)化的好處得以凸顯。但是,通過加密優(yōu)化提升性能很復(fù)雜,這使得驗證修改后的加密算法是否正常運行變得困難。在亞馬遜云科技開始使用自動推理之前,密碼庫的優(yōu)化通常需要數(shù)月的審查,才能獲得足夠的信心將其投入生產(chǎn)環(huán)境。

通過使用自動推理進(jìn)行正式驗證,不僅加速了RSA算法的運行效率,也加快了其部署速度;并且將這種應(yīng)用于橢圓曲線密碼學(xué)(一種加密技術(shù))時,還能顯著提升性能。

05

形成一個良性循環(huán)

在過去十余年的時間里,亞馬遜云科技積極應(yīng)用自動推理技術(shù)確保其云基礎(chǔ)設(shè)施和服務(wù)的正確性,同時增強(qiáng)其安全性和可靠性,并將設(shè)計缺陷最小化。開發(fā)人員可以使用自動推理為系統(tǒng)創(chuàng)建一個精確且可測試的模型,使用該模型快速驗證更改是否安全,或者識別出安全隱患,以防止對生產(chǎn)環(huán)境造成不利影響。

借助自動推理技術(shù)能夠發(fā)現(xiàn)并解決基礎(chǔ)設(shè)施的一些關(guān)鍵問題,檢測可能導(dǎo)致數(shù)據(jù)泄露的錯誤配置,阻止一些無法通過其它技術(shù)發(fā)現(xiàn)的微妙但嚴(yán)重的錯誤進(jìn)入生產(chǎn)環(huán)境。有了模型檢查,性能獲得了顯著優(yōu)化,這是我們以往不敢嘗試的。自動推理為關(guān)鍵系統(tǒng)按預(yù)期運行提供了嚴(yán)格的數(shù)學(xué)保證。

亞馬遜云科技在自動推理領(lǐng)域擁有先進(jìn)的技術(shù)和經(jīng)驗積累,并大量投資提升其可用性和可擴(kuò)展性。自動推理工具的可用性能增強(qiáng)其功能和采用率,同時驗證云基礎(chǔ)設(shè)施的正確性,并吸引重視安全的客戶。自動推理不僅提高安全性,還能加速提供高性能代碼,幫助客戶節(jié)省成本。

經(jīng)過10多年的實踐,我們發(fā)現(xiàn)驗證過的代碼性能更佳,因為驗證過程中的bug修復(fù)提升了代碼的運行性能。自動推理強(qiáng)化開發(fā)者信心,激勵他們探索更深層次的優(yōu)化,這不僅簡化了代碼的維護(hù)和操作,還顯著提升了系統(tǒng)的整體性能。

如今大規(guī)模云架構(gòu)的核心屬性,如安全、合規(guī)、可用性、持久性和防護(hù)等,都能通過自動化的方式得到驗證。亞馬遜云科技的獨特之處在于,能從始至終運用堅實的數(shù)學(xué)推理,并持續(xù)不斷地分析構(gòu)建的每一個環(huán)節(jié),預(yù)防從AI幻覺到虛擬機(jī)監(jiān)控程序、密碼學(xué)和分布式系統(tǒng)中可能出現(xiàn)的潛在問題。

立即登錄,閱讀全文
原文鏈接:點擊前往 >
文章來源:亞馬遜云科技
版權(quán)說明:本文內(nèi)容來自于亞馬遜云科技,本站不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。文章內(nèi)容系作者個人觀點,不代表快出海對觀點贊同或支持。如有侵權(quán),請聯(lián)系管理員(zzx@kchuhai.com)刪除!
優(yōu)質(zhì)服務(wù)商推薦
更多