2024 亞馬遜云科技re:Invent:Werner Vogels架構哲學,大道至簡 六大經驗助力架構優化

在2024亞馬遜云科技re:Invent全球大會第四天的主題演講中,亞馬遜副總裁兼CTO Dr.Werner Vogels分享了 The Way of Simplexity,繁簡之道,濃縮了Werner在亞馬遜20年構建架構的經驗。

Werner表示,復雜性總是會“悄無聲息”地滲透進來,讓系統變得更加復雜。復雜性本身是件好事,因為它意味著添加更多功能。所以“復雜性”并不是問題,而“管理復雜性”才是個問題。

歷史悠久的"兩個披薩團隊",奠定繁簡之道

早在30多年前,亞馬遜老板在公司成立初期為他的團隊制定了“兩個披薩規則”,并認為較大的團隊難以管理,并且可能會因責任越來越大而不堪重負,而一個小團隊(大約 10 人左右)則確保員工團隊的規模合適,以實現最高效率和生產力。

復雜性的本質

在2024亞馬遜云科技re:Invent大會上,Werner開場視頻講述了世界上最大的存儲系統之一Amazon S3的故事,以及通過Two-Pizza team工作法,保有高效創新的團隊。“每年我都被大家的熱情所感染”,Werner說自己參與過13次re:Invent大會,在2012年首屆亞馬遜云科技re:Invent大會上首次提出的“21世紀架構”的理念,今年——Werner引入了“繁簡之道”(The Way of Simplexity)的概念:“要真正控制你的系統,你需要管理復雜性。”

Vogels認為,復雜性并非問題本身,而是如何管理復雜性至關重要。他提出兩類復雜性:

  • 有意識的復雜性:隨新功能需求而產生
  • 無意的復雜性:導致系統脆弱和低效

隨時間變化,需求的擴展、安全等等需要解決的問題逐步積累,系統的復雜性就逐漸上升。“有意識的復雜性”是必要的,新功能需要與之匹配的系統規模。“無意的復雜性”就可能造成真正的問題,導致系統變得脆弱、低速。Werner說:首先要識別這兩種復雜性。辦法也很簡單:警示信號有很多,如發布功能速度放緩、系統頻繁升級、調試耗時、模式不一致等。那么如何管理復雜度?“保持可演進性”,Werner指出,“達爾文早已認識到,要成功形成一個復雜有機生物,唯一的方式就是無數次連續微小修正。”引用赫拉克利特的觀點:世界處于不斷的變遷之中。如果系統不持續演進,客戶會認為公司的技術已經落伍。

可演進性:持續微小修正

Werner指出,構建可控演進的架構,是應對復雜性、生存下去的關鍵所在。

Amazon S3的發展歷程是最佳例證:

  • 2006年啟動時僅有6個微服務
  • 目前已發展到超過300個微服務
  • 團隊從一開始就明確:一年后的架構將不同于初始設計

可演進性是一種長期策略,旨在應對復雜性的持續變化,而可維護性則是確保系統在短期內正常運行亞馬遜云科技為Amazon S3持續添加新功能,卻令客戶幾乎無感知其變化。

系統擴展看似簡單,但隨著內在復雜度增加,難度呈指數級上升。我們無法預測未來,但可以:

  • 設計靈活、可擴展的架構
  • 應對未知挑戰
  • 需要遠見卓識的技術規劃
  • 不斷打磨架構本身

**只有構建出能夠以可控方式演進的系統架構,我們才能從容應對復雜性的持續變化,在保證系統核心價值的同時,不斷融入創新,滿足不斷升級的需求。**這是科技巨頭架構設計的核心,也是每個技術團隊應該學習的寶貴經驗。

模塊化解耦:將復雜系統拆分

Werner以Amazon CloudWatch為例,Amazon CloudWatch作為亞馬遜云科技的關鍵基礎服務,其架構演進生動詮釋了"去大化小"的設計理念:

隨著系統不斷擴展,Amazon CloudWatch每天處理成百上千億的指標,其復雜性不斷攀升。

亞馬遜云科技的架構優化策略:

  • 將CloudWatch拆分為低耦合、高內聚的小組件
  • 定義清晰、規范的API接口
  • 提供簡單的前端服務

"去大化小"的架構思路,將復雜的大系統分解為簡單、靈活、可組合的微服務,這是應對復雜性的可演進路徑。

微服務架構的關鍵特征:

  • 每個組件職責明確
  • 變更成本低
  • 可持續優化和演進
  • 能在關鍵時刻平滑過渡

面對新功能,有兩種主要策略:

  1. 擴展現有代碼
    • 開發速度快
    • 風險:增加系統復雜度
    • 可能產生"超級服務"
  2. 創建新微服務
    • 開發周期較長
    • 優點:保持服務復雜度可控
    • 架構更清晰、更具可擴展性

重點是在開發速度和系統可維護性之間尋求平衡。

組織與架構對齊,充分領悟領導力準則

亞馬遜云科技副總裁及杰出工程師Andy Barfield登臺加入Werner演講,闡釋了第三條經驗。他表示,Amazon S3服務已經存在18年了,在構建越來越復雜系統的同時,必須承認,組織的復雜性與正在構建的軟件一樣復雜。

首先,成功的團隊不能自滿。即使一切順利,你仍然需要時刻留意可能出現的問題,并不斷提出質疑。正是這種“挑戰現狀、指出漏洞并找到問題”的精神,幫助保障Amazon S3的持久性。

第二,主人翁精神。交給團隊一個問題,并賦予他們決策權和空間去解決它。領導者的職責是賦予團隊決策權,同時保持一種緊迫感,幫助他們按時交付。

一方面要賦能團隊,授權并信任他們;另一方面也要建立良好的問責機制,營造積極向上的文化氛圍,推動持續改進。只有組織與技術架構相互匹配、相互支撐,才能真正釋放團隊的創新活力,攻克復雜性。

單元化架構:控制"爆炸范圍"

Werner強調,管理復雜性的一個關鍵策略是采用基于單元的架構(Cell-based Architectures),即將系統拆分為更小、職責更明確的獨立單元。這些單元比傳統團隊負責的部分更為細化,它們獨立運作,能夠精確地控制故障的影響范圍——即所謂的“爆炸范圍”。這意味著當某個單元發生故障或需要升級時,影響僅限于該單元本身,從而避免了連鎖反應導致整個系統的癱瘓。

結合亞馬遜的實際案例,Werner深入闡述了這一設計哲學。理想情況下,每個單元的設計應達到一個平衡點:既足夠大以處理預期的最大工作負載,又足夠小以便進行全面測試。這種權衡旨在確保單元長期維護的可靠性和安全性,同時盡量減少對客戶體驗的影響。單元化設計通過隔離故障影響,提高了系統的可靠性、彈性和安全性,使得單個單元更容易管理和演進。

配合云原生技術如容器和服務網格,單元化架構不僅降低了系統的整體復雜性,還最大限度地增強了系統的可靠性和彈性,確保為客戶提供一致且優質的體驗。其最佳實踐在《What is a cell-based architecture》一文中有所詳細描述

系統可預測性:降低不確定性

Werner指出,不確定性是管理復雜度的另一關鍵問題。不確定性通常很難處理,想象一下:你的任務是設計一個配置系統,但是現有系統的客戶正在不斷地重新配置他們的任務和參數,而且客戶的數量級是數以百萬計;這時,一種常見的方法是使用小規模事件驅動的體系結構,更改配置并存儲在數據庫中。每發送一個事件或隊列,我們就相應調整系統。但如果這種情況持續發生,系統負載均衡所必須承擔的重新配置的負載量,就會變得相當可怕。

