圖書標籤: 架構 架構設計 計算機 係統架構 互聯網 軟件工程 技術 已購買
发表于2024-11-25
架構真經 pdf epub mobi txt 電子書 下載 2024
前言
感謝你對本書第2版感興趣!作為一本入門、進修和輕量級的參考手冊,本書旨在幫助工程師、架構師和管理者研發及維護可擴展的互聯網産品。本書給齣瞭一係列規則,每個規則圍繞著不同的主題展開討論。大部分的規則聚焦在技術上,少數規則涉及一些關鍵的思維或流程問題,每個規則對構建可擴展的産品都是至關重要的。這些規則在深度和焦點上都有所不同。有些規則是高級的,例如定義一個可以應用於幾乎任何可擴展性問題的模型;其他的則比較具體,可能用來解釋一種技術,例如怎麼修改HTTP頭來最大化內容緩存。在本版中,我們增加瞭成功的互聯網産品公司中首席技術官和企業傢的故事,這裏涉及的公司既包括初創企業也有財富500強公司。這些故事有助於說明規則是如何形成的,以及它們為什麼在海量事務處理環境中顯得如此重要。沒有什麼其他故事可以比亞馬遜更能說明在互聯網上急速擴展所遇到的需求和挑戰。裏剋·達爾澤爾是亞馬遜的第一位首席技術官,在本書中他用自己的故事闡述瞭幾個規則。
馴服互聯網的狂野西部
從創新和行業破壞的角度來看,很少有像亞馬遜這樣成功的公司。自1994年成立以來,亞馬遜所做齣的貢獻已經重新定義瞭至少三個行業:消費者商務、印刷齣版和服務器托管。亞馬遜的所作所為已經遠遠超齣瞭行業破壞;他們一直是麵嚮服務架構、研發團隊建設和無數其他工程方法的思想領袖。亞馬遜的規模和全維度的業務擴展令人難以置信;該公司以傳統實體企業難以想象的速度不斷成長。自1998年以來,亞馬遜從年收入6億美元(根本就不是小企業)增長到2015年驚人的1070億美元[1]。2015年世界上最大的零售商是沃爾瑪,其年銷售額為4857億美元[2]。但是沃爾瑪自1962年以來就一直存在,它花瞭35年的時間使銷售額攀升到1000億美元,而亞馬遜卻隻用瞭21年。如果沒有一個或幾個齣自亞馬遜的故事,那些自稱編纂的是來自於首席技術官口中並由他們創造的可擴展性規則的書將是不完整的。
傑夫·貝佐斯於1994年7月建立瞭亞馬遜(原名Cadabra),並在1995年推齣Amazon.com作為在綫圖書商。1997年,貝佐斯聘請瞭時任沃爾瑪信息技術副總裁的裏剋·達爾澤爾。裏剋領導亞馬遜研發團隊長達十年。讓我們和裏剋一起迴顧他在亞馬遜職業生涯中的故事:
“當我在沃爾瑪時,我們有一個世界上最大的關係型數據庫支撐著公司的業務。但是亞馬遜團隊很快就明白瞭,那個巨大的單體數據庫根本就不適用於亞馬遜。即使在那個時候,亞馬遜係統在一個星期內處理的交易比沃爾瑪係統在一個月內要處理的交易量還要大。如果再綜閤考慮不可思議的增長,那麼很明顯單體的係統根本就跟不上節奏。有一天,傑夫[貝佐斯]帶我去吃午飯,我告訴他,我們需要把現在的單體係統拆分成服務。他說,“這很好,但是我們需要在這個業務的周圍建造一條護城河,以獲得1400萬客戶。”我解釋說,如果現在還不開始這些拆分工作,那麼我們有可能撐不過聖誕節。”
裏剋接著說,“請記住,這是20世紀90年代中後期。研發分布式事務處理係統的公司鳳毛麟角。如果齣現事務處理係統的交易量同比增長超過三倍,沒有幾個地方可以幫你提齣如何解決擴展問題的方案。沒有任何規則手冊,也沒有任何專傢曾經做過或者經曆過。這是一個嶄新的戰地前沿——一個完全荒涼的西部。但我們很清楚,要成功就必須把這些交易分散下去。與我在沃爾瑪成功所做的事情相反,如果我們要保障解決方案和組織可以擴展,那麼就需要把解決方案和底層數據庫拆分成數個服務。”(提醒讀者注意,本書的第2章專門講解這類拆分。)
“我們開始著手將電子商務引擎和商店引擎從後端的訂單處理係統中拆分齣來。這是亞馬遜所謂的麵嚮服務架構旅程的真正起點。各種各樣的事情都因此而發生,其中包括亞馬遜的團隊獨立性和API閤同。最終,這項工作創造瞭一個新的行業[基礎設施即服務],並為亞馬遜網絡服務帶來瞭一個新的業務——那是另外一段故事。這項工作並不簡單;之前單體數據庫中的一些組成部分,諸如客戶數據——我們稱之為亞馬遜客戶數據庫或ACB——花瞭我們幾年的時間纔搞清楚應該怎麼拆分。我們從交易量高的服務開始,並且可以對軟件和數據快速拆分,如前麵描述的前端和後端係統。每做一個拆分都進一步分散係統,從而獲得更大的擴展空間。最後,我們重新解決ACB這個老大難問題,終於在2004年左右完成瞭拆分。”
“團隊聰明得令人難以相信,但是偶然我們也有些幸運。我們並不是從來都沒有失敗過,但是一旦犯瞭錯,我們會迅速改正並且弄清楚該怎樣解決相關的問題。幸運的是,我們發生過的事故沒有像其他那些也在同一條道路上掙紮的公司損失那麼嚴重,影響那麼大。在建立這些分布式服務的過程中有一些重要經驗來自於這些拆分,學習和掌握瞭諸如需要限製會話和狀態、遠離分布式的兩階段事務提交、通信盡可能保持異步等。事實上,對發布-訂閱模式的消息總綫異步通信我並沒有強烈的偏好,沒有它的支撐,我不知道是否還可以拆分和擴展。我們還學習到,如果可能盡量讓事務在最終一緻,除瞭支付以外,這具有廣泛的適用性。實時一緻性的成本很高,如果人們意識不到這個差彆,可讓事情暫時處於模糊狀態,在後期同步。當然,也有一些人員或者團隊方麵的學習經驗,例如保持團隊規模足夠小[3],在團隊之間發生的服務調用需要簽訂特彆的閤約等。”
裏剋關於如何在10年時間內領導亞馬遜可擴展性研發團隊的故事非常有價值。我們可以從他的見解吸取一些教訓,這些教訓可以避免很多麵臨可擴展性挑戰的公司走彎路。我們將引用裏剋和其他幾位著名的首席技術官及成功的互聯網産品公司企業傢的故事(這些公司既包括初創企業也包括財富500強公司),來說明本書討論的規則對海量交易環境擴展的重要性。
快速入門指南
經驗豐富的工程師、架構師和經理可以閱讀所有規則的概要部分,包含規則名稱、內容、場景、用法、原因和要點。你可以瀏覽每章各個規則的概要部分,也可以直接跳到第13章,該章匯集瞭所有規則的概要部分。讀完這些規則的概要後,你可以選擇性地閱讀覺得有趣或有新鮮感的章節。
對於經驗不足的讀者,我們明白,掌握50條規則負擔太重。我們確信最終你會熟悉所有的規則,但我們也瞭解你需要協調自己的時間。考慮到這一點,我們為經理選擇瞭5章,為軟件研發人員選擇瞭5章,為技術運維人員選擇瞭5章,我們推薦你搶先閱讀本書,以免落後於其他人。
經理可以選擇閱讀以下幾章:
第1章大道至簡
第2章分而治之
第4章先利其器
第7章前車之鑒
第12章意猶未盡
軟件研發人員可以選擇閱讀以下幾章:
. 第1章大道至簡
第2章分而治之
第5章畫龍點睛
第10章超然物外
第11章異步通信
技術運維人員可以選擇閱讀以下幾章:
第2章分而治之
第3章水平擴展
第6章緩存為王
第8章重中之重
第9章有備無患
不管你是什麼職位,如果有時間,建議你通讀本書以掌握本書中的規則和概念。本書很短,你可以在短途的飛行中完成閱讀。
讀過第一遍後,本書可以作為參考書。如果你正在計劃修復或重新架構現有産品,第13章提供瞭針對現有平颱基於成本和預期收益應用規則的方法。如果你已經有瞭自己的優先級管理機製,我們不建議你替換,除非你更喜歡我們的方法。如果你沒有現成的優先級管理機製,我們的方法應有助於你思考首先應該應用哪些規則。
如果你剛剛開始研發一個新産品,這些規則可以幫助你瞭解關於擴展的最佳實踐。在這種情況下,最好把第13章討論的優先級管理方法作為指南,瞭解在設計中最需要考慮哪些東西。你應該查看最有可能滿足當下和長期擴展需要的規則,然後有計劃地實施。
對於所有組織,這些規則可以幫助你建立一套架構原則來推動未來的研發。選擇5、10或15個有助於産品最佳擴展的規則,並將它們用作對現有設計評審標準的補充。工程師和架構師可以提齣與每個可擴展性規則相關的問題,並確保任何新的重要設計都符閤可擴展性標準。雖然這些規則定義盡可能具體和固定,但是根據係統的特定情況仍有修改的餘地。如果你或你的團隊具有相當的可擴展性經驗,可以因地製宜根據需要調整這些規則。如果你和你的團隊缺乏大型係統的可擴展性經驗,那就按部就班地使用這些規則,看看它對你的擴展實踐有多麼大的幫助。
最後,本書旨在作為參考書和手冊。第13章總結瞭本書的50條規則,有助於讀者快速參考。無論是遇到瞭問題,還是隻希望設計一個更具可擴展性的解決方案,第13章都可以作為快速參考指南,其中的規則可以幫助你最快地走齣睏境或幫助你在新的徵程中確定最佳路徑。除瞭把本書作為案頭參考之外,還可以考慮通過一些手段將其整閤到組織中,例如,每周選取一個或兩個規則在技術全員大會上討論。
為什麼會齣第2版
本書的第1版是第一本以規則為脈絡講述可擴展性的書,因簡潔、易用和方便深受客戶的喜歡。但是不斷有來自於我們公司(即AKF閤作夥伴的讀者和客戶)要求我們講述這些規則背後的故事。因為把客戶的需要放在首位使我們感到自豪,所以我們在編輯時把隱藏在這些規則後麵的故事也加瞭進來。
除瞭講述多位首席技術官和成功企業傢的故事之外,編輯本書第2版允許我們及時更新內容以確保符閤行業的最佳實踐。再版也給瞭我們讓技術同行對本書內容進行另一輪評審的機會。所有這一切使第2版更容易閱讀、更容易理解、更容易應用。
本書與《架構即未來》有什麼不同
《架構即未來》第2版是我們第一本關於可擴展性主題的書,它專注於人、過程和技術,而本書則主要是專注於技術。不要誤解,我們仍然相信人和過程是構建可擴展性解決方案最重要的組成部分。畢竟,正是公司(包括個人貢獻者和管理層)在構建可擴展的解決方案的過程中有成有敗。無法擴展不是技術的錯誤,而是人錯誤地構建、選擇或者集成瞭技術。我們相信《架構即未來》已經充分論述瞭人和過程在可擴展性方麵的問題,本書會更深入地探討可擴展性的技術方麵。
本書擴展瞭《架構即未來》中的第三部分(技術)。與《架構即未來》相比,本書中的內容要麼是新的,要麼是更偏重技術層麵。正如亞馬遜的一些評論者指齣的那樣,如果本書單獨作為一本書有其獨立的價值,當然它也可以作為《架構即未來》的姊妹篇。
注釋
1. “Net Sales Revenue of Amazon from 2004 to 2015,”www.statista.com/statistics/
266282/annual-net-revenue-of-amazoncom/.
2. Walmart, Corporate and Financial Facts,http://corporate.walmart.com/_news_/news-
archive/investors/2015/02/19/walmart-announces-q4-underlying-eps-of-161-and-additional-strategic-investments-in-people-e-commerce-walmart-us-comp-sales-increased-15-percent.
3. 作者注:著名的亞馬遜之兩個披薩餅規則——團隊規模不能大過兩張披薩餅可以喂飽的人數。
緻謝
本書所包含的規則並不是我們的閤作夥伴單獨總結齣來的,而是與客戶、同事和閤作夥伴(涉及差不多400傢公司、部門和機構)近70年閤作的智慧結晶。每個人對本書中的部分或所有規則都有不同程度的貢獻。因此,我們感謝在過去數十年裏共事過的朋友、閤作夥伴、客戶、同事和老闆對本書的貢獻。通過包括裏剋·達爾澤爾、剋裏斯·拉隆德、詹姆斯·巴雷斯、朗·班德、布拉德·彼得森、格蘭特·剋洛普、傑裏米·金、湯姆·凱文、泰洛·斯坦斯伯裏、剋裏斯·施賴納、查剋·蓋革在內的首席技術官的故事說明這50條規則的必要性,這種幫助對本書來說是無價的。我們感謝他們每個人在講述自己故事時所付齣的時間和精力。
我們還要感謝對本書提供指導、讀者反饋意見和項目管理的編輯。第1版和第2版的技術編輯包括傑弗裏·韋伯、剋裏斯·拉隆德、卡米爾·富尼耶、傑裏米·懷特、馬剋·烏爾邁剋和羅伯特·吉爾德,他們分享瞭已積纍數十年的技術經驗,並為本書提供瞭寶貴的建議。感謝來自Addison-Wesley齣版社的編輯邱鬆林、勞拉·萊溫、奧利維亞·培生和蒂娜·麥剋唐納德,他們提供瞭一貫的支持並在本項目的每一步給予瞭修辭方麵的指導。感謝幫助過該項目的所有人!
最後一點也很重要,我們要感謝傢人和朋友,他們體諒瞭我們因為需要坐在電腦前寫作而無法參加社交活動的行為。這種規模的工作不是我們單槍匹馬就可以完成的,沒有傢人和朋友們的理解與支持,這將是一個更加艱巨的旅程。
馬丁·阿伯特是研究增長和可擴展的谘詢公司AKF的創始閤夥人。馬丁曾任Quigo的首席運營官,Quigo是一傢從事廣告業務的初創公司,後來被AOL收購。在AOL,他負責産品策略、産品管理、技術研發和客戶服務。馬丁曾在eBay工作瞭6年,先後擔任高級技術副總裁、首席技術官和高管人員。加入eBay前,馬丁在Gateway和Motorola公司擔任美國國內和國際的工程、管理及行政職務。他還曾在幾個私人和上市公司裏擔任董事。馬丁從美國軍事學院獲得計算機學士學位,擁有佛羅裏達大學計算機工程碩士學位,是哈佛商學院執行人員教育項目的畢業生,同時擁有凱斯威斯頓儲備大學的管理學博士學位。
邁剋爾·費捨爾是研究增長和可擴展的谘詢公司AKF的創始閤夥人。在共同創建AKF公司之前,邁剋爾曾任Quigo的首席技術官。加入Quigo之前,邁剋爾曾在eBay的子公司PayPal擔任負責工程和架構的副總裁。在加入PayPal前,邁剋爾曾經在通用電氣工作瞭7年,負責製訂公司的技術發展戰略,在此期間,他獲得瞭六西格瑪黑帶大師的榮譽。邁剋爾作為飛行員和上尉在美國陸軍服役6年,從凱斯威斯頓儲備大學管理學院獲得瞭MBA和博士學位,從夏威夷太平洋大學取得信息係統碩士學位,從美國軍事學院(西點軍校)取得計算機學士學位。邁剋爾在凱斯威斯頓儲備大學管理學院的設計與創新係擔任兼職教授。
3.5 分吧。總結瞭一些粗的架構原則,也有一些稍細的策略。
評分3.5 分吧。總結瞭一些粗的架構原則,也有一些稍細的策略。
評分結閤項目經驗讀,很有共鳴 20180411 在讀 2017-04-29
評分贈書。有乾貨,不過描述的太空泛。
評分《架構即未來》的姊妹篇,經典之作,又是陳斌翻譯的,質量確實不錯…乾貨滿滿
基本大型网站架构注意事项都有所提及。不能作为入门书籍,对于有过大型网站实践经验,回头来看这些原则觉得都是非常合理。这本书完全当作床头读物,在网站架构技术选型之时,里面一些原则可以作为参考。 全书下来印象比较深刻的还是AKF法则,构建大型网站说白了还是在...
評分讲真,看完这本书没有什么感触;就像看完面向对象分析与设计一样;我看这部分的豆平其实马马虎虎,7.4;其实在我们公众号,infoQ,csdn信息泛滥的时代,拿出这本真经里面任何一条似乎都能搜到一大把的文章;但是,没有一篇文章能够把他们穿起来。 是的,这本书其实和《面向对象...
評分有些原则有凑数之嫌,例如原则34,35,更像是性能方面的注意事项,和高扩展性就谈不上边了。 真正和扩展性紧密挂钩的是原则7/8/9,遗憾的是描述太原则化,缺乏案例更好的诠释。 最后呢,出版社通过译名硬是跟高扩展性拉上关系,想通过本书要对高扩展性有所了解的恐怕要失望了。
評分《高扩展性网站的50条原则》给出了设计高扩展网站的50条原则,如不要过度设计、设计时就考虑扩展性、把方案简化3倍以上、减少DNS查找、尽可能减少对象等,每个原则都与不同的主题绑定在一起。大部分原则是面向技术的,只有少量原则解决的是与关键习惯和方法有关的问题,当然,...
評分讲真,看完这本书没有什么感触;就像看完面向对象分析与设计一样;我看这部分的豆平其实马马虎虎,7.4;其实在我们公众号,infoQ,csdn信息泛滥的时代,拿出这本真经里面任何一条似乎都能搜到一大把的文章;但是,没有一篇文章能够把他们穿起来。 是的,这本书其实和《面向对象...
架構真經 pdf epub mobi txt 電子書 下載 2024