1、互聯(lián)網(wǎng)標(biāo)準(zhǔn)技術(shù)架構(gòu)圖
架構(gòu)圖如下圖所示洗显。這張圖基本涵蓋了互聯(lián)網(wǎng)技術(shù)公司的大部分技術(shù)點祸挪,不同公司只是在具體的技術(shù)實現(xiàn)上稍有差異锣披,但不會跳出這個框架的范疇。
2贿条、存儲層
SQL:常用的有mysql雹仿,用于存儲業(yè)務(wù)數(shù)據(jù)≌裕互聯(lián)網(wǎng)發(fā)展初期胧辽,各個業(yè)務(wù)一般都會獨立運營mysql集群,但隨著業(yè)務(wù)越來越多公黑,mysql集群規(guī)模越來越大邑商,那就有必要做成SQL平臺。
NoSQL: 翻譯為Not Only SQL凡蚜,作為mysql的一種補充人断。Nosql一般本身就提供集群,且使用起來很方便番刊,公司業(yè)務(wù)發(fā)展初期沒有必要含鳞。一般Nosql集群的數(shù)量越來越多,那就有必要做成Nosql平臺芹务。
小文件:互聯(lián)網(wǎng)中有很多小文件蝉绷,比如商品圖片鸭廷,F(xiàn)acebook的圖片。這類小文件具有數(shù)據(jù)小熔吗、數(shù)量巨大辆床、訪問大的特點。如果每個業(yè)務(wù)都去考慮小文件存儲的話桅狠,就會出現(xiàn)重復(fù)造輪子現(xiàn)象讼载,那就有必要做成小文件平臺了。
大文件:互聯(lián)網(wǎng)的大文件主要分為兩類:一類是業(yè)務(wù)上的大數(shù)據(jù)中跌,例如Youtube的視頻咨堤、電影網(wǎng)站的電影;另一類是海量的日志數(shù)據(jù)漩符,例如各種訪問日志一喘。實力雄厚的一些大公司會基于開源方案做成大數(shù)據(jù)平臺。
3嗜暴、開發(fā)層
開發(fā)框架:比如常見的Spring框架凸克。
Web服務(wù)器:常見的有tomcat、jetty等闷沥。
容器:Docker可以極大降低運維成本萎战,以及在實現(xiàn)動態(tài)擴容上非常方便。
4舆逃、服務(wù)層
配置中心:故名思義蚂维,配置中心就是集中管理各個系統(tǒng)的配置。
服務(wù)中心:解決跨系統(tǒng)依賴的配置和調(diào)度問題颖侄。比如有10個系統(tǒng)依賴A系統(tǒng)的x接口鸟雏,此時A系統(tǒng)實現(xiàn)了一個y接口可以更好地支持x接口,那么如果直接更新10個系統(tǒng)依賴的配置將會很麻煩览祖。
消息隊列:支持系統(tǒng)解耦孝鹊。
5、網(wǎng)絡(luò)層
負(fù)載均衡:充當(dāng)任務(wù)分配器的職責(zé)展蒂。
CDN:可以對一些常用文件進行就近緩存又活,來提高訪問速度。
多機房:多機房的主要目的是備災(zāi)锰悼,當(dāng)機房故障時可以快速地將業(yè)務(wù)切換到另外一個機房柳骄,這種切換操作允許一定時間的中斷,比如10分鐘箕般,1個小時耐薯。
多中心:多中心的要求就更高了,要求同時對外提供服務(wù),且業(yè)務(wù)能夠自動在多中心之間切換曲初,故障后不需人工干預(yù)或者很少的人工干預(yù)就能自動恢復(fù)体谒。
6、用戶層
用戶管理:對各個系統(tǒng)的用戶進行統(tǒng)一管理臼婆。
消息推送:根據(jù)不同途徑分為短信抒痒、郵件、站內(nèi)信颁褂、App推送故响。
存儲云:實現(xiàn)是CDN+小文件存儲。
圖片云:實現(xiàn)也是CDN+小文件存儲颁独。為何不與存儲云統(tǒng)一一套系統(tǒng)呢彩届?這是因為圖片業(yè)務(wù)的復(fù)雜性導(dǎo)致的。圖片涉及的業(yè)務(wù)會更多奖唯,包括裁剪惨缆、壓縮糜值、美化丰捷、審核、水印等寂汇。
7病往、業(yè)務(wù)層
業(yè)務(wù)千差萬別,各個互聯(lián)網(wǎng)業(yè)務(wù)面對的主要問題是復(fù)雜度越來越高骄瓣。此時就要用到拆和合的技術(shù)停巷。拆即將一個大系統(tǒng)拆分為多個子系統(tǒng),降低復(fù)雜度榕栏。當(dāng)子系統(tǒng)越來越多畔勤,有可能就需要采用合的技術(shù)。
8扒磁、測試平臺
測試平臺的核心目的是提升測試效率庆揪。
9、運維平臺
運維平臺的核心職責(zé)分為四大塊:配置妨托、部署缸榛、監(jiān)控、應(yīng)急兰伤。
10内颗、數(shù)據(jù)平臺
數(shù)據(jù)平臺的核心職責(zé)主要包含三部分:數(shù)據(jù)管理、數(shù)據(jù)分析和數(shù)據(jù)應(yīng)用敦腔。
11均澳、管理平臺
管理平臺的核心職責(zé)就是權(quán)限管理。