【軟件架構(gòu)篇】互聯(lián)網(wǎng)架構(gòu)模板

1、互聯(lián)網(wǎng)標(biāo)準(zhǔn)技術(shù)架構(gòu)圖

架構(gòu)圖如下圖所示。這張圖基本涵蓋了互聯(lián)網(wǎng)技術(shù)公司的大部分技術(shù)點(diǎn),不同公司只是在具體的技術(shù)實(shí)現(xiàn)上稍有差異,但不會(huì)跳出這個(gè)框架的范疇。


image.png

2、存儲(chǔ)層

SQL:常用的有mysql,用于存儲(chǔ)業(yè)務(wù)數(shù)據(jù)?;ヂ?lián)網(wǎng)發(fā)展初期,各個(gè)業(yè)務(wù)一般都會(huì)獨(dú)立運(yùn)營(yíng)mysql集群,但隨著業(yè)務(wù)越來(lái)越多,mysql集群規(guī)模越來(lái)越大,那就有必要做成SQL平臺(tái)。

NoSQL: 翻譯為Not Only SQL,作為mysql的一種補(bǔ)充。Nosql一般本身就提供集群,且使用起來(lái)很方便,公司業(yè)務(wù)發(fā)展初期沒(méi)有必要。一般Nosql集群的數(shù)量越來(lái)越多,那就有必要做成Nosql平臺(tái)。

小文件:互聯(lián)網(wǎng)中有很多小文件,比如商品圖片,F(xiàn)acebook的圖片。這類(lèi)小文件具有數(shù)據(jù)小、數(shù)量巨大、訪(fǎng)問(wèn)大的特點(diǎn)。如果每個(gè)業(yè)務(wù)都去考慮小文件存儲(chǔ)的話(huà),就會(huì)出現(xiàn)重復(fù)造輪子現(xiàn)象,那就有必要做成小文件平臺(tái)了。

大文件:互聯(lián)網(wǎng)的大文件主要分為兩類(lèi):一類(lèi)是業(yè)務(wù)上的大數(shù)據(jù),例如Youtube的視頻、電影網(wǎng)站的電影;另一類(lèi)是海量的日志數(shù)據(jù),例如各種訪(fǎng)問(wèn)日志。實(shí)力雄厚的一些大公司會(huì)基于開(kāi)源方案做成大數(shù)據(jù)平臺(tái)。

3、開(kāi)發(fā)層

開(kāi)發(fā)框架:比如常見(jiàn)的Spring框架。
Web服務(wù)器:常見(jiàn)的有tomcat、jetty等。
容器:Docker可以極大降低運(yùn)維成本,以及在實(shí)現(xiàn)動(dòng)態(tài)擴(kuò)容上非常方便。

4、服務(wù)層

配置中心:故名思義,配置中心就是集中管理各個(gè)系統(tǒng)的配置。
服務(wù)中心:解決跨系統(tǒng)依賴(lài)的配置和調(diào)度問(wèn)題。比如有10個(gè)系統(tǒng)依賴(lài)A系統(tǒng)的x接口,此時(shí)A系統(tǒng)實(shí)現(xiàn)了一個(gè)y接口可以更好地支持x接口,那么如果直接更新10個(gè)系統(tǒng)依賴(lài)的配置將會(huì)很麻煩。
消息隊(duì)列:支持系統(tǒng)解耦。

5、網(wǎng)絡(luò)層

負(fù)載均衡:充當(dāng)任務(wù)分配器的職責(zé)。
CDN:可以對(duì)一些常用文件進(jìn)行就近緩存,來(lái)提高訪(fǎng)問(wèn)速度。
多機(jī)房:多機(jī)房的主要目的是備災(zāi),當(dāng)機(jī)房故障時(shí)可以快速地將業(yè)務(wù)切換到另外一個(gè)機(jī)房,這種切換操作允許一定時(shí)間的中斷,比如10分鐘,1個(gè)小時(shí)。
多中心:多中心的要求就更高了,要求同時(shí)對(duì)外提供服務(wù),且業(yè)務(wù)能夠自動(dòng)在多中心之間切換,故障后不需人工干預(yù)或者很少的人工干預(yù)就能自動(dòng)恢復(fù)。

6、用戶(hù)層

用戶(hù)管理:對(duì)各個(gè)系統(tǒng)的用戶(hù)進(jìn)行統(tǒng)一管理。
消息推送:根據(jù)不同途徑分為短信、郵件、站內(nèi)信、App推送。
存儲(chǔ)云:實(shí)現(xiàn)是CDN+小文件存儲(chǔ)。
圖片云:實(shí)現(xiàn)也是CDN+小文件存儲(chǔ)。為何不與存儲(chǔ)云統(tǒng)一一套系統(tǒng)呢?這是因?yàn)閳D片業(yè)務(wù)的復(fù)雜性導(dǎo)致的。圖片涉及的業(yè)務(wù)會(huì)更多,包括裁剪、壓縮、美化、審核、水印等。

7、業(yè)務(wù)層

業(yè)務(wù)千差萬(wàn)別,各個(gè)互聯(lián)網(wǎng)業(yè)務(wù)面對(duì)的主要問(wèn)題是復(fù)雜度越來(lái)越高。此時(shí)就要用到拆和合的技術(shù)。拆即將一個(gè)大系統(tǒng)拆分為多個(gè)子系統(tǒng),降低復(fù)雜度。當(dāng)子系統(tǒng)越來(lái)越多,有可能就需要采用合的技術(shù)。

8、測(cè)試平臺(tái)

測(cè)試平臺(tái)的核心目的是提升測(cè)試效率。

9、運(yùn)維平臺(tái)

運(yùn)維平臺(tái)的核心職責(zé)分為四大塊:配置、部署、監(jiān)控、應(yīng)急。

10、數(shù)據(jù)平臺(tái)

數(shù)據(jù)平臺(tái)的核心職責(zé)主要包含三部分:數(shù)據(jù)管理、數(shù)據(jù)分析和數(shù)據(jù)應(yīng)用。

11、管理平臺(tái)

管理平臺(tái)的核心職責(zé)就是權(quán)限管理。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀(guān)點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容