罕見!云計(jì)算一哥CTO,現(xiàn)場(chǎng)不發(fā)產(chǎn)品只講教訓(xùn)
金磊 明敏 發(fā)自 拉斯維加斯量子位 | 公眾號(hào) QbitAI罕見,著實(shí)罕見。一場(chǎng)近2小時(shí)的活動(dòng),CTO竟然全程沒有發(fā)布任何新品!這就是亞馬遜云科技的CTO——Werner Vogels,剛剛在自家年度盛宴re:Invent24上演的一幕。但有一說一,即便如此,諾大的現(xiàn)場(chǎng),幾乎無人離席。為什么?因?yàn)楸绕鹦庐a(chǎn)品,Werner相當(dāng)于是把他入職亞馬遜20年背后更珍貴的經(jīng)驗(yàn)給公開出來了。而且劍指生成式AI,共計(jì)六大Lesson:Lesson1:未雨綢繆Make evolvability a requirement.Lesson2:化繁為簡(jiǎn)Break complexity into pieces.Lesson3:各司其職Align organization to architecture.Lesson4:小而精美Organize into cells.Lesson5:未卜先知Design predictable systems.Lesson6:機(jī)器代勞Automate complexity.之所以會(huì)如此,是因?yàn)樵赪erner看來,現(xiàn)在不論是數(shù)據(jù)還是大模型的參數(shù)規(guī)模都在呈現(xiàn)指數(shù)級(jí)的增長(zhǎng),面發(fā)復(fù)雜和龐大的系統(tǒng),行業(yè)亟需一個(gè)方。而這個(gè)方,簡(jiǎn)而言之,就是把Complexity(復(fù)雜性)變?yōu)镾implexity(簡(jiǎn)單性)。這又該如何理解?Werner舉了一個(gè)非常形象的例子——自行車。他認(rèn)為系統(tǒng)的組件數(shù)量并不能直接衡量其復(fù)雜性。例如:獨(dú)輪車(Unicycle):只有最少的組件,看起來很簡(jiǎn)單,但實(shí)際操作卻非常困難,需要很高的技術(shù)和努力。三輪車(Tricycle):組件稍多,穩(wěn)定性更強(qiáng),但在靈活性方面受到限制,比如轉(zhuǎn)彎不夠方便。普通自行車(Bicycle):組件數(shù)量介于兩者之間,卻提供了最佳的平衡點(diǎn),既靈活又易于掌握。普通自行車雖然比獨(dú)輪車和三輪車有更多的組件,但其設(shè)計(jì)達(dá)到了功能和體驗(yàn)的最佳平衡,因此也讓它成為了現(xiàn)在最簡(jiǎn)單易用的交通工具。一言蔽之,簡(jiǎn)單性不僅僅是減少組件,而是系統(tǒng)整體體驗(yàn)的優(yōu)化。Werner今天提出的這套方,正是把亞馬遜云科技多年來在實(shí)踐中“踩過坑”后總結(jié)而來。所以,正如那句“還要啥自行車”,亞馬遜云科技都幫我們整理完了,趕緊來看下吧~Lesson1:未雨綢繆,系統(tǒng)可演化是必要Make evolvability a requirement — Evolvability is a precondition for managing complexity.將可演化性作為一項(xiàng)要求,可演化性是應(yīng)對(duì)復(fù)雜性的一種預(yù)判首先第一課,Werner Vogels提出,可進(jìn)化性是必須的,這是進(jìn)行復(fù)雜管理的先決條件。什么意思?隨著時(shí)間推移,系統(tǒng)是一定會(huì)發(fā)生變化的。因此在設(shè)計(jì)之初,就要確保架構(gòu)能夠輕松適應(yīng)新的需求。而且進(jìn)化能力不同于可維護(hù)性,前者是長(zhǎng)期的、粗粒度的功能或結(jié)構(gòu)增強(qiáng),而后者是短期的、細(xì)粒度的局部變化。不然就會(huì)像溫水煮青蛙一樣,等意識(shí)到問題時(shí),或許就太晚了。在系統(tǒng)設(shè)計(jì)初期時(shí),就應(yīng)該做好前期規(guī)劃、管理系統(tǒng)復(fù)雜性。最直接的例子就是Amazon S3的發(fā)展。最初,S3的設(shè)計(jì)目標(biāo)是提供一個(gè)簡(jiǎn)單、耐用且具有成本效益的云存儲(chǔ)服務(wù)。后來隨著客戶數(shù)量以及服務(wù)量增加,S3不得不改進(jìn)其技術(shù)和架構(gòu)。比如從單引擎系統(tǒng)升級(jí)為支持多個(gè)微服務(wù)和分布式存儲(chǔ)的架構(gòu)。實(shí)際上,每一年S3都會(huì)增加新功能,但從不影響現(xiàn)有服務(wù)的穩(wěn)定性。好比給高速運(yùn)轉(zhuǎn)的引擎加部件。這得益于其在系統(tǒng)設(shè)計(jì)時(shí)就考慮到了未來的升級(jí)需求,設(shè)計(jì)了靈活、可擴(kuò)展的架構(gòu),以應(yīng)對(duì)未知的挑戰(zhàn),因此才可以在未來逐步擴(kuò)展能力。這種可進(jìn)化性使得它能不斷引入新技術(shù)、新功能和新流程,以適應(yīng)新市場(chǎng)需求,保持競(jìng)爭(zhēng)力。不過,隨著系統(tǒng)不斷進(jìn)化,復(fù)雜性就會(huì)增加。如何控制系統(tǒng)的復(fù)雜程度、提高可維護(hù)性,這是Werner Vogels講的第二課。Lesson2:化繁為簡(jiǎn),提出微服務(wù)架構(gòu)Break complexity into pieces — Disaggregate into building blocks with high cohesion and well-defined APIs.將復(fù)雜性拆解成多個(gè)部分,分解為內(nèi)聚性高且有明確定義API的構(gòu)建模塊。亞馬遜云科技最初采用單體架構(gòu),后面隨著業(yè)務(wù)發(fā)展,系統(tǒng)變得越來越復(fù)雜,單體架構(gòu)表現(xiàn)出了擴(kuò)展性差、可維護(hù)性低等問題。所以,亞馬遜云科技決定將單體架構(gòu)拆解為多個(gè)的小型服務(wù),即微服務(wù)架構(gòu)。每個(gè)服務(wù)負(fù)責(zé)一個(gè)業(yè)務(wù)功能,部署和維護(hù),并定義良好的API接口以便它們相互通信。在微服務(wù)架構(gòu)劃分中,遵循單一職責(zé)原則,即每個(gè)服務(wù)只負(fù)責(zé)一個(gè)單一的功能或智能。增量拆分原則是將整個(gè)系統(tǒng)逐步拆分成多個(gè)較小的部分,然后逐步迭代進(jìn)行拆分。同時(shí)還要求一個(gè)服務(wù)內(nèi)部組件之間的耦合度要盡可能低,與其他服務(wù)之間的依賴性盡可能小。這樣做可以提高服務(wù)的性,使得各個(gè)服務(wù)可以地進(jìn)行開發(fā)、測(cè)試、部署和擴(kuò)展。這種方法不僅減少了系統(tǒng)間的耦合,還讓團(tuán)隊(duì)能更專注于各自的模塊。全系統(tǒng)可以通過組件的不斷迭代優(yōu)化而持續(xù)演進(jìn),并在關(guān)鍵時(shí)刻平滑過渡,避免服務(wù)中斷。Lesson3:各司其職,組織和架構(gòu)對(duì)齊Align organization to architecture — Build small teams, challenge the status quo, and encourage ownership.讓組織與架構(gòu)相匹配,組建小團(tuán)隊(duì),挑戰(zhàn)現(xiàn)狀并鼓勵(lì)主人翁意識(shí)。Werner Vogels認(rèn)為,組織構(gòu)建要和系統(tǒng)架構(gòu)保持一致。當(dāng)系統(tǒng)架構(gòu)被拆分成一個(gè)個(gè)小模塊后,組織也應(yīng)該如此。有多小?一個(gè)形象的比方——大概兩塊披薩就能喂飽整個(gè)團(tuán)隊(duì)(doge)。在亞馬遜云科技內(nèi)部,這種機(jī)制也被稱為“兩個(gè)披薩團(tuán)隊(duì)”。它能很好解決傳統(tǒng)職能層次導(dǎo)致的溝通效率低下、決策緩慢等問題。這種方法不僅提高了團(tuán)隊(duì)的靈活性和自主性,還促進(jìn)了創(chuàng)新和快速響應(yīng)市場(chǎng)需求的能力。讓每個(gè)團(tuán)隊(duì)地工作和決策,可以進(jìn)一步加快產(chǎn)品開發(fā)和迭代速度,這也是亞馬遜云科技能夠長(zhǎng)期保持競(jìng)爭(zhēng)力和創(chuàng)新力的訣竅之一。另一方面也要建立良好的問責(zé)機(jī)制,營(yíng)造積極向上的文化氛圍,推動(dòng)持續(xù)改進(jìn)。Lesson4:小而精美,一個(gè)team就是一個(gè)細(xì)胞Organize into cells — In a complex system, you must reduce the scope of impact.組織成單元形式,在復(fù)雜系統(tǒng)中必須縮小影響范圍。Werner Vogels還提到了一種內(nèi)部的組織結(jié)構(gòu),被稱為“細(xì)胞化”。它將應(yīng)用程序分解成更小的、運(yùn)行的模塊,使每個(gè)模塊都能運(yùn)行,把問題隔離在特定單元內(nèi),不影響其他單元。就像是一個(gè)個(gè)細(xì)胞,它們擁有自己內(nèi)部的功能,并通過細(xì)胞膜隔絕出一個(gè)相對(duì)的環(huán)境。這在復(fù)雜系統(tǒng)中至關(guān)重要,有助于維護(hù)系統(tǒng)的穩(wěn)定性和可靠性。例如,亞馬遜云科技服務(wù)通過散列算法將客戶分配到特定單元,避免單點(diǎn)故障對(duì)所有用戶的影響。當(dāng)然單元的劃分也要大小適中,既要大到能夠處理最大的工作量,又要小到可以進(jìn)行實(shí)際執(zhí)行。Lesson5:未卜先知,降低不確定性Design predictable systems — Reduce the impact of uncertainty.設(shè)計(jì)可預(yù)測(cè)的系統(tǒng),降低不確定性的影響。設(shè)計(jì)可預(yù)測(cè)系統(tǒng)的核心目標(biāo)是減少不確定性對(duì)系統(tǒng)的影響,使系統(tǒng)能夠在高度復(fù)雜的環(huán)境中仍然保持穩(wěn)定和高效。設(shè)計(jì)可預(yù)測(cè)系統(tǒng)的幾個(gè)關(guān)鍵策略是:簡(jiǎn)單確定通過保持系統(tǒng)設(shè)計(jì)的簡(jiǎn)單性,能夠更容易地預(yù)測(cè)和管理系統(tǒng)的行為。例如,在負(fù)載平衡的處理上,亞馬遜云科技采用了一種更簡(jiǎn)單的方法,將所有變化推送到一個(gè)文件中,然后在固定的循環(huán)中更新負(fù)載平衡器的配置。這種方法確保了系統(tǒng)的行為是可預(yù)測(cè)的,并且能夠處理所有的配置條目。持續(xù)工作模式使用持續(xù)工作模式,從Amazon S3中定期拉取文件,避免積壓和瓶頸。這種模式自然具有自我修復(fù)的特性,因?yàn)槠聊坏目捎眯詷O高。自動(dòng)化和標(biāo)準(zhǔn)化自動(dòng)化是減少復(fù)雜性的關(guān)鍵手段。通過標(biāo)準(zhǔn)化操作,可以減少人為干預(yù)所帶來的不確定性和錯(cuò)誤。例如,在健康檢查器系統(tǒng)中,定期推送完整的配置文件,而不是每次都推送變化。分布式架構(gòu)和模塊化設(shè)計(jì)系統(tǒng)時(shí),應(yīng)將其分解為的模塊,每個(gè)模塊可以運(yùn)行和擴(kuò)展。這樣可以在某個(gè)模塊出現(xiàn)問題時(shí),將影響控制在最小范圍內(nèi)。高可觀察性系統(tǒng)應(yīng)具備高可觀察性,能夠?qū)崟r(shí)監(jiān)控和分析系統(tǒng)的運(yùn)行狀態(tài)。通過這種方式,可以及時(shí)發(fā)現(xiàn)和解決潛在的問題。處理復(fù)雜性的策略通過將復(fù)雜的任務(wù)分解為簡(jiǎn)單、可管理的部分,可以有效地控制和處理系統(tǒng)的復(fù)雜性。亞馬遜云科技一些服務(wù)采用固定的處理循環(huán)而不是驅(qū)動(dòng)架構(gòu),從而確保系統(tǒng)的行為可預(yù)測(cè),降低了運(yùn)行時(shí)的復(fù)雜性。Lesson6:機(jī)器代勞,提高效率Automate complexity — Automate everything that does not require high judgment.使復(fù)雜性自動(dòng)化,將不需要高度判斷力的一切事務(wù)自動(dòng)化。簡(jiǎn)單來說,這就是讓機(jī)器來幫人處理那些可以簡(jiǎn)單判斷的任務(wù),把需要?jiǎng)?chuàng)造性和復(fù)雜決策的任務(wù)留給人類。這種自動(dòng)化能更進(jìn)一步提高效率。比如利用AI來監(jiān)測(cè)惡意活動(dòng),并自動(dòng)響應(yīng),保護(hù)客戶業(yè)務(wù)免受安全威脅。自動(dòng)化不僅僅是解決常見問題的工具,它應(yīng)該成為標(biāo)準(zhǔn)流程的一部分,只有在處理特殊情況時(shí),才需要人工輸入。亞馬遜云科技內(nèi)部通過對(duì)支持票進(jìn)行自動(dòng)分類和優(yōu)先排序,有效減少了人工操作,提高了問題解決速度。驗(yàn)證六個(gè)Lesson的價(jià)值Werner提出的方,可以說不僅是亞馬遜云科技服務(wù)成功的基石,更是現(xiàn)代分布式系統(tǒng)設(shè)計(jì)的重要指導(dǎo)。不過在理論之外,他在現(xiàn)場(chǎng)也展示了經(jīng)得起六大Lesson驗(yàn)證的產(chǎn)品——Amazon Aurora DSQL。(注:于re:Invent24第一天,由CEO Matt Garmarn發(fā)布,并非Werner首發(fā)。)它是一種新型無服務(wù)器分布式數(shù)據(jù)庫,為的就是解決傳統(tǒng)數(shù)據(jù)庫在擴(kuò)展性和性能方面的挑戰(zhàn)。對(duì)應(yīng)Lesson1,Aurora DSQL可以說是從設(shè)計(jì)之初就是為未來的可演化性做好了準(zhǔn)備。Aurora DSQL將數(shù)據(jù)庫功能解耦為組件,如查詢處理器(Query Processor)、協(xié)調(diào)器(Adjudicator)、日志模塊(Journal)和存儲(chǔ)引擎(Storage Engine)。這種設(shè)計(jì)允許每個(gè)模塊根據(jù)需要升級(jí)或替換,而不影響其他部分。隨著技術(shù)的發(fā)展,Aurora DSQL能夠通過模塊替換快速適應(yīng)新需求。例如,日志模塊可根據(jù)吞吐量擴(kuò)展,存儲(chǔ)引擎可優(yōu)化數(shù)據(jù)讀取效率,從而支持業(yè)務(wù)規(guī)模的增長(zhǎng)。對(duì)應(yīng)Lesson2,Aurora DSQL完全遵循“化繁為簡(jiǎn)”的理念,將復(fù)雜性分解為多個(gè)且高內(nèi)聚的模塊。例如查詢處理器專注于事務(wù)處理和快照隔離、日志模塊負(fù)責(zé)事務(wù)持久性和全局排序、存儲(chǔ)引擎優(yōu)化數(shù)據(jù)的讀寫性能。通過清晰的API實(shí)現(xiàn)低耦合,各模塊只需要完成特定的輸入輸出任務(wù),無需處理全局邏輯。對(duì)應(yīng)Lesson3,其各模塊可以由小型團(tuán)隊(duì)開發(fā)和維護(hù),這與亞馬遜云科技的“兩塊披薩團(tuán)隊(duì)”理念完全一致。例如查詢處理器團(tuán)隊(duì)可以專注于事務(wù)邏輯優(yōu)化,而日志模塊團(tuán)隊(duì)則可以重點(diǎn)解決持久性問題,各司其職卻無縫協(xié)作。對(duì)應(yīng)Lesson4,Aurora DSQL采用分布式架構(gòu),將系統(tǒng)功能劃分為多個(gè)單元以限制故障影響范圍。例如數(shù)據(jù)存儲(chǔ)被分為多個(gè)分片(Shards),每個(gè)分片運(yùn)行并處理特定數(shù)據(jù),確保某個(gè)分片故障不會(huì)影響全局服務(wù)。而事務(wù)協(xié)調(diào)模塊(Adjudicator)處理沖突,確保并發(fā)事務(wù)之間的隔離性和一致性,同時(shí)減少對(duì)核心數(shù)據(jù)庫存儲(chǔ)的影響。對(duì)應(yīng)Lesson5,Aurora DSQL解決了分布式系統(tǒng)中時(shí)間管理的傳統(tǒng)難題,通過本地時(shí)鐘處理事務(wù)的“開始時(shí)間”和“提交時(shí)間”,消除了對(duì)復(fù)雜分布式一致性算法(如Paxos)的依賴。同時(shí),存儲(chǔ)引擎采用固定的查詢和數(shù)據(jù)處理方式,避免了驅(qū)動(dòng)架構(gòu)可能帶來的不可預(yù)測(cè)性,使系統(tǒng)性能更加穩(wěn)定。對(duì)應(yīng)Lesson6,Aurora DSQL日志模塊實(shí)現(xiàn)了自動(dòng)化,事務(wù)提交后會(huì)立即寫入日志模塊,日志模塊自動(dòng)排序和分發(fā)事務(wù),確保持久性和一致性。并且其存儲(chǔ)和查詢模塊可以根據(jù)負(fù)載動(dòng)態(tài)擴(kuò)展,無需人工干預(yù),提高了資源利用效率。由此可見,亞馬遜云科技這次提出的六個(gè)Lesson,是經(jīng)過考驗(yàn)的那種,更是“值得一抄的作業(yè)”。而亞馬遜云科技之所以能到做如此,離不開貫穿這幾天所有Keynote的關(guān)鍵詞,那就用戶需求(Customer Needs)。正如CEO Matt Garman所說的那句話:Innovation Driven by Customer Needs.客戶需求驅(qū)動(dòng)創(chuàng)新。不過有一說一,其實(shí)很多服務(wù)型企業(yè)同樣是把客戶需求放在第一位,那么亞馬遜云科技又有何獨(dú)特之處呢?在量子位與亞馬遜云科技全球客戶技術(shù)支持與服務(wù)副總裁Uwem Ukpong交流過程中得到了明確的答案:我們非常擅長(zhǎng)精準(zhǔn)捕捉客戶的需求,會(huì)坐下來面對(duì)面刨根問底的程度,不錯(cuò)過任何細(xì)節(jié)。并且我們屬于務(wù)實(shí)派的那種,先做再說。One More Thing:Werner在亞馬遜就職長(zhǎng)達(dá)20年之久,是全球最著名的CTO之一。而看過近幾年re:Invent的小伙伴可以發(fā)現(xiàn),他的專場(chǎng)發(fā)布會(huì)有一個(gè)鮮明的特點(diǎn),那就是Werner很喜歡出鏡微電影。最后就來欣賞一下這位“老戲骨”和他的Simplexity吧~—完—點(diǎn)這里?關(guān)注我,記得標(biāo)星哦~一鍵三連「分享」、「點(diǎn)贊」和「在看」科技前沿進(jìn)展日日相見 ~