自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

網(wǎng)易蜂巢劉超:基于萬節(jié)點(diǎn)Kubernetes支撐大規(guī)模云應(yīng)用實(shí)踐

企業(yè)動(dòng)態(tài)
隨著云計(jì)算的普及,越來越多的企業(yè)開始在云端部署自己的應(yīng)用,如何對(duì)這些應(yīng)用進(jìn)行管理、調(diào)度、優(yōu)化、自主運(yùn)維等,以實(shí)現(xiàn)應(yīng)用的快速部署、快速迭代和實(shí)時(shí)監(jiān)控,已然成為云計(jì)算服務(wù)的一大難題。

12月2日,ArchSummit全球架構(gòu)師峰會(huì)在北京開幕,作為面向高端技術(shù)管理者、架構(gòu)師的技術(shù)大會(huì),本屆峰會(huì)吸引了上千位技術(shù)管理者、CTO、架構(gòu)師等。其中在云計(jì)算領(lǐng)域嶄露頭角的網(wǎng)易蜂巢受邀出席,網(wǎng)易蜂巢解決方案總架構(gòu)師劉超就Kubernetes支撐大規(guī)模云應(yīng)用的實(shí)踐進(jìn)行了分享。

隨著云計(jì)算的普及,越來越多的企業(yè)開始在云端部署自己的應(yīng)用,如何對(duì)這些應(yīng)用進(jìn)行管理、調(diào)度、優(yōu)化、自主運(yùn)維等,以實(shí)現(xiàn)應(yīng)用的快速部署、快速迭代和實(shí)時(shí)監(jiān)控,已然成為云計(jì)算服務(wù)的一大難題。

網(wǎng)易蜂巢從2012年正式上線私有云平臺(tái),到2014年,95%的互聯(lián)網(wǎng)應(yīng)用全部放到云平臺(tái)上,到2015年網(wǎng)易蜂巢容器云平臺(tái)正式對(duì)外開放,再到2016年上線DevOps和微服務(wù)。

作為網(wǎng)易云的基礎(chǔ)設(shè)施云服務(wù),網(wǎng)易蜂巢一直走在行業(yè)前列,并形成了新一代云計(jì)算的雛形,實(shí)現(xiàn)了從虛擬機(jī)到容器,從傳統(tǒng)應(yīng)用到微服務(wù)化,從傳統(tǒng)研發(fā)流程到DevOps,從私有云走向公有云的四個(gè)方面的轉(zhuǎn)變。

網(wǎng)易蜂巢已經(jīng)從最初千級(jí)別節(jié)點(diǎn)數(shù)成長(zhǎng)為萬級(jí)別節(jié)點(diǎn)數(shù)集群,并支撐了擁有億級(jí)用戶的網(wǎng)易考拉海購(gòu)和網(wǎng)易云音樂。在雙十一等訪問峰值來臨的時(shí)候,網(wǎng)易蜂巢系統(tǒng)的彈性伸縮能力以及應(yīng)用層的微服務(wù)化能力表現(xiàn)卓越。

據(jù)劉超介紹,網(wǎng)易蜂巢的技術(shù)優(yōu)化可以追溯到IaaS層、PaaS層和CaaS層。

網(wǎng)易蜂巢基于OpenStack自主研發(fā)了IaaS服務(wù),在計(jì)算虛擬化方面,通過裁剪KVM鏡像,優(yōu)化虛擬機(jī)啟動(dòng)流程等改進(jìn),實(shí)現(xiàn)了虛擬機(jī)的秒級(jí)別啟動(dòng)。在網(wǎng)絡(luò)虛擬化方面,通過SDN和Openvswitch技術(shù),實(shí)現(xiàn)了虛擬機(jī)之間的高性能互訪。在存儲(chǔ)虛擬化方面,通過優(yōu)化Ceph存儲(chǔ),實(shí)現(xiàn)高性能云盤。

