中文字幕在线观看,亚洲а∨天堂久久精品9966,亚洲成a人片在线观看你懂的,亚洲av成人片无码网站,亚洲国产精品无码久久久五月天

騰訊陳軍:10萬服務(wù)器環(huán)境下的云平臺實(shí)踐分享

2019-02-26    來源:多智時代

容器云強(qiáng)勢上線!快速搭建集群,上萬Linux鏡像隨意使用

2011年最受矚目的IT業(yè)界盛會——第三屆中國云計算大會于2011年5月18-20日在北京國家會議中心隆重舉行。本次大會由中國電子學(xué)會主辦,中國電子學(xué)會云計算專家委員會、中國云計算技術(shù)與產(chǎn)業(yè)聯(lián)盟承辦。5月20日,在第三屆云計算大會分論壇二“云計算平臺與應(yīng)用實(shí)踐”中,騰訊網(wǎng)絡(luò)平臺部技術(shù)總監(jiān)陳軍帶來了主題為《騰訊云平臺與技術(shù)實(shí)踐》精彩演講。

以下是陳軍的演講實(shí)錄:

我是騰訊的陳軍,我加入騰訊之前在硅谷工作了十幾年,我要講的就是開發(fā)平臺與騰訊海量業(yè)務(wù)面對的挑戰(zhàn),重點(diǎn)講幾個比較有意思的話題,網(wǎng)絡(luò)方面,集群任務(wù)調(diào)度、分布式同步,還有云存儲和數(shù)據(jù)中心運(yùn)維,因?yàn)轵v訊做的東西很多。時間關(guān)系,就挑一些重點(diǎn)來講。

去年12月份騰訊和360事件之后,騰訊就做了一個策略的轉(zhuǎn)變,就是要打造開放平臺。目前朋友社區(qū)和Qzone平臺已經(jīng)向第三方開放。目的就是營造一個良好的互聯(lián)網(wǎng)生態(tài)圈,帶動互聯(lián)網(wǎng)產(chǎn)業(yè)鏈的發(fā)展。這樣就可以讓一些小公司、創(chuàng)業(yè)公司可以借助騰訊這個平臺來服務(wù)億萬用戶。

這里有一個比較成功的例子,昆侖這家公司游戲放在Qzone運(yùn)行,目前可以做到一個月收入分成超過800萬。這有兩個例子,這個注冊數(shù)字是900多萬,日活躍數(shù)字是800多萬,openpl的日調(diào)用達(dá)到700多萬。

騰訊海量業(yè)務(wù)帶來了很大的挑戰(zhàn),涵蓋了幾乎所有互聯(lián)網(wǎng)業(yè)務(wù),有幾億用戶,有海量的相片、博客,每天以億計劃的相片上傳,就需要騰訊提供PB級的存儲,存儲方面每天增量都達(dá)到TB級。

這些需求有突發(fā)性,每次長的假期,五一、國情黃金周之后,網(wǎng)友大量的上傳,比如說在深圳上傳的照片,怎么讓他在北京的朋友及時看到,這帶來很大的挑戰(zhàn),中國三網(wǎng)之間互聯(lián)互通也是一個瓶頸。電信內(nèi)部可能帶寬夠,電信到網(wǎng)通之間可能帶寬不夠了,這都需要騰訊有一個比較好的基礎(chǔ)架構(gòu)來解決。

云計算在騰訊來講,業(yè)務(wù)部門對外提供的就是SaaS的模式,當(dāng)客戶提供QQ郵箱和Qzone的時候,他們用的就是一個軟件服務(wù)形式提供。騰訊內(nèi)部的基礎(chǔ)架構(gòu)部門會開發(fā)PaaS和IaaS的架構(gòu)提供給業(yè)務(wù)部門,現(xiàn)在有了這個開放平臺之后,IaaS和PaaS也向第三方提供的,他們在朋友社區(qū)和Qzone的應(yīng)用也用了騰訊提供的IaaS和PaaS的架構(gòu)。