但是,我們所采用是一種更簡單的方法,將所有的調整存儲在一個文件中,該文件包含一組固定的記錄,負載均衡器在固定的循環中,每隔幾秒鐘從該文件中獲取新的配置,并處理所有記錄。此時重新配置就是完全可預測的,可簡單地構建高度可預測系統,持續地從Amazon S3中取出一個文件,避免積壓、瓶頸,自然而然地自我修復——這就是持續工作模式。

另一個利用持續工作模式的例子是Amazon Route53的健康檢查。配置健康檢查之后,無論節點是否可用,健康狀況檢查器只會定期推送出完整的配置文件到聚合器,聚合器合并所有請求,然后將其推送到一個更大的表中,并推送Amazon Route53。這就實現了不會每次都觸發調整,只有當DNS請求到達并被解析到一組IP地址時,系統才會檢查表中的記錄。這樣,系統就是高度可預測的。而這是特意設計出來的。化繁為簡需要有意識地配置和調整,設計可預測的系統,以減少不確定性。

自動化:簡化復雜重復流程

“自動化是另一條重要經驗”,Werner說。有些過程需要人工參與,但對于大量功能而言,自動化是關鍵所在。Werner以安全領域為例,亞馬遜云科技每天要處理超過1萬億次DNS請求,并且每天都會自動發現12.4多萬個惡意域名——這是人工系統無法復制的自動化過程。因此,我們不應該問“我們應該自動化什么?”,而應該問的是“我們還有哪些沒有自動化?”我們應該將一切無需判斷決策的事務都自動化。

例如,客戶可以使用Amazon Bedrock Serverless Agentic工作流程,創建智能化的票據分級系統。在這些系統中,針對特定用例場景訓練的自主AI代理可以自行解決問題,在必要時才升級給人工處理。自動化是應對復雜性、提高效率的重要手段。當我們將大量重復性工作交給機器去執行時,不僅能極大降低人工操作的復雜度和出錯率,還可以讓人類的注意力集中在真正需要判斷和創造的環節上。

精益求精-基于微秒級精準時鐘,更進一步降低分布式系統復雜度

在分享全部六點繁簡之道的經驗后,Werner講述了“復雜性的負擔”,亞馬遜云科技正在通過構建更簡單、更高效的系統,幫助客戶將自主構建系統的復雜性轉移到亞馬遜云科技云服務上來。他強調了亞馬遜云科技CEO Matt Garman在主題演講中發布的Amazon Aurora DSQL擴展功能這一典型案例,相比較于傳統云數據庫,它不僅消除了全球部署及資源管理的復雜度,更將跨區域強一致性和低延遲,以及全球同步時鐘的復雜性轉移給了云。

同時,Werner深入解讀了Amazon Aurora DSQL背后的核心技術與邏輯,包括關鍵的繁簡之道思路、從前端到存儲的5級傳輸架構,以及打破了分布式系統時間無用論,微秒級時間精準同步的Amazon Time Sync Service。正是這一系列突破性的技術,為客戶提供跨區域、強一致、低延遲的Amazon Aurora DSQL。

Werner說,時間可能是最根本的構建模塊。亞馬遜云科技的微秒級精準時鐘和時間同步服務,將幫助客戶顯著降低復雜度。

社會責任的承擔:NOW GO BUILD CTO Fellowship

在主題演講的最后,Werner表示,作為科技從業者,“我們有責任幫助客戶解決世界上最棘手的問題。”正是出于這一理念,去年他與救濟技術組織(Tech To The Rescue)領導的AI for Changemakers組織以及亞馬遜云科技社會責任團隊合作,設立了“NOW GO BUILD CTO Fellowship”。該計劃旨在支持那些利用人工智能和云計算推動積極變革的首席技術官們。