在PaaS層,網(wǎng)易可以說更加的功力深厚,在數(shù)據(jù)庫(kù),緩存,對(duì)象存儲(chǔ)方面都有非常多的優(yōu)化。比如說數(shù)據(jù)庫(kù)RDS服務(wù),網(wǎng)易是兼容開源的mysql數(shù)據(jù)庫(kù)的所有接口的,然而開源的mysql會(huì)出現(xiàn)性能不高,主備切換數(shù)據(jù)丟失等現(xiàn)象,這對(duì)于很多關(guān)鍵應(yīng)用來講,是不能忍受的。網(wǎng)易是業(yè)內(nèi)為數(shù)不多的具備mysql內(nèi)核開發(fā)能力的公司之一,通過優(yōu)化主備同步技術(shù),可以實(shí)現(xiàn)主備切換數(shù)據(jù)零丟失,為了優(yōu)化mysql性能,網(wǎng)易還優(yōu)化了mysql并行復(fù)制技術(shù)和group commit技術(shù),實(shí)現(xiàn)了可靠性和性能的兼顧平衡。當(dāng)然數(shù)據(jù)庫(kù)的性能除了數(shù)據(jù)庫(kù)本身,SQL語句的撰寫也是十分重要的,直接影響著SQL查詢的性能和并發(fā)量,這雖然是應(yīng)用層的事情,但是蜂巢根據(jù)自己多年的數(shù)據(jù)庫(kù)運(yùn)維經(jīng)驗(yàn),開發(fā)了SQL優(yōu)化工具,用戶只要將SQL語句輸入這個(gè)優(yōu)化工具,就可以發(fā)現(xiàn)SQL查詢的瓶頸以及修改建議,例如索引的設(shè)置問題,主鍵的設(shè)置問題等等。

不過劉超表示,傳統(tǒng)的私有云只能實(shí)現(xiàn)資源層面的彈性,應(yīng)用層面的彈性往往通過腳本實(shí)現(xiàn),而且很多互聯(lián)網(wǎng)應(yīng)用由于要求上線時(shí)間快,多采取單體架構(gòu)進(jìn)行部署,從而喪失了三個(gè)方面的靈活性。

| 時(shí)間靈活性:應(yīng)用快速迭代,縮短客戶需求到產(chǎn)品上線的時(shí)間

| 空間靈活性:應(yīng)用彈性伸縮,應(yīng)對(duì)業(yè)務(wù)量突然增長(zhǎng)后較短時(shí)間恢復(fù)

| 管理靈活性:易部署,易遷移,服務(wù)發(fā)現(xiàn),依賴管理,自動(dòng)修復(fù),負(fù)載均衡

網(wǎng)易蜂巢作為容器云平臺(tái),相比于虛擬機(jī)實(shí)現(xiàn)了以資源為核心到以應(yīng)用為核心的轉(zhuǎn)變,用戶可以通過對(duì)于應(yīng)用的改造,實(shí)現(xiàn)微服務(wù)化和DevOps.

***板斧:去狀態(tài)、可擴(kuò)展。

原來的很多應(yīng)用程序都是有狀態(tài)的,所謂有狀態(tài),就是將很多數(shù)據(jù)保存在內(nèi)存中和本地文件系統(tǒng),這樣的話,一旦容器宕機(jī)后被分發(fā)到其他機(jī)器上的時(shí)候,所有的狀態(tài)就都不見了。通過將內(nèi)存中的數(shù)據(jù)放在外部的緩存系統(tǒng),將用戶數(shù)據(jù)放在數(shù)據(jù)庫(kù)中,將本地文件放在分布式存儲(chǔ)系統(tǒng)中,通過狀態(tài)的外置化,將應(yīng)用程序編程僅僅包含業(yè)務(wù)邏輯的實(shí)體,就可以進(jìn)行橫向的彈性擴(kuò)展,支撐大規(guī)模訪問了。對(duì)于外部的數(shù)據(jù),緩存系統(tǒng),數(shù)據(jù)庫(kù)系統(tǒng),和存儲(chǔ)系統(tǒng),都有自身的高可用的機(jī)制,不需要應(yīng)用層過多關(guān)心這方面的事情。

第二板斧:容器化、可編排。

有的人將容器化和微服務(wù)化劃等號(hào),其實(shí)不是的,不僅僅微服務(wù)可以容器化,一旦去狀態(tài)了,就可以容器化。一旦容器化,就可以使用容器編排系統(tǒng)kubernetes進(jìn)行容器的管理了。