面對這些挑戰(zhàn),騰訊就是持續(xù)不斷的擴(kuò)容,因?yàn)樾枨蟛粩嗟脑黾。擴(kuò)容有兩條思路,一是Scale Up,升級到更強(qiáng)大的機(jī)器,甚至小型機(jī);二是Scale Out,使用更多的服務(wù)器,騰訊用的絕大部分服務(wù)器,還是普通的PC服務(wù)器,小型機(jī)用的非常少。這就要求我們軟件設(shè)計方面需要比較好的擴(kuò)展性。以Google、Facebook的實(shí)踐來看,云計算基本上是廉價的硬件開發(fā)功能強(qiáng)大,比較智能、比較復(fù)雜的軟件來實(shí)現(xiàn)可靠性和高可用性。不是說通過購買更加昂貴的小型機(jī)來實(shí)現(xiàn)高可靠高可用。目前騰訊服務(wù)器數(shù)量達(dá)到6位數(shù)。

下面講一下云網(wǎng)絡(luò),這個是傳統(tǒng)數(shù)據(jù)中心網(wǎng)絡(luò)拓?fù)洌伎埔郧耙恢碧岢@樣的網(wǎng)絡(luò)拓?fù),三層,最下面是接入層,中間是分布層,上面是核心層。這樣做的問題就是可能有很多接入層的交換機(jī)接到分布層,很多的分布層接到核心層。如果服務(wù)器連到同一接入層有1G的帶寬,如果連接到不同接入層交換機(jī)的及其帶寬小于1G。這種架構(gòu)造成的問題是什么呢,程序員寫程序的時候要考慮這個服務(wù)器在的是連接同一個接入層,還是不同層的交換機(jī)。如果程序在一個機(jī)架上運(yùn)行,帶寬可以1G,如果跨機(jī)架就會跨不同層的交換機(jī),帶寬就是只有幾十兆了,寫程序的時候要考慮到哪些不同的接入層,這些開發(fā)出來的程序不容易自由遷移,動態(tài)部署,因?yàn)榫W(wǎng)絡(luò)拓?fù)湟呀?jīng)反映里面。如果不能做動態(tài)部署,資源利用率就比較低。因?yàn)樗膽?yīng)用不可能一天24小時都可以有很高的請求。

我們要做的就是扁平化的網(wǎng)絡(luò)拓?fù),用CLOS Network來部署。50年代就有一個計算機(jī)科學(xué)家提出來,第一級128臺,每臺下行40個1G端口,上行40個。第二級4臺,每臺下行128個10G端口與1級相連。集群內(nèi)5120臺服務(wù)器,任何兩臺都有1G帶寬。這樣程序員在寫分布式應(yīng)用的時候就不需要考慮這個程序在哪些層運(yùn)行,因?yàn)槿魏瓮ㄓ嵍加?G的帶寬。

騰訊很多應(yīng)用之間都有交互,不談動態(tài)部署,就算是靜態(tài)部署,這個應(yīng)用固定在某臺服務(wù)器運(yùn)行,不會做自動遷移,騰訊有很多不同的業(yè)務(wù),很多業(yè)務(wù)都有手機(jī)的版本,微博和Qzone,游戲等等,還有服務(wù)器端的,在線的。很多應(yīng)用都涉及到QQ好友關(guān)系鏈,不同應(yīng)用之間交互很多。當(dāng)他們有很多交互的時候,采用這種拓?fù),都要提供足夠的帶寬給他們,提供交互。在上面運(yùn)行的結(jié)果就會避免擁塞。

這種拓?fù)浣Y(jié)構(gòu)是Google是2008年做的,三級CLOS Network。

第一級,512臺,每臺下行40個1G端口,下行40個,每64臺一個分區(qū)?偣矔8個分區(qū)。

第二級,這個核心交換機(jī)往下至少有128個10G端口,下行為64個10G,上行64個,每四臺一個分區(qū)。