科技的力量是雙刃劍,能造福世界,也可能帶來不利影響。作為科技從業者,我們肩負著更大的社會責任。Werner呼吁,不要將科技孤立于社會之外,而是要主動以科技助力解決人類面臨的種種挑戰。“現在去構建”一個更美好的世界,正是科技人的終極使命!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/62374.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/62374.shtml
英文地址,請注明出處:http://en.pswp.cn/web/62374.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Java Web 開發學習中:過濾器與 Ajax 異步請求

一、過濾器 Filter: 過濾器的概念與用途 在一個龐大的 Web 應用中,有許多資源需要受到保護或進行特定的預處理。過濾器就像是一位智能的守衛,站在資源的入口處,根據預先設定的規則,決定哪些請求可以順利訪問資源&…

ThinkPHP框架審計--基礎

基礎入門 搭建好thinkphp 查看版本方法,全局搜version 根據開發手冊可以大致了解該框架的路由 例如訪問url http://127.0.0.1:8094/index.php/index/index/index 對應代碼位置 例如在代碼下面添加新方法 那么訪問這個方法的url就是 http://127.0.0.1:8094/index.…

淺談Python庫之?Requests

一、?Requests的介紹 Requests 是一個簡單易用的 HTTP 庫,用于發送各種 HTTP 請求。它由 Kenneth Reitz 創建,并廣泛用于 Python 社區中。 二、?Requests的特點 1、人性化的 API:簡潔的接口使得編寫請求代碼變得簡單直觀。 2、跨平臺&…

如何在vue中使用ECharts

一. 打開ECharts官網,點擊快速入門 下面是ECharts官網的鏈接 https://echarts.apache.org/ 二.在vue中使用 1.首先先引入Echarts js文件 如下圖,下面的第一張圖片是官網的實現,第二章圖片是我根據官網的實現 2.給ECharts 創建一個DOM容器 3. 使用ec…

網絡原理之 IP 協議

目錄 1. IP 協議報文格式 2. 網段劃分 3. 地址管理 1) 動態分配 2) NAT 機制 (網絡地址轉換) 3) IPv6 4. 路由選擇 1. IP 協議報文格式 IP 協議是網絡層的重點協議。 網絡層要做的事情,主要就是兩方面: 1) 地址管理 制定一系列的規則&#xff…

HyperMesh CFD功能詳解:后處理功能Part 2

Clips Clips 按鈕包含兩個工具。Box Clip用于空間上的裁剪,Scalar Clip可以根據物理量的范圍裁剪。 示例:Box Clips 裁剪 示例:Scalar Clips 裁剪 通過裁剪,僅顯示density范圍是10~20的等值面 示例:顯示效果控制 部分透…

Java項目實戰II基于微信小程序的跑腿系統(開發文檔+數據庫+源碼)

目錄 一、前言 二、技術介紹 三、系統實現 四、核心代碼 五、源碼獲取 全棧碼農以及畢業設計實戰開發,CSDN平臺Java領域新星創作者,專注于大學生項目實戰開發、講解和畢業答疑輔導。獲取源碼聯系方式請查看文末 一、前言 在快節奏的現代生活中&…

【機器學習與數據挖掘實戰案例01】基于支持向量回歸的市財政收入分析

【作者主頁】Francek Chen 【專欄介紹】 ? ? ?機器學習與數據挖掘實戰 ? ? ? 機器學習是人工智能的一個分支,專注于讓計算機系統通過數據學習和改進。它利用統計和計算方法,使模型能夠從數據中自動提取特征并做出預測或決策。數據挖掘則是從大型數…

windows下nacos啟動報錯:java.lang.unsatisfiedLinkError: C:\USers\亂碼AppData\xxx.dll

問題 看了許多別的帖子,大家都是因為缺少dll包,下載安裝 Microsoft Visual C 2015 Redistributable 就可以。但我試過了不行。思來想去,之前正常的時候用的JDK版本是17,后面別的項目用1.8給切換回來了。然后嘗試配置環境變量將JD…

JavaEE 【知識改變命運】03 多線程(3)