例如一個(gè)應(yīng)用包含四個(gè)服務(wù)A,B,C,D,她們相互引用,相互依賴。如果使用了kubernetes,則服務(wù)之間的服務(wù)發(fā)現(xiàn)就可以通過服務(wù)名進(jìn)行了,例如A服務(wù)調(diào)用B服務(wù),不需要知道B服務(wù)的IP地址,只需要在配置文件里面寫入B服務(wù)服務(wù)名就可以了。如果中間的節(jié)點(diǎn)宕機(jī)了,kubernetes會(huì)自動(dòng)將上面的服務(wù)在另外的機(jī)器上啟動(dòng)起來,容器啟動(dòng)之后,容器的IP地址就變了,但是不用擔(dān)心,kubernetes會(huì)自動(dòng)將服務(wù)名B和新的IP地址映射好,A服務(wù)并無感知。這個(gè)過程叫做自修復(fù)和自發(fā)現(xiàn)。如果服務(wù)B遭遇了性能瓶頸,三個(gè)B服務(wù)才能支撐一個(gè)A服務(wù),也不需要特殊配置,只需要將服務(wù)B的數(shù)量設(shè)置為3,A還是只需要訪問服務(wù)B,kubernetes會(huì)自動(dòng)選擇其中一個(gè)進(jìn)行訪問,這個(gè)過程稱為彈性擴(kuò)展和負(fù)載均衡。

第三板斧:DevOps、可迭代。

在開發(fā)和運(yùn)維的過程中,往往涉及開發(fā)環(huán)境,測(cè)試環(huán)境,聯(lián)調(diào)環(huán)境,生產(chǎn)環(huán)境。如果不同的環(huán)境都需要腳本進(jìn)行維護(hù),成本太大,不能滿足敏捷開發(fā)的要求。容器鏡像的不可改變性可以很好的解決這一點(diǎn)。

在容器的鏡像中,業(yè)務(wù)代碼,程序庫(kù),系統(tǒng)依賴,文件目錄結(jié)構(gòu)等,都已經(jīng)打包在里面了,無論從哪里啟動(dòng)起來,都是統(tǒng)一的環(huán)境,只需要通過環(huán)境變量和配置文件的形式將不同環(huán)境的差異注入即可。而且更加優(yōu)雅的是,結(jié)合上面說的編排系統(tǒng),服務(wù)之間的依賴可以通過服務(wù)名寫入配置文件,這樣不同的環(huán)境不需要修改配置文件就能夠找到對(duì)應(yīng)系統(tǒng)的服務(wù)。結(jié)合代碼管理系統(tǒng),通過web hook的方式,用戶提交代碼,馬上觸發(fā)web hook,調(diào)用到網(wǎng)易蜂巢的API,則網(wǎng)易蜂巢會(huì)在一分鐘內(nèi)構(gòu)建新的鏡像并更新應(yīng)用,接下來可以進(jìn)行自動(dòng)化測(cè)試,如果測(cè)試通過,則運(yùn)維人員就可以一鍵更新線上生產(chǎn)環(huán)境了。

對(duì)于尚不能一步實(shí)現(xiàn)微服務(wù)化和DevOps的用戶,網(wǎng)易蜂巢還提供了有狀態(tài)容器的方式,通過掛在遠(yuǎn)程云盤保存狀態(tài)數(shù)據(jù)的方式,使得用戶方便從虛擬機(jī)模式向容器模式進(jìn)行過度。

在CaaS層面,為了支撐大規(guī)模云應(yīng)用,除了應(yīng)用層面的改造,容器的網(wǎng)絡(luò)和存儲(chǔ)性能也是非常重要的。在網(wǎng)絡(luò)方面,很多容器的使用者使用默認(rèn)的port mapping的方式進(jìn)行網(wǎng)絡(luò)互聯(lián),這樣對(duì)于應(yīng)用的浸入性太大。也有使用開源的如Docker Network, Flannel, Calico, Weave, OVS等方案,存在二次虛擬化的問題,虛擬機(jī)的網(wǎng)絡(luò)互聯(lián)是一次虛擬化,為了實(shí)現(xiàn)容器跨虛擬機(jī)互聯(lián),則需要進(jìn)行二次虛擬化,大大降低性能。網(wǎng)易蜂巢基于SDN,將IaaS層的網(wǎng)絡(luò)互聯(lián)能力直接應(yīng)用與容器,通過一次虛擬化就能夠?qū)崿F(xiàn)容器的扁平化二層互聯(lián)。在存儲(chǔ)方面,如果使用容器的統(tǒng)一存儲(chǔ)策略,例如基于云盤搭建Ceph集群,也存在二次虛擬化的問題,云盤本身是一次虛擬化,將云盤作為普通的存儲(chǔ),在其上搭建Ceph集群,則為二次虛擬化,大大降低性能,網(wǎng)易蜂巢基于Ceph,將云盤直接掛在到容器里面,實(shí)現(xiàn)一次虛擬化。

