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

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

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

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

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

以下是陳軍的演講實錄:

我是騰訊的陳軍,我加入騰訊之前在硅谷工作了十幾年,我要講的就是開發(fā)平臺與騰訊海量業(yè)務面對的挑戰(zhàn),重點講幾個比較有意思的話題,網(wǎng)絡方面,集群任務調(diào)度、分布式同步,還有云存儲和數(shù)據(jù)中心運維,因為騰訊做的東西很多。時間關(guā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è)公司可以借助騰訊這個平臺來服務億萬用戶。

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

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

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

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

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

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

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

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

這種拓撲結(jié)構(gòu)是Google是2008年做的,三級CLOS Network。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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