文章目錄 多線程帶來的風險-線程安全線程不安全的舉例分析產出線程安全的原因:1.線程是搶占式的2. 多線程修改同一個變量(程序的要求)3. 原子性4. 內存可見性5. 指令重排序 總結線程安全問題產生的原因解決線程安全問題1. synchronized關鍵字…

并發在前端中的應用?

?并發在前端中的應用主要體現在處理多個請求和優化頁面加載速度方面?。前端并發處理通常涉及在極短時間內發送多個數據請求,例如在頁面渲染時同時請求多個數據。通過并發處理,可以顯著減少頁面加載時間,提升用戶體驗。 前端并發處理的具體…

【力扣】409.最長回文串

問題描述 思路解析 因為同時包含大小寫字母,直接創建個ASCII表大小的桶來標記又因為是要回文子串,所以偶數個數的一定可以那么同時,對于出現奇數次數的,我沒需要他們的次數-1,變為偶數,并且可以標記出現過…

計算機視覺在科學研究(數字化)中的實際應用

計算機視覺是一種利用計算機技術來解析和理解圖像和視頻的方法。.隨著計算機技術的不斷發展,計算機視覺被廣泛應用于科學研究領域,為科學家提供了無限的可能。 一、生命科學領域 在生命科學領域,計算機視覺被廣泛用于圖像識別、分類和測量等…

springboot381銀行客戶管理系統(論文+源碼)_kaic

摘 要 伴隨著信息技術與互聯網技術的不斷發展,人們進到了一個新的信息化時代,傳統管理技術性沒法高效率、容易地管理信息內容。為了實現時代的發展必須,提升管理高效率,各種各樣管理管理體系應時而生,各個領域陸續進到…

JMX 組件架構即詳解

JMX架構由三個主要組件構成: ?MBeans(Managed Beans)?:代表可管理的資源,是JMX的核心。MBean可以是Java類或接口,提供了管理操作的接口,如獲取系統信息、設置參數等。?MBeanServer?&#x…

LLMs之ICL:《Bayesian scaling laws for in-context learning》翻譯與解讀

LLMs之ICL:《Bayesian scaling laws for in-context learning》翻譯與解讀 導讀:這篇論文的核心議題是理解和建模大型語言模型(LLM)的上下文學習(ICL)能力。文章從貝葉斯學習的角度出發,提出了一…

基于單片機和測頻法的頻率計設計及proteus仿真

摘要: 傳感器廣泛應用在自動化測量中,該文利用 51 單片機 2 個 16 位定時器和測量頻率中的測頻法設計了測量方波的頻率計,并用LCD1602 液晶顯示頻率、 proteus 仿真,測試結果表明設計思路正確、誤差小。 關鍵詞: 單片機;測頻法;頻率計; proteus 1 概述 傳感器能感受到…

軟件漏洞印象

軟件漏洞印象 軟件安全性檢測 軟件安全靜態分析:學術界一度十分熱衷的偏理論性方法軟件漏洞動態挖掘,工程界普遍采用動態漏洞挖掘方式,即Fuzz技術,也稱為模糊測試 漏洞利用 vs. 漏洞修復 對于已發現的軟件漏洞 黑客會基于Meta…

計算機網絡 —— HTTPS 協議

前一篇文章:計算機網絡 —— HTTP 協議(詳解)-CSDN博客 目錄 前言 一、HTTPS 協議簡介 二、HTTPS 工作過程 1.對稱加密 2.非對稱加密 3.中間人攻擊 4.引入證書 三、HTTPS 常見問題 1.中間人能否篡改證書? 2.中間人能否調…

定點數的乘除運算

原碼一位乘法 乘積的符號由兩個數的符號位異或而成。(不參與運算)被乘數和乘數均取絕對值參與運算,看作無符號數。乘數的最低位為Yn: 若Yn1,則部分積加上被乘數|x|,然后邏輯右移一位;若Yn0&…