第三級,16臺,每臺下行32個10G端口。

集群內(nèi)20480臺服務(wù)器,任何兩臺都有1G帶寬。

為什么把集群做的那么大,騰訊以前做的非常碎片化,幾百臺服務(wù)器,集群互相之間不能互相利用,利用率高的沒有辦法利用利用率低的服務(wù)器,有的吃不飽,有的沒有資源給他,做成這樣就希望做一個比較大的資源池。資源池做的大了,應(yīng)用跑的多了,波峰波谷的機(jī)會就比較大了,把他們放在一起就通過消峰填谷來解決。

集群任務(wù)調(diào)度系統(tǒng),它有兩個作用。一是任務(wù)與資源匹配,提高資源利用率,靜態(tài)部署的業(yè)務(wù)都有生命周期,比如說開心農(nóng)場,前兩年很火,現(xiàn)在下坡了,前兩年給幾千臺服務(wù)器都不夠,下坡的時候只要給幾百臺服務(wù)器就可以了。下坡的時候怎么把這些資源收回來,最好不需要人工,讓它自動調(diào)度,它負(fù)載低的時候,自動把服務(wù)器分給其他應(yīng)用?梢蕴岣哔Y源利用率,我們目標(biāo)是把資源利用率提高到80%。二是調(diào)度系統(tǒng)要監(jiān)控任務(wù)的執(zhí)行,執(zhí)行自動容錯,進(jìn)程崩潰的時候,它可以自動把這個進(jìn)程拉起,宕機(jī)的時候,重新找一臺機(jī)器,把宕機(jī)上面的應(yīng)用在新的機(jī)器上重新運(yùn)行。除了高端容錯,還要實(shí)現(xiàn)自動化運(yùn)維,讓運(yùn)維人員壓力降低很多。

開發(fā)這樣一個系統(tǒng)之后,這個任務(wù)就不是靜態(tài)部署了,寫分布式應(yīng)用的程序員,寫的時候不需要考慮這個程序在哪些機(jī)器上運(yùn)行,這些機(jī)器上帶寬有多少,這個模式就變成他寫的應(yīng)用是提供給集群,至于這個應(yīng)用在哪個集群上應(yīng)用,是集群調(diào)度器的任務(wù)。做到這個,就可以做到服務(wù)器符用,提高資源利用率。

Hadoop,很多互聯(lián)網(wǎng)公司都用到Hadoop,Hadoop有的數(shù)據(jù)挖掘跑幾十分鐘,有的跑幾分鐘就完成了,你可能還要等幾十分鐘跑完那個,然后再提交你幾分鐘的任務(wù),目前Hadoop還是類似于50年代批處理的模式,還不是分時共享的系統(tǒng)。我們開發(fā)這個集群任務(wù)調(diào)度系統(tǒng),希望能夠調(diào)度多個Hadoop的實(shí)例,有的是短時間完成的,有的是長時間完成的,他們混合在一起,然后同時跑。還希望Hadoop的計算能夠跟其他的應(yīng)用在一個集群里面共享資源。

采用這個模式之后,任務(wù)之間的通訊就不能通過IP地址和端口通訊了,開發(fā)人員寫程序的時候,都不知道這些程序在哪些機(jī)器上運(yùn)行,所以對IP地址提前寫入,就希望有一個名字解析,任務(wù)間通訊可以通過名字服務(wù)系統(tǒng)進(jìn)行。后面會講到我們用一個開源軟件來實(shí)現(xiàn)名字服務(wù)。

提高資源利用率關(guān)鍵是服務(wù)器復(fù)用,一個服務(wù)器跑多個應(yīng)用,而不是一個應(yīng)用。多個應(yīng)用的問題他們之間互相干擾,用很多CPU,用不了CPU,或者某一個用了很多內(nèi)存,導(dǎo)致別人沒有多少內(nèi)存可用,復(fù)用的時候需要有一定隔離保護(hù)的措施,應(yīng)用互相不受干擾。

