大型網站架構之我見

硬核的青年才俊發表於2020-09-27


前言

我寫這篇部落格的真正原因是我最近在研究秒殺系統的技術,以及最近機緣巧合下拜讀李智慧教授的《大型網站技術架構:核心原理與案件分析》,我認為可以寫一篇簡單的讀後感部落格讓那些根本沒有基礎的人來比較直白直觀地認識當今大型網站架構的有趣。這也許能開啟你對於做一個架構師的嚮往,反正對我來說我的目標就是一個架構師(博主並不是一個架構師,只是一個初入web開發的小白,我在做的可能是我很喜歡的一個詞:顱內訓練吧)


提示:以下是本篇文章正文內容,下面案例可供參考

一、讀本推薦

在前言中,我說到了這本書《大型網站技術架構:核心原理與案件分析》
書
我首先想講一講李智慧這個人,在阿里人稱教授,參與過阿里巴巴許多網站的架構,現在任職宅米網CTO,我對於“教授”的認識並不是很深,之前也沒有了解過他這個人,可是當讀到他的書的時候我便被他這風趣樸素的語言給吸引了,他的書十分有趣不枯燥,對於一些技術類圖書我看完幾頁就不願細讀下去,一個主要原因就是語言過於枯燥,而本書絕對給你一個不一樣的體驗,他會給你一種共同感,對於生活中出現過的十分常見的問題進行分析,再深入講解,我十分喜歡“教授”的讀書寫書方式,遇到無法理解的知識點直接跳過,不必冥思苦想說不定在之後就有準確的解答。這本書是本不可多得的好書,我推薦所有感興趣或者在這條路走的人都可以讀一讀,他不枯燥而且有用,如咖啡一般醇厚(可能java就是一杯咖啡吧)。java


二、自我所見

1.書本內容

相信大家都學過或者見過這行程式碼:

System.out.println("Hello World");

這行是每個java初學者都見過的程式碼,基本大部分語言的入門都會教導你如何輸出Hello World,如此簡單的一行程式碼我卻覺得他是所有行業的學習模式,這句話我換成中國話來說,不就是開眼看世界嗎,初讀這本書我便感覺眼前不僅僅是本書而是世界,Hello world。

1.第一部分(初入技術)

這本書大概的流程是這樣的,首先介紹大型網站的技術,這是個籠統的過程作者似乎也並不在意細節描寫,我覺得這部分用書中的一張圖就可以十分好的解釋。作者是這麼認為的,不要為了技術而技術,符合當前業務是十分關鍵的,沒有業務技術再先進也無法解決問題,12306就是一個十分好的例子,這部分並不需要太關注,技術是非同步一步一步學習的,以我現在的知識也無法解釋地十分清楚,欲速則不達如果靠技術就能做一個好的架構師,n那麼架構師也就並不稀奇了吧,想做好架構師,技術和業務都是必須的!技術

2.第二部分(技術概括)

作者從當前大型網站架構的幾個角度來講,高效能、高可用、伸縮性、擴充套件性,安全性,從各個角度的不同方面將,從網站的架構到資料、資料庫的架構到一些程式碼業務資料結構等等方面來講,我在這我無法講的十分深入因為其中的大多技術我認為我無法或者沒有資格給大家講述,具體的我認為大家可以自己去看書來獲得,教授寫的接地氣卻又不失深度,我從我這角度來寫寫我對於各部分的核心技術理解。
首先高效能架構我認為這十分好理解,高效能就是讓處理速度更快,響應速度更快,相信學過資料結構的同學肯定知道時間複雜度空間複雜度,我認為有一些異曲同工之妙,畢竟資料結構也是一個優化效能的選擇,通過一些手段,如CDN,反向代理等許多技術能讓網站效能優化,畢竟客戶體驗是最重要的,假如一個taobao店鋪開啟需要10s又有誰會去taobao買東西呢,畢竟很多人很喜歡篩選。速度,載入,反應等很多很多因素,高效能優化我認為是錦上添花,能讓大型網站更加符合使用者體驗。
剛剛說到了錦上添花,那麼我認為高可用就是基石,一個網站的不可用率很大,那麼使用者體驗就是極差的,假如別人正在正常聊天視訊,就你自己不行那麼肯定有一種被喂x的感覺,那是十分糟糕的,解決網站的高可用確實需要大量功夫,當今的資料備份技術以及自動化的測試監控確實省去了不小的功夫,不過一個網站也還是會因為很多因素,如Bug,資料庫毀壞,介面鬆了,地震,海嘯等等,導致網站不可用,那麼公司需要付出的人力物力都是十分巨大的。
伸縮性架構我認為的核心是叢集,書中用我們熟知的強東哥舉例子,某東在2011年有個書籍促銷,可惜在第一天伺服器就崩了,東哥馬上發微博,明天增加一天增加了十臺伺服器,可是第二天又崩了,資訊部的同志馬上被叫過去喝茶,那可能是在某東喝的最難喝的茶了吧,那麼說明在當時京東的伸縮性架構是十分差的,他在增加伺服器的時候並沒有很好地解決問題,現在的京東就沒這些問題,他們出色的完成了伸縮性架構的任務。當一個網站要開始縮了亦可能代表他們快玩完了。
可擴充套件架構,代表著低耦合,這點和spring中的ioc容器解耦思想相同,他們之間相關性很小,這樣當更改起來更加方便。可擴充套件性低的系統會讓開發人員可能心中一萬頭馬跑過,更改的時間是大量的極其煩的。
安全性是網站無時無刻面對的挑戰,我很喜歡一部電影,我是誰,沒有絕對安全的系統,確實如今網站沒有真正意義上的安全,唯有靠安全人事不斷不斷的防護著這些潛在的威脅。

3.第三部分(案例)

書中列舉了幾個大型網站的架構發展史,例如淘寶,維基,秒殺系統。。。。。。通過這些例子對之前的知識可以有一個很好地理解,同時跟隨作者的講述,讓我們覺得高高在上的淘寶秒殺並不遙遠,這一部分讓人更加深入地理解而且十分有趣,作者以自己的知識給我們開啟了一個有趣高深的架構之門。

3.第四部分(架構師之道)

作者把如何做一個架構師與架構師的分類放到最後將,我認為這也是他寫的最好或者最深有體會的一部分,作者“教授”本人作為最好的架構師之一,他將怎麼算是一個很好的架構師說的很好,他將不同的架構師進行分類,用有趣的語言描述了不同的架構師的樣子,我認為這不僅僅是架構師之道,作者可能還傳到了一種做人之道吧,這部分我無法解釋,因為每個人眼中的“三國”就是一部三國,各有個人的體會吧。


2.業務VS技術

作者在書中不下幾次的談到了技術只是技術,在平時開發確實需要對陣下藥,比如平時客戶可能只要一個40人員工管理系統並且不需要擴充套件,有人追求技術的極致,來了個40個人40個伺服器搞成一個叢集,好一個分散式服務一個只有40條資料的表,分表讀寫分離,這些技術確實牛X但是想想這個是不是過於“謹慎”呢?所以作者告訴大傢俱體業務具體分析,沒有業務技術再牛也沒用了。我在上面其實有一處沒講,那就是漸進式發展,別妄想一開始畫大藍圖,淘寶也是從LAMP(Liunx+Apache+mysql+PHP)發展到現在的,想要建立一個好的網站也是一步又一步,這樣高效能,高可用,伸縮性,可擴充套件的網站也一步一步的建成了。


悟道(未來之我見)

這本書我推薦大家一定要看看,他是開啟新世界的一道門,從技術到做人,架構就是如此,《大型網站技術架構:核心原理與案件分析》絕對能給你帶來不一樣的眼界,無論你是架構師還是成為架構師或是其他的一些從業人員,學生你在裡面能得到昇華,技術業務架構師全面瞭解,全面的“Hello world”。最後送給大家依一句共勉的話:
路漫漫其修遠兮,吾將上下而求索

相關文章