服務(wù)微服務(wù)化之后,容器數(shù)量會(huì)比較多,如果查找問題需要對(duì)于每個(gè)容器的日志進(jìn)行查看,會(huì)比較難定位問題,網(wǎng)易蜂巢平臺(tái)提供統(tǒng)一的日志收集,分析,搜索服務(wù),用戶可以通過關(guān)鍵字進(jìn)行搜索,將某個(gè)訂單號(hào)在各個(gè)應(yīng)用中的日志全部查詢出來,則問題就一目了然了。

除了問題的定位,性能瓶頸的定位也是一個(gè)挑戰(zhàn),網(wǎng)易蜂巢引入服務(wù)端 APM 解決細(xì)粒度性能分析,通過不同應(yīng)用之間的調(diào)用鏈,迅速發(fā)掘性能瓶頸。

當(dāng)容器規(guī)模擴(kuò)大到一定程度,kubernetes的調(diào)度就成為了瓶頸,開源的kubernetes是通過串行隊(duì)列Pod queue進(jìn)行任務(wù)調(diào)度的,當(dāng)任務(wù)規(guī)模比較大,但隊(duì)列不能滿足要求,網(wǎng)易蜂巢優(yōu)化為多個(gè)優(yōu)先級(jí)隊(duì)列,極大提高了任務(wù)的調(diào)度速度和容器的修復(fù)速度。另外由于kubernetes的數(shù)據(jù)是保存在etcd里面,當(dāng)容器規(guī)模擴(kuò)大的時(shí)候,單個(gè)etcd集群已經(jīng)不能滿足讀寫性能,通過根據(jù)Pod/Node/Replication Controller等資源到拆分不同etcd集群,解決了集群擴(kuò)展性的問題。

同時(shí)劉超表示,在這個(gè)“唯快不破”的互聯(lián)網(wǎng)時(shí)代,網(wǎng)易蜂巢將助力企業(yè)實(shí)現(xiàn)微服務(wù)化。

在如圖中的架構(gòu)里面,用戶僅僅需要關(guān)心自己的應(yīng)用的開發(fā)流程,實(shí)現(xiàn)微服務(wù)和DevOps,至于底層的IaaS層的計(jì)算,網(wǎng)絡(luò),存儲(chǔ),中間的PaaS的數(shù)據(jù)庫(kù),緩存,對(duì)象存儲(chǔ),上層的CaaS層的持續(xù)集成、鏡像倉(cāng)庫(kù)、服務(wù)發(fā)現(xiàn)、服務(wù)編排、日志服務(wù)、APM等,以及對(duì)外的負(fù)載均衡和CDN服務(wù),可以全部交給網(wǎng)易蜂巢平臺(tái)來實(shí)現(xiàn)。

更重要的是,網(wǎng)易蜂巢遵循開放、標(biāo)準(zhǔn)、穩(wěn)定的原則,所有的層面全部使用開源的軟件和開放的接口,使得服務(wù)本身易遷移、無綁定。

作為一家擁有19年經(jīng)驗(yàn)的互聯(lián)網(wǎng)公司,網(wǎng)易在向客戶輸出穩(wěn)定云服務(wù)的同時(shí),還將輸出完善的知識(shí)體系,幫助企業(yè)更好的運(yùn)用好云服務(wù),并創(chuàng)造更大的價(jià)值。

責(zé)任編輯:Jane 來源: 51CTO
相關(guān)推薦

2022-06-27 09:42:55

攜程金融nebula圖平臺(tái)

2017-04-26 10:04:31

云計(jì)算

2016-12-07 10:41:03

2022-06-09 13:45:18

vivoK8S集群Kubernetes

2017-04-26 11:16:21

云計(jì)算網(wǎng)易云

2021-04-22 13:38:21

前端開發(fā)技術(shù)

2013-01-04 13:34:31

云計(jì)算北龍超云

2022-04-28 15:34:00

應(yīng)用優(yōu)化實(shí)踐

2023-04-04 07:32:35

TorchRec模型訓(xùn)練

2023-11-20 07:27:00

云原生Spark

2014-07-15 13:41:41

阿里云可信云

2024-09-26 10:41:31

2017-01-11 10:57:29

2011-07-15 14:07:01

2024-07-19 09:01:07

2023-06-30 17:59:27

Ray離線推理

2020-10-19 19:37:18

區(qū)塊鏈李鳴數(shù)字

2019-04-25 15:15:25

醫(yī)療信息化云計(jì)算云平臺(tái)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)