9月23-24日,主題為“重新定義運(yùn)維”的GOPS2016全球運(yùn)維大會(huì)上海站隆重舉行,金山云作為頂級(jí)贊助商受邀出席本次大會(huì)。在DevOps分論壇上,金山云架構(gòu)師趙帥發(fā)表題為《Docker在DevOps中的應(yīng)用》的主題演講。

圖為金山云架構(gòu)師趙帥發(fā)表《Docker在DevOps中的應(yīng)用》主題演講
趙帥認(rèn)為,Docker是近兩年最具顛覆性的技術(shù),正如集裝箱的出現(xiàn)提高了貨物運(yùn)輸?shù)男室话悖珼ocker的出現(xiàn)改變了軟件生產(chǎn)和軟件交付的方式,而這必將對(duì)IT產(chǎn)業(yè)的變革產(chǎn)生深遠(yuǎn)的影響。在容器服務(wù)方面,金山云可為用戶提供build、ship、run一站式解決方案,使用戶更加專注于應(yīng)用的開發(fā),這是解放用戶生產(chǎn)力的一大革命。
Docker為什么這么火?
根據(jù)2016年Docker官方公布數(shù)據(jù)顯示,全球已有46萬(wàn)個(gè)應(yīng)用Docker化,并且實(shí)現(xiàn)了兩年增長(zhǎng)3000%。這樣的發(fā)展速度,是曾經(jīng)的虛擬化等技術(shù)無(wú)法比擬的。
在高速增長(zhǎng)的行業(yè)趨勢(shì)下,Docker無(wú)疑是近兩年最火的技術(shù),甚至是最具顛覆性的技術(shù)。那么,Docker對(duì)云計(jì)算行業(yè)來(lái)說(shuō)意味著什么?回顧云計(jì)算發(fā)展歷程,從2006年AWS上線至今,已經(jīng)走過(guò)了十個(gè)年頭。十年中,以亞馬遜為代表的云計(jì)算廠商,推出了一系列云服務(wù),使得云計(jì)算從概念變?yōu)楝F(xiàn)實(shí),進(jìn)而推動(dòng)了IT產(chǎn)業(yè)的變革。十年的發(fā)展,IaaS變得非常成熟,計(jì)算、存儲(chǔ)、網(wǎng)絡(luò)等基礎(chǔ)資源像水和電一樣隨手可得。用戶只需要點(diǎn)擊鼠標(biāo),即可輕松獲取主機(jī)、IP地址乃至數(shù)據(jù)庫(kù)、緩存等資源。
從運(yùn)維的角度,IaaS幫助用戶解決了IDC運(yùn)維的問(wèn)題,把用戶從租賃機(jī)房機(jī)柜、上架服務(wù)器、插拔網(wǎng)線等繁瑣的事項(xiàng)中解放出來(lái)。但是云計(jì)算發(fā)展到今天,用戶仍然需要投入大量精力去做應(yīng)用運(yùn)維。
應(yīng)用的部署、變更、擴(kuò)容、縮容、監(jiān)控……工作繁多,如何將用戶從應(yīng)用運(yùn)維中解放出來(lái)?Docker的出現(xiàn),為這個(gè)問(wèn)題提供了答案。Docker定義了云計(jì)算環(huán)境下應(yīng)用的標(biāo)準(zhǔn)封裝形式和操作接口,使得云廠商能夠以統(tǒng)一的視角去托管用戶的應(yīng)用,用戶只需要關(guān)注應(yīng)用的開發(fā),應(yīng)用的運(yùn)維統(tǒng)統(tǒng)由云廠商完成。
經(jīng)常有人拿Docker和“集裝箱”來(lái)類比。集裝箱的出現(xiàn),提高了貨物運(yùn)輸?shù)男剩瑸榻?jīng)濟(jì)全球化做出了重要貢獻(xiàn)。Docker的出現(xiàn),改變了軟件生產(chǎn)和軟件交付的方式,必將對(duì)IT產(chǎn)業(yè)的變革產(chǎn)生深遠(yuǎn)的影響。
Docker是實(shí)踐DevOps的最佳方式
DevOps是近年來(lái)軟件工程領(lǐng)域流行的趨勢(shì)和文化,它提倡開發(fā)(Development)和運(yùn)維(Operations)的緊密配合以實(shí)現(xiàn)更快、更高質(zhì)量的交付軟件產(chǎn)品。DevOps更多的是一種理念,實(shí)踐DevOps需要工具和系統(tǒng)的支持,Docker是實(shí)現(xiàn)DevOps的理想工具。
Docker的出現(xiàn),為DevOps的實(shí)踐方式帶來(lái)突破,也為企業(yè)運(yùn)維及開發(fā)團(tuán)隊(duì)的工作帶來(lái)便利:
? 開發(fā)人員可以更專注于他們的代碼,而不用擔(dān)心如何在生產(chǎn)環(huán)境中運(yùn)行它們; ? 運(yùn)維團(tuán)隊(duì)在部署的時(shí)候,可以視容器為一個(gè)獨(dú)立的完整的模塊;
? Docker分層的文件系統(tǒng),使環(huán)境配置易于管理、維護(hù);
? 像Git工作流一樣,通過(guò)Dockerfile,即便是復(fù)雜、異構(gòu)的開發(fā)、測(cè)試環(huán)境,仍然可以高效的管理;
? 即便在同一個(gè)VM中,多個(gè)容器仍能運(yùn)行多種不同的環(huán)境。
正如上文所說(shuō),Docker在容器技術(shù)上的突破有目共睹。那么, Docker技術(shù)是如何得以實(shí)現(xiàn)的呢?趙帥介紹到,Build、ship、run是Docker提出的響亮口號(hào),也是實(shí)踐DevOps的最佳方式。
以金山云的實(shí)踐為例,一個(gè)完整的基于Docker的工作流程如下:

圖為金山云容器服務(wù)架構(gòu)圖
1. 開發(fā)人員提交代碼;
2. Webhook觸發(fā)自動(dòng)構(gòu)建,將代碼打包成Docker鏡像;
3. CI(持續(xù)集成)平臺(tái)對(duì)Docker鏡像運(yùn)行測(cè)試case,測(cè)試通過(guò)后將Docker鏡像推動(dòng)到鏡像倉(cāng)庫(kù);
4. CD(持續(xù)交付)平臺(tái)或者運(yùn)維將鏡像部署到線上環(huán)境;以上流程為我們構(gòu)建了一條完整的軟件生產(chǎn)、測(cè)試、發(fā)布的流水線,提高了軟件生產(chǎn)的自動(dòng)化程度;開發(fā)人員和運(yùn)維人員分工簡(jiǎn)單明確,配合順暢,很好地踐行了DevOps的理念。
專注容器技術(shù) 為用戶解放生產(chǎn)力
作為全球領(lǐng)先的云計(jì)算服務(wù)提供商,金山云以技術(shù)立本,多年來(lái)在業(yè)內(nèi)保持著技術(shù)領(lǐng)先優(yōu)勢(shì)。
2016年8月,在視頻壓縮界享有盛譽(yù)的視頻編碼器大賽上, 金山云H.265編碼器拔得編碼軟件頭籌,先進(jìn)的編碼技術(shù)獲國(guó)際認(rèn)可。
而在容器服務(wù)研究方面,金山云始終關(guān)注并積極實(shí)踐容器相關(guān)技術(shù)。在2014年,金山云使用LXC(Linux Container)技術(shù)研發(fā)RDS、KCS等產(chǎn)品,成為較早將容器技術(shù)落地的云計(jì)算廠商。目前,金山云積極研發(fā)Docker容器服務(wù),依托于自身強(qiáng)大的計(jì)算、網(wǎng)絡(luò)、存儲(chǔ)等IaaS資源,同時(shí)整合數(shù)據(jù)庫(kù)、緩存等PaaS資源,金山云容器服務(wù)將為用戶提供build、ship、run一站式解決方案,幫助用戶解決開發(fā)、測(cè)試、運(yùn)維中的各種難題,使得用戶專注于應(yīng)用的開發(fā),進(jìn)而解放用戶的生產(chǎn)力。