適讀人群 :網(wǎng)站架構(gòu)、設計人員 系統(tǒng):從頭梳理網(wǎng)站架構(gòu)重點難點,零基礎上手架構(gòu)設計
全面:涵蓋多種類型網(wǎng)站應用,總有一款適合你
權(quán)威:凝聚作者5年一線經(jīng)驗,互聯(lián)網(wǎng)大廠實踐方案盡收眼底
深入:剖析概念內(nèi)涵外延,講解方法追本溯源
案例:列舉10個大型案例, 100多個小案例,提升更迅速
為什么要寫這本書
很多剛從學校畢業(yè)的計算機專業(yè)的學生,或者通過自學掌握編程技能的非計算機專業(yè)的人,往往會發(fā)現(xiàn)軟件工程師在工作中所做的內(nèi)容與學校中所學的知識有不小的差異,并且這種差異隨著項目規(guī)模的增大而增大。一些擁有不錯編程基礎的從業(yè)人員往往也要在從業(yè)數(shù)年以后,才能逐漸通過積累工作經(jīng)驗來縮小、彌補這種差異。
造成這種差異的主要原因在于,在學校中學習的編程技能側(cè)重于計算機科學的原理及基本的應用,而在工作中,對于一個工程項目軟件,為了使其達到商用、大規(guī)模使用的條件,軟件工程師會采用許多學校中不會重點教學甚至完全不會接觸的方式來確保其開發(fā)、維護上的高效率和健壯性。本書在網(wǎng)站開發(fā)方面,通過總結(jié)筆者從業(yè)中遇到過的眾多案例和項目,精練出一系列職業(yè)經(jīng)驗和操作規(guī)程,幫助感興趣的初學者對職業(yè)實踐有所了解,而編程能力原本就扎實的程序員更可以通過本書獲得職場上的即戰(zhàn)力。
本書有何特色
1. 涵蓋了大型網(wǎng)站建設從理論到實踐的方方面面
對于每個相關(guān)的業(yè)內(nèi)實踐問題,本書都會涵蓋其常見解決方案和尚佳推薦選擇,并從原理出發(fā)分析和解釋每個方案,使讀者充分理解積累了大量從業(yè)人員經(jīng)驗教訓的實現(xiàn)方案。
2. 每個主題都包含了大量實例說明
本書為暫時沒有機會參與大流量網(wǎng)站建設的讀者提供了大量生產(chǎn)實例,使讀者能更直觀地理解大型網(wǎng)站相比普通網(wǎng)站在生產(chǎn)環(huán)境中面臨的問題及其解決方案。
3. 對多個實踐類主題都附有可直接使用的代碼示例
本書對所有可以獨立嘗試實踐的主題都附有實踐說明和代碼示例,絕大多數(shù)代碼示例都可以經(jīng)過簡單配置直接使用,非常適合看了相關(guān)章節(jié)躍躍欲試的讀者。
4. 主題鮮明,易于上手
本書各章主題之間盡量保證分割清晰,大多數(shù)章節(jié)相互獨立,且每個主題深入淺出,讀者即不讀完全書,只對中間某個主題感興趣,也可以隨手拿起書深入其中一章,而不受上下文牽制影響。
5. 信息涉及范圍廣,拓寬視野,與時俱進
本書所提及的設計方案、技術(shù)手段和實踐標準均與當前業(yè)內(nèi)實踐看齊,并在必要部分對業(yè)內(nèi)行的技術(shù)進行了或深或廣的介紹,幫助讀者輕松地以本書為出發(fā)點,找到合適的拓展資料值得進一步深挖的技術(shù)。
本書內(nèi)容及知識體系
第1~2 章主要介紹了網(wǎng)站架構(gòu)的設計目標和原則,包括高性能、高可用、伸縮性和擴展性,以此為綱展開全書。除此之外,還介紹了軟件工程標準的網(wǎng)站架構(gòu)設計流程。
第3~7 章主要介紹了網(wǎng)站數(shù)據(jù)層的幾種優(yōu)化手段,從按需選擇數(shù)據(jù)庫到分庫分表、讀寫分、緩存和動靜分離,逐步深入,從數(shù)據(jù)庫介紹到分庫分表和讀寫分離,從緩存介紹到動靜分離,理論再實踐,完成數(shù)據(jù)層的優(yōu)化改造。
第8~10 章主要從負載均衡、異步和非阻塞、隊列三個角度介紹了如何管理和優(yōu)化一個網(wǎng)的整體架構(gòu),使其達到高并發(fā),瞬時承擔更大流量。
第11~15 章主要介紹了大型商用網(wǎng)站重要的性質(zhì)之一——高可用,以及如何做到高可。分別從高可用的指導原則、異地多活、服務降級、限流和下游錯誤處理的角度,解釋了單機服務不可靠的情況下,如何通過架構(gòu)設計使系統(tǒng)整體變得可靠又穩(wěn)定。
第16~17 章主要介紹了大型商用網(wǎng)站在上線服務之前,所需要采取的合理合規(guī)的必要手,以及如何從一個成熟的業(yè)務擁有者的角度,盡可能降低新服務上線的風險。
適合閱讀本書的讀者
?? 有一定技術(shù)水平但工程資歷尚淺的人員。
?? 有一定工程資歷但沒有大流量網(wǎng)站開發(fā)和維護經(jīng)驗的人員。
?? 希望對網(wǎng)站開發(fā)的軟件工程有所了解的人員。
?? 廣大Web 開發(fā)程序員。
?? 希望提高大型項目設計水平的人員。
?? 軟件開發(fā)項目經(jīng)理。
?? 需要一本案頭必備查詢手冊的人員。
閱讀本書的建議
?? 沒有網(wǎng)站開發(fā)經(jīng)驗的人員,建議配合一本網(wǎng)站開發(fā)實戰(zhàn)類參考書來閱讀。
?? 有網(wǎng)站開發(fā)經(jīng)驗的人員,可以隨意從一章開始閱讀,相信都會有所受益。
?? 對于有代碼示例的章節(jié),可以隨時按照其中的說明進行實戰(zhàn);沒有代碼示例但有操作流程章節(jié),需要一定生產(chǎn)環(huán)境支撐其方法的實踐,請讀者結(jié)合實
際工作環(huán)境進行學習。