4月21號,由InfoQ主辦的全球頂級技術(shù)盛會QCon全球軟件開發(fā)大會在北京開幕,吸引了國內(nèi)外近百名資深技術(shù)專家及千名開發(fā)者的參加。網(wǎng)易云基礎(chǔ)設(shè)施技術(shù)總監(jiān)張曉龍受邀出席,同與會的技術(shù)同行們分享了網(wǎng)易蜂巢容器云在基礎(chǔ)設(shè)施上的優(yōu)化之道。
Docker容器誕生于2013年,是歷史上發(fā)展最快的開源軟件之一。目前Docker擁有極其活躍的開發(fā)者和用戶社區(qū),已經(jīng)形成了日益完善的生態(tài)系統(tǒng),獲得亞馬遜、谷歌等巨頭支持。不僅是可提高資源利用率、實現(xiàn)資源隔離的輕量級虛擬化,更是一種全新的應(yīng)用交付標準化方式,是應(yīng)用交付的“集裝箱”。使用Docker容器進行研發(fā),減少了配置管理工作的負擔,讓持續(xù)集成與持續(xù)部署過程變得更流暢。蜂巢容器云運行支撐了網(wǎng)易云音樂、網(wǎng)易新聞、考拉等重量級產(chǎn)品,如何保證服務(wù)的安全穩(wěn)定,并提供極佳的用戶體驗?
作為網(wǎng)易云基礎(chǔ)設(shè)施技術(shù)總監(jiān),張曉龍主導了網(wǎng)易私有云和網(wǎng)易蜂巢公有云基礎(chǔ)設(shè)施服務(wù)的研發(fā)工作,在云計算基礎(chǔ)設(shè)施、大數(shù)據(jù)、分布式系統(tǒng)、服務(wù)端方面有多年的研發(fā)實踐經(jīng)驗。在QCon大會上,張曉龍作了名為《網(wǎng)易蜂巢容器云基礎(chǔ)設(shè)施優(yōu)化之道》的主題演講,闡述了蜂巢容器云的研發(fā)歷程、技術(shù)架構(gòu)、核心技術(shù),以及在容器隔離、啟動性能、容器網(wǎng)絡(luò)網(wǎng)絡(luò)安全、網(wǎng)絡(luò)帶寬QoS、容器存儲性能、支持有狀態(tài)容器以及容器編排等方面的基礎(chǔ)設(shè)施優(yōu)化。正是在云計算基礎(chǔ)設(shè)施的優(yōu)化,才確保了蜂巢容器云服務(wù)的高效、安全、穩(wěn)定。
和很多網(wǎng)易系云計算產(chǎn)品一樣,蜂巢容器云也是網(wǎng)易云計算技術(shù)對外輸出的產(chǎn)品。2015年秋,蜂巢容器公有云邀請用戶試用,并在2015年底對外開放了容器公有云的注冊。不同于其他容器云服務(wù),蜂巢容器云在上線之初就瞄向創(chuàng)服圈。今年年初的時候,網(wǎng)易啟動了致力于幫扶互聯(lián)網(wǎng)開發(fā)者、創(chuàng)業(yè)者的“易啟計劃”,30余家創(chuàng)服機構(gòu)現(xiàn)場簽定戰(zhàn)略合作協(xié)議,共同打造有利于科技創(chuàng)業(yè)的良好生態(tài)環(huán)境。蜂巢容器云便是網(wǎng)易云戰(zhàn)略和“易啟計劃”的核心產(chǎn)品之一。
據(jù)張曉龍介紹,蜂巢容器云采用了最新流行的Docker容器化技術(shù),提供自動化構(gòu)建發(fā)布、應(yīng)用性能管理、集群編排等服務(wù),全面加速創(chuàng)業(yè)研發(fā)流程。此外,蜂巢還提供了豐富多樣的PaaS云服務(wù),比如關(guān)系數(shù)據(jù)庫、緩存、負載均衡、應(yīng)用性能監(jiān)測等服務(wù),全面助力創(chuàng)新創(chuàng)業(yè)團隊進行快速研發(fā)。網(wǎng)易蜂巢基于網(wǎng)易自研IaaS深度定制優(yōu)化,采用高規(guī)格的硬件設(shè)施如多線BGP網(wǎng)絡(luò)接入、萬兆網(wǎng)絡(luò)互聯(lián)、全SSD存儲等,確保極速、安全、穩(wěn)定的用戶體驗。
RightScale不久前發(fā)布的《2016 年度云計算調(diào)查報告》顯示,33%的云計算用戶公司規(guī)模在100人以下,而1000人以下的員工占比更是高達58%??梢哉f,網(wǎng)易蜂巢瞄向了有著巨大潛力的創(chuàng)服市場,同時創(chuàng)業(yè)者對云服務(wù)的安全、效率、穩(wěn)定性、性能等有著更迫切的需求。而網(wǎng)易蜂巢又是如何解決這些痛點的呢?張曉龍給出了下面的答案。
第一是提升容器安全性。由于是操作系統(tǒng)層面的輕量級虛擬化,容器安全性一直是用戶非常關(guān)心的問題,也制約著容器技術(shù)的發(fā)展;容器安全性問題以“容器逃逸”問題最有名,也就是黑客可以通過容器的一些漏洞滲透到運行容器所在的宿主機上,對宿主機上的其他容器以及宿主機本身都造成巨大的威脅。網(wǎng)易蜂巢將容器運行于隔離性更強且基于硬件虛擬化技術(shù)的云主機,并且確保在一個云主機上只運行同一個租戶的容器。這樣的設(shè)計可以獲得更好的容器安全性。網(wǎng)絡(luò)安全一直是公有云用戶非常關(guān)心的問題。蜂巢提供了包括二層、三層、四層在內(nèi)的網(wǎng)絡(luò)過濾功能,同時還為公有云用戶提供了防止DDoS攻擊的能力。
第二,提升容器的啟動速度。由于容器運行于云主機中,容器啟動時間依賴于云主機啟動速度。而基于硬件虛擬化技術(shù)的云主機啟動速度較慢,這導致容器啟動速度較慢。網(wǎng)易蜂巢為了解決這一問題,通過定制云主機系統(tǒng)鏡像,裁剪了不必要啟動加載和服務(wù),同時將云主機IP靜態(tài)化,以加速網(wǎng)絡(luò)初始化過程。同時值得一提的是,網(wǎng)易蜂巢還優(yōu)化了OpenStack創(chuàng)建云主機的流程,包括增加ConfigDrive鏡像緩存,優(yōu)化鏡像上傳RBD操作、削減計算節(jié)點定時任務(wù)運行時間等等。未來還將更進一步加快容器啟動速度。
第三,在容器網(wǎng)絡(luò)設(shè)計上,蜂巢為每個用戶提供一個私有網(wǎng)絡(luò)以及一個公網(wǎng)。用戶可以通過容器的網(wǎng)卡接入網(wǎng)絡(luò)。容器私有網(wǎng)基于VxLAN技術(shù)實現(xiàn),通過OpenStack Neutron創(chuàng)建提供,是一張?zhí)摂M的扁平二層網(wǎng)絡(luò),租戶間完全隔離,用戶可自主控制ip分配;容器公網(wǎng)是所有蜂巢用戶共享。同時,在網(wǎng)絡(luò)帶寬上,蜂巢實現(xiàn)網(wǎng)絡(luò)帶寬QoS,不僅確保用戶付費申請的帶寬,還可以在網(wǎng)絡(luò)帶寬資源富余時免費提升用戶帶寬體驗。
第四,在容器的存儲上,蜂巢優(yōu)化了底層分布式塊存儲服務(wù)Ceph的性能,大幅度降低了運維操作時存儲性能的衰減和影響時間。另外,雖然Docker可以很好支持無狀態(tài)服務(wù)的運行,但在業(yè)務(wù)開發(fā)中還是非常有可能需要容器具備持久化數(shù)據(jù)的能力。所以蜂巢也實現(xiàn)了對運行有狀態(tài)應(yīng)用的支持,包括允許持久化容器數(shù)據(jù)(運行環(huán)境、配置數(shù)據(jù)等)、快速備份以及恢復容器數(shù)據(jù)以及支持有狀態(tài)容器的遷移。
第五,在容器編排上,蜂巢拓展了容器編排服務(wù)Kubernetes的多租戶能力,實現(xiàn)其管理資源的租戶隔離,完善了租戶資源的安全訪問控制、為每個租戶實現(xiàn)獨立的認證和授權(quán)。同時,蜂巢還優(yōu)化了容器編排調(diào)度器和控制器的處理能力,以支持更大的集群規(guī)模以及更好的性能。
展望未來,張曉龍表示,網(wǎng)易蜂巢容器云還將加大基礎(chǔ)設(shè)施和產(chǎn)品的研發(fā)投入力度。蜂巢不斷推出更加豐富的容器云平臺服務(wù)的同時也會繼續(xù)深入優(yōu)化基礎(chǔ)設(shè)施,做真正專業(yè)的容器云平臺,全面助力創(chuàng)新創(chuàng)業(yè)團對加速研發(fā)全流程,實現(xiàn)應(yīng)用交付更快捷。