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