目前的應(yīng)用就是虛擬機(jī)技術(shù),一講到云計算,就會講到虛擬機(jī),KVM、VMWare。實(shí)際上還有資源容器,在不同操作系統(tǒng)都有實(shí)現(xiàn)。

比較一下,虛擬機(jī)技術(shù),就是應(yīng)進(jìn)上面跑虛擬機(jī)的監(jiān)視器,然后分割成每個虛擬機(jī),每個虛擬機(jī)上 跑自己的操作系統(tǒng),操作系統(tǒng)上再跑應(yīng)用,這個層次很多,開銷也比較大。但它的好處就是非常徹底的隔離保護(hù),每個應(yīng)用上面都有自己的操作系統(tǒng),就算這個應(yīng)用能夠把操作系統(tǒng)弄崩潰了,也只是弄崩潰這個虛擬機(jī)的操作系統(tǒng),不涉及到另外一個虛擬機(jī)的操作系統(tǒng)。有些應(yīng)用對虛擬機(jī)操作系統(tǒng)有版本的要求,這個可以每個虛擬機(jī)操作系統(tǒng)版本不同。比如說騰訊的游戲,有些游戲可能有跑Windows的,可能有跑Linux,第三方應(yīng)用有要求的,都可以采用這個模式。這個壞處就是開銷更大,通常有百分之幾的開銷。另外在線擴(kuò)容,要做到動態(tài)伸縮,就需要操作系統(tǒng)對CPU、內(nèi)存、硬盤有熱插拔的支持。

操作系統(tǒng)層面的虛擬化,剛才提到了資源容器的技術(shù),它只跑一個操作系統(tǒng),在這個操作系統(tǒng)創(chuàng)造出不同的資源容器,每個應(yīng)用就在放一個資源容器里面,他們之間互相基本上沒有什么影響,每個資源容器都看不到對方的進(jìn)程ID和系統(tǒng),每個資源容器里面的進(jìn)程ID都是獨(dú)立的,也看不到對方的文件系統(tǒng)。內(nèi)存開銷比較小,只跑了一個系統(tǒng),基本開銷1%以下,簡化操作系統(tǒng)的管理,只需要一臺機(jī)器,只需要一個操作系統(tǒng)就好了,多個操作系統(tǒng)版本管理也是一個問題。它還可以做到在線資源伸縮,每個資源容器是可以實(shí)時的收縮。

現(xiàn)在互聯(lián)網(wǎng)公司google一直在用這種技術(shù),騰訊現(xiàn)在也開始,雅虎和Facebook也在做Hadoop,一個集群里面跑多個Hadoop,Hadoop和其他應(yīng)用共用資源,他們也是用資源容器來隔離。

剛才講到集群任務(wù)調(diào)度系統(tǒng)需要一個名字服務(wù),他們直接不能用IP地址通訊,這個任務(wù)可能是遷移的,可以動態(tài)部署的,名字服務(wù)通過一個分布式的同步系統(tǒng)實(shí)現(xiàn)。分布式 系統(tǒng)里面,同步協(xié)調(diào)需求還是很多的,除了名字服務(wù),還有配鋪同步,分布式選舉,當(dāng)我做配置更改的時候,怎么能夠迅速通知到所有的服務(wù)器,讓他們直接把這個配置拉取下來,配置同步也是一個需求。

另外還有一個分布式選舉的需求,做高可用的時候,以前一些做法,一主一備,都是比較靜態(tài)制訂,主的宕了,備的上,有的是一主多備,或者一組服務(wù)器, 不指定哪個主的,一個宕掉了,另外自動補(bǔ)上。

還有群組成員管理,一個組里面有幾百臺和幾千臺節(jié)點(diǎn),它是動態(tài)的,怎么進(jìn)行組員的管理。

