亞馬遜 CTO 20 年架構經驗之道:儉約架構師的七大黃金法則!

2023-12-01     InfoQ

原標題:亞馬遜 CTO 20 年架構經驗之道:儉約架構師的七大黃金法則!

作者 | 冬梅、Tina

亞馬遜 CTO Werner Vogels 向企業傳達了一條信息:在管理雲成本方面,是時候成為儉約的架構師了。

在過去 17 年裡,Werner Vogels 帶領著亞馬遜從一家在線圖書銷售商轉變為全球最大的電子商務帝國之一,可以說是有史以來最著名的首席技術官。Werner 也是一位超可擴展系統的頂級專家,擁有計算機科學博士學位,是許多會議和期刊文章的作者,其中大多數是與計算機相關的分布式系統。

在今天的 re:Invent 2023 大會主題演講中,Werner 給大家上了一節關於成本優化的課:「我今天要講的,匯總了我過去 20 年作為架構師的工作經驗。」

「作為技術專家,我們生活在一個瞬息萬變的世界,我們需要保持學習,坐下來,拿出你的記事本,現在開始做筆記。」

撿起我們曾失去的「架構藝術」

Werner 選擇在主題演講中討論成本問題,這既反映了當前的經濟環境,也反映了雲計算支出不斷增長的態勢。本月早些時候,Gartner 公司發布預測,到 2024 年雲支出將達到 6780 億美元,比今年的 5630 億美元大幅增長。亞馬遜雲科技在引領公有雲市場方面取得了巨大成功,但同時也意識到,這個行業所帶來的成本壓力正在隨著生成式 AI 等技術的廣泛採用而不斷增加。

「以前我們處於受限的環境中,在存在約束的條件下構建這些系統時蘊含了很多藝術。我們要做商業創新時,雖然有了絕妙的想法,但也要根據各種限制條件對藍圖進行修剪,」Werner 表示,「後來我們有了雲計算,突然間所有的這些限制幾乎都消失了,等於把手銬、腳鐐都拿掉了。擺脫了束縛後,突然間一切都變了,我們最重要的事情變成了迅速行動、推出產品。」

隨著執行速度變得更為重要,你就可以能做以前不可能做到的事情。過去這 15 年,我們見證了各種令人驚嘆的創新。但這種發展速度下,我們也失去了一種架構的藝術:關注成本、以成本為重要考量的架構設計的藝術。

「作為工程師,我們在考慮成本方面的培訓非常不足。我不是指大 O 階次的成本,而是實際的金錢成本。如果給我五個容錯算法,我幾乎可以閉著眼睛選擇最好的一個。但如果你問我在系統開始擴展時最佳和次佳方案之間的成本差異會是多少,我可能會感到猶豫。」Werner 其實早在 2012 年寫的一篇博客文章中就提醒我們必須關注成本問題。

當不考慮成本這個約束條件時,大家可以做很棒的創新,但宏觀經濟是會改變的,成本效益才再次顯露出來。Werner 表示他曾通過一種艱難的方式學會了如何將成本納入架構中,而在今天的演講中,「我把我的這些經驗掏出來送給各位,希望大家能拿出筆記本好好記一記。」

「作為架構師,我們必須要認真地考慮這些,不僅僅是因為你要節約利用我們的資源,同時更加重要的是要讓我們的企業可持續性地增長。」

Werner 將他 20 年的平台構建經驗,總結出了七條成為「儉約架構師(The Frugal Architect)」的關鍵法則。其中包括創建將成本與業務對齊的系統,觀察基礎設施中的關鍵運營網絡以避免未知的費用,並追求漸進式優化。

「我嘗試向初創公司強調這一點,」 Werner 說。「你將要採用什麼收入模式?他們需要構建符合這一模式的架構。確保你獲取收入的維度始終與你的成本保持一致。」

儉約架構師 的七大黃金法則

法則一:將成本視為一種非功能性需求

所謂非功能性需求,就是用於判斷系統操作的標準,與具體特性或功能無關。可訪問性、可用性、可擴展性、安全性、可移植性、可維護性和合規性等都在此列。而成本往往是其中受到忽略的一條。

「在我們設計的時候,成本是非功能方面的要求,跟安全、合規、可用性、性能這些最經典元素一樣,你必須記在心裏面,時刻把它體現出來。畢竟我們不僅僅是為了打造技術而打造技術,我們打造這個技術是為了支持業務運營需求的。」

在 Werner 看來,業務之所以身陷困境,往往是因為他們沒有考慮到各個階段中的相應成本——從設計到開發、再到運營——也可能是未能正確量化成本。這背後的原理非常簡單:如果成本比收入還高,那還做業務幹嘛呢。

架構師需要儘可能早的、以更加可持續的方式考慮成本影響,才能在系統設計過程中在功能、上市時間和效率之間尋求平衡。這樣開發團隊可以專注於維護更加精簡高效的代碼,運營部門可以優化資源用量和支出,從而最大限度提高盈利能力。

法則二:確保系統的最終成本與業務保持一致

系統能否長治久安,取決於其成本是否與業務模式高度匹配。在設計和構建系統時,架構師必須考慮收入來源和利潤槓桿。更重要的是,必須找到能夠產生利潤的維度,確保架構規劃始終圍繞收益展開。

例如,在電子商務領域,這個核心維度可能是訂單數量。當訂單增加時,基礎設施和運營成本也會隨之上升。但沒關係,只要系統架構設計良好,我們就能享受規模經濟帶來的紅利。最重要的是基礎設施成本對業務的影響始終精確、可以量化。

作為架構師,大家需要關注收入,並據此指導技術選型。任何不計代價的增長只會招致毀滅。正如 Werner 強調的:「你要很確定,我們業務基礎設施擴展的方式,能讓成本成長低於銷售收入的增長。」

法則三:架構設計是一系列權衡的集合

在架構當中,每項決定都涉及相應的權衡。成本、彈性和性能這些非功能性需求之間,往往相互衝突、難以調和。

常言道「萬事萬物終將隕落。」要想抵禦這種失敗的風險,就必須關注彈性,同時犧牲掉一部分性能。

在技術與業務需求間找到適當的平衡將至關重要,也就是把握住風險承受能力與預算額度間的最佳比例。請記住,儉約是為了最大限度提升價值,而不只是儘可能控制支出。因此,在必須得花的錢上別吝嗇。

Werner 還在這個環節指出,創新設計時需要平衡成本、安全性還有洞察力 / 內情這三樣東西,「Amazon Lambda 就是在這樣的過程中一邊探索一邊打造出來的。我們在做設計時,始終要保持三個方面的關係,有時候你可能需要在成本方面做一些犧牲,來達到其他的技術或者安全的要求。再往上,我們一定要建一個演化的基礎結構,我們要確定我們做事情不能影響到客戶,這也是 Lambda 成功的關鍵。」

法則四:無法觀測的系統將帶來無法估量的成本

如果不認真觀察和測量,系統運營的真實成本將難以把控。就如同隱藏在地下室中的電錶一樣,這種直觀性的缺失必然導致浪費。所以一定要把指標擺在明面上,這將深刻改變運營行為。

Werner 用建築舉了個例子,「上面兩個房子是一模一樣的,其中一個房子使用的能源量比另外一個房子少了 1/3。為什麼呢?關鍵在於其中一個裝了測量器,會自動調整冷暖氣。」

儘管實現可觀測性需要投入,但這筆錢絕對會物有所值。有句格言說「如果無法量化,也就無法管理。」請始終堅持對利用率、支出、錯誤等至關重要的成本管理指標保持關注。

當工程師和業務合作夥伴能夠隨時查看關鍵成本指標時,自然就會催生出更具可持續性的實踐策略。持續檢查能幫我們發現非必要支出,並調整運營以減少浪費。總之,可觀測性帶來的回報往往遠超過前期投入。

最重要的是,這本身也是對成本的強調,能在企業中塑造出鼓勵可持續性實踐的文化。

法則五:依託成本感知架構實現成本控制

儉約架構的本質,在於強大監控與成本優化能力的結合。精心設計的系統能幫助大家抓住改進的機會。為此,請將應用程式拆分成一系列可以調節的構建塊。

也就是說,不同的組件一定要有相應的工具來掌控,來操縱這些內容的程式,同時來調試它的矩陣和性能,要能做到隨時隨地想打開哪些組件就能打開它們,想關上的時候也能及時關上。這個開關必須要置於業務運營的關鍵環節上,保障你能夠輕鬆控制業務的運營。

一種常見的方法就是按重要性對組件進行分層。T1 層組件必不可少,應當不計成本進行優化;T2 層組件非常重要,但暫時縮小規模也不會產生重大影響;T3 層組件則屬於「錦上添花」,要保證其成本低廉且易於控制。

明確定義各層,即可在成本及其他要求之間求得平衡。對組件的精細控制則能優化成本和體驗。基礎設施、語言、資料庫都應具備可調節性,並在系統的設計和構建階段考慮收入和利潤。總之,成本優化必須可量化,且與業務影響直接掛鉤。

法則六:成本優化是個漸進的過程

追求成本效率是個持續的過程。即使在部署之後,我們也必須隨時審視系統以逐步尋求優化。其中的關鍵在於不斷提問、深入研究。程式語言往往提供分析工具以追蹤代碼性能,雖然這需要額外的精力和專業知識,但精細的調優足以帶來幾毫秒的差異。而這種看似微小的優化,累積起來足以產生超出想像的成本優勢。

在運營中,大部分時間都被用於運行現有系統。所以請把握一切機會,分析資源使用情況並減少浪費。在亞馬遜,我們持續監控生產中的服務,發現運營模式並消除低效因素。儉約是堅持的結果——通過逐步降低延遲和基礎設施成本,服務成本才能最終得到優化。

只要不懈努力,我們總能找到改進空間。而今天省下的資源,就是明天創新的燃料。

法則七:沒經歷過挫折會讓人盲目自信

如果軟體團隊在取得重大成功的過程中,從未經歷過任何嚴重失敗或者阻礙,則往往會出現自滿情緒。這是一種危險的傾向,會導致團隊成員對原本的方法、工具和實踐變得盲目信息。

軟體團隊經常陷入這樣的陷阱:僅憑以往的工作經驗,他們就認為當前的技術、架構或語言永遠是最佳選擇。這可能會產生一種錯誤的安全感,阻礙對現狀的質疑,更會打擊對可能更加高效、更具成本效益或可擴展性更強的新選項的探索。

說到程式語言,人們往往會說「我們是一家 Java 公司」。這話大有問題,其底層邏輯無疑是在扼殺創新。唾手可得的成功會滋生自滿情緒,而只有質疑才能不斷激發新的優化與改進思路。

Grace Hopper 的名言,準確反映了這一值得高度警惕的陷阱:「我們一直都是這樣做的。」

寫在最後

按照慣例,Werner Vogels 以最後一個主題演講結束今年的 re:Invent 會議。

在過去的一年裡,技術演進速度迅速加快。雲技術、機器學習和生成式 AI 變得更加容易獲得,幾乎影響著我們生活的方方面面,從寫電子郵件到開發軟體,甚至在早期階段檢測癌症。未來幾年,旨在實現技術普及並幫助我們跟上日常生活節奏的領域將充滿創新——而這一切都從生成式 AI 開始。

許多組織面臨的一個困境是,隨著對生成式 AI 的興趣不斷高漲,驅動應用程式所需的資源量顯著增加,隨著生成式 AI 等技術的廣泛採用,組織面臨的成本壓力也在不斷增加。

Werner 在他的演講中強調:「技術的發展非常迅速,我們必須持續學習,深入了解我們的想法所在,並放下自尊心,認真思考成本問題。因為成本是複雜而重要的。」

「過去,我們受到了各種約束條件,雖然我們不想回到過去,但或許我們可以考慮將約束條件納入我們的系統,以促進成本管理和可持續發展。使用這種約束條件可能會帶來不同的成果。」

全球首款開源實時作業系統!開發了 20 多年、部署在超 120 億台設備上的 ThreadX 正式開源

聯手 OpenAI 最強競對展開生成式 AI 反擊戰:亞馬遜雲科技將 S3 寫入速度提升 10 倍、推出全新三層技術棧

Docker 的詛咒:曾以為它是終極解法,最後卻是「罪大惡極」?

一個失敗的 AI 女友產品,以及我的教訓:來自一位中國開發者的總結

活動推薦

亞馬遜雲科技權威之作,開啟 AI 與機器學習探索之旅!《AIGC 加速企業創新實踐指南》和《機器學習助力構建企業創新引擎》是亞馬遜雲科技憑藉多年經驗為您精心打造的 AI 與機器學習指南。從入門到精通,無論你是業務決策者還是技術專家,都能在這裡找到適合自己的內容,增強自身與企業在 AIGC 時代的競爭力,從此刻開始!掃描二維碼即刻下載!

讀者福利

文章來源: https://twgreatdaily.com/03799e3ea8f685527e78c51150b41815.html