另外就是分布式鎖,分布式計算可能有一個同樣的需求,需要共享資源,就是需要分布式鎖。主席用統(tǒng)一的平臺,各個業(yè)務(wù)就會自己做這個東西,這個東西是很復(fù)雜的,后面真正要實(shí)現(xiàn)分布式協(xié)調(diào)是要用到一個Paxos協(xié)議,這個協(xié)議非常復(fù)雜,一不小心就做錯,把它開發(fā)成一個平臺提供給大家應(yīng)用。google比較早做了這個步,他們開發(fā)了Chubby提供服務(wù)。

雅虎也做了一個開源版的Chubby,ZooKeeper,它有五臺服務(wù)器,三臺或者五臺、七臺都可以,Paxos比較復(fù)雜,所以他們發(fā)明了一個ZooKeeper Atomic Broadcast實(shí)現(xiàn)信息同步。這五臺有兩臺宕還是可用的,這些客戶就連接到某一臺服務(wù)器,讀的時候只從這臺服務(wù)器就可以了,寫的時候,這臺服務(wù)器需要把寫的信息轉(zhuǎn)發(fā)給Leader,然后實(shí)現(xiàn)同步。Client寫了數(shù)據(jù),另外一個是讀了,這兩個也要同步,它有一個同時機(jī)制,Client寫的時候是五臺服務(wù)器都寫了才是成功,而且數(shù)據(jù)在內(nèi)存里面,速度相對比較快。數(shù)據(jù)發(fā)生改變之后,服務(wù)器會通知對這個數(shù)據(jù)感興趣的Client,有通知機(jī)制。它每秒可以實(shí)現(xiàn)幾萬個請求。

云存儲,存儲方面比較成熟了,幾年前Google發(fā)表了System,之后還有Big Table,都是PB級。

最后講一下數(shù)據(jù)中心自動化運(yùn)維和監(jiān)控,騰訊服務(wù)器達(dá)到六位數(shù)之后,效率就非常重要,到底多少人來運(yùn)維,我們做的就是自動化運(yùn)維,提高效率,降低成本。上個月底亞馬遜云計算發(fā)生了比較大的事故,就是人工失誤造成的,造成服務(wù)中斷12個效果。如果自動化運(yùn)維就會有效減少這些失誤。我們一個運(yùn)維人員管幾千臺服務(wù)器,希望實(shí)現(xiàn)自動容錯,一臺機(jī)器實(shí)現(xiàn)精簡故障,服務(wù)器可以自動找出好的服務(wù)器,運(yùn)維人員只是在工作時間換掉這個服務(wù)器就可以了,不需要半夜去做,這也有一個全面準(zhǔn)確及時告警系統(tǒng)。

在不久的將來,云計算一定會徹底走入我們的生活,有興趣入行未來前沿產(chǎn)業(yè)的朋友,可以收藏云計算,及時獲取人工智能、大數(shù)據(jù)、云計算和物聯(lián)網(wǎng)的前沿資訊和基礎(chǔ)知識,讓我們一起攜手,引領(lǐng)人工智能的未來!

標(biāo)簽: Google linux 大數(shù)據(jù) 服務(wù)器 服務(wù)器端 互聯(lián)網(wǎng) 互聯(lián)網(wǎng)公司 互聯(lián)網(wǎng)業(yè)務(wù) 網(wǎng)絡(luò) 云計算 云計算技術(shù) 云計算平臺 中國云計算

版權(quán)申明:本站文章部分自網(wǎng)絡(luò),如有侵權(quán),請聯(lián)系:west999com@outlook.com
特別注意:本站所有轉(zhuǎn)載文章言論不代表本站觀點(diǎn)!
本站所提供的圖片等素材,版權(quán)歸原作者所有,如需使用,請與原作者聯(lián)系。

上一篇:混合云網(wǎng)絡(luò)面臨挑戰(zhàn) SDN或成解決方案

下一篇:如何才能發(fā)揮NAND閃存的最大性能?