李雪竹
摘 要:云計(jì)算越來越受歡迎,也是因?yàn)樗梢苑浅l`活的方式按需提供所需的資源量。用戶可以使用云中所需的資源容量立即構(gòu)建所需的服務(wù),而不是由第三方持續(xù)維護(hù)和管理服務(wù)。在前期研究的基礎(chǔ)上,引入新型云協(xié)調(diào)器,創(chuàng)建出一種適合混合云系統(tǒng)的Docker Swarm集群的方法。因此,移植基礎(chǔ)設(shè)施不同類型的云或在混合云(包括私有云和公共云)之上部署基礎(chǔ)架構(gòu)(商業(yè))云變得簡單明了。
關(guān)鍵詞:混合云;Docker Swarm集群;基礎(chǔ)架構(gòu)
一、國內(nèi)外研究現(xiàn)狀
隨著云計(jì)算的普及,分布式計(jì)算技術(shù)已經(jīng)成為企業(yè)客戶在大數(shù)據(jù)時(shí)代的首選后臺(tái)技術(shù)方案,各家互聯(lián)網(wǎng)公司已經(jīng)把分布式計(jì)算技術(shù)應(yīng)用到了日常業(yè)務(wù)系統(tǒng)。然而,眾所周知,云計(jì)算架構(gòu)有著經(jīng)典的三部分模型,IaaS 基礎(chǔ)設(shè)施服務(wù)、PaaS平臺(tái)服務(wù)、SaaS 軟件服務(wù),界限十分明確,各部分有著自己的職責(zé)。而隨著科技的發(fā)展,依托輕量虛擬化技術(shù)的Docker 已經(jīng)在云計(jì)算領(lǐng)域激起千層浪,它模糊了IaaS和PaaS之間的界限,打破了原有的生硬的分類,一定程度上顛覆了經(jīng)典云計(jì)算架構(gòu),為云計(jì)算服務(wù)形式的發(fā)展帶來了無限的可能。
Docker技術(shù)是一種開源的容器引擎,是操作系統(tǒng)層的虛擬化。它將容器技術(shù)標(biāo)準(zhǔn)化,提供標(biāo)準(zhǔn)的打包方式和交付標(biāo)準(zhǔn),一次構(gòu)建隨處運(yùn)行;并且實(shí)現(xiàn)應(yīng)用在不同主機(jī)、不同系統(tǒng)、甚至不同云平臺(tái)之間的流動(dòng)和移植;相比重量級(jí)的虛擬機(jī),Docker非常靈活和輕量級(jí),啟動(dòng)更快性能更高,對(duì)系統(tǒng)資源的占用率也更低。以Docker為代表的容器虛擬化技術(shù)的盛行,可以幫助使用者在無需關(guān)心底層復(fù)雜的基礎(chǔ)設(shè)施情形下進(jìn)行高效開發(fā)、運(yùn)行和管理其應(yīng)用程序,利用Docker部署管理平臺(tái),就能運(yùn)維部署的一體化?;贒ocker的特點(diǎn)和優(yōu)勢(shì),Docker正在被重新定義,各大互聯(lián)網(wǎng)巨頭爭相探索、應(yīng)用。正是在這樣的需求背景下,Docker應(yīng)用容器集群應(yīng)運(yùn)而生了。而其集群管理工具Docker Swarm更是當(dāng)仁不讓成為了當(dāng)今Internet簡單高效的應(yīng)用程序交付平臺(tái)和集群資源管理的解決方案。在此基礎(chǔ)上,一套完整可靠的能夠充分發(fā)揮集群優(yōu)勢(shì)的編排引擎算法便顯得尤為重要。然而,就目前而言,Docker背后的編排引擎(SwarmKit)附帶的調(diào)度算法在資源不均勻時(shí)并不理想,無法完美實(shí)現(xiàn)負(fù)載均衡,在資源利用率和集群性能方面并不能很好的符合預(yù)期。目前國內(nèi)外有很多的容器云平臺(tái),國外的主要有亞馬遜EC2、IBM Bluemix、微軟Azure 等著名云計(jì)算平臺(tái)提供的容器云;國內(nèi)的主要有DaoCloud、精靈云、靈雀云、時(shí)速云、網(wǎng)易云、華為云以及我們耳熟能詳?shù)腂AT云平臺(tái)等,這些平臺(tái)多是基于容器云技術(shù),專門為微服務(wù)技術(shù)進(jìn)行貼身改造,使其能夠符合微服務(wù)云平臺(tái)管理場景的相關(guān)規(guī)范。
二、Docker Swarm集群部署的思路分析
隨著對(duì)混合云、云協(xié)調(diào)器以及Docker Swarm集群的逐步了解,以及對(duì)國內(nèi)外相關(guān)研究現(xiàn)狀的分析,作者針對(duì)現(xiàn)狀存在的問題,比如各種云應(yīng)用程序的擴(kuò)展、動(dòng)態(tài)負(fù)載的管理和混合云的特殊性的設(shè)置等,進(jìn)行了一系列分析,總體思路如下:首先引入一種新型的云協(xié)調(diào)器Occopus,編寫所需要的Occopus描述符,定義基礎(chǔ)架構(gòu),維護(hù)基礎(chǔ)架構(gòu),向上或向下擴(kuò)展基礎(chǔ)節(jié)點(diǎn),然后再在混合云上構(gòu)建復(fù)雜服務(wù),為混合的云系統(tǒng)創(chuàng)建Docker Swarm集群方法。最后為了分析在Docker Swarm集群下切片網(wǎng)絡(luò)的效果,重點(diǎn)研究云中VPN的速度,找出混合Docker Swarm解決方案的最佳VPN配置。為了在混合云中部署復(fù)雜的基礎(chǔ)架構(gòu),以提高用戶在使用混合云時(shí)可以提高安全性和通信性能,本項(xiàng)目的研究目標(biāo)是在前期研究的基礎(chǔ)上,引入新型云協(xié)調(diào)器,創(chuàng)建出一種適合混合云系統(tǒng)的Docker Swarm集群的方法。
三、Docker Swarm集群部署的關(guān)鍵技術(shù)
引入新型云協(xié)調(diào)器Occopus,創(chuàng)建Docker Swarm集群,并根據(jù)其負(fù)載動(dòng)態(tài)增加或減少集群中的工作節(jié)點(diǎn)數(shù)量,在可用的工作節(jié)點(diǎn)內(nèi), Swarm節(jié)點(diǎn)管理器根據(jù)工作節(jié)點(diǎn)的負(fù)載增加或減少Docker容器的數(shù)量,所有這些動(dòng)態(tài)可擴(kuò)展性活動(dòng)都可以在各種私有云公有云或商業(yè)混合云系統(tǒng)之上完成。
1)基于云協(xié)調(diào)器Occopus,在單個(gè)或多個(gè)云環(huán)境中配置和編排分布式應(yīng)用程序通過框架上下環(huán)境和配置管理來執(zhí)行節(jié)點(diǎn)的配置和初始設(shè)置,連續(xù)的維護(hù)構(gòu)建的基礎(chǔ)結(jié)構(gòu);激活不同的插件及其組合來部署一些虛擬機(jī),使不同的組合可以在同一個(gè)虛擬基礎(chǔ)架構(gòu)中使用。
2)實(shí)例化虛擬架構(gòu)的節(jié)點(diǎn),實(shí)現(xiàn)手動(dòng)縮放機(jī)制,安裝和配置管理器,監(jiān)視節(jié)點(diǎn)的運(yùn)行狀況以及節(jié)點(diǎn)服務(wù)的詳細(xì)信息。支持可插入和可配置的正常運(yùn)行監(jiān)控,如url響應(yīng),MYSQL數(shù)據(jù)庫連接,實(shí)現(xiàn)新的檢查機(jī)制作為Occopus的插件。研究手動(dòng)縮放機(jī)制的實(shí)現(xiàn),Occopus在限制范圍內(nèi)擴(kuò)展和縮小外部請(qǐng)求,外部請(qǐng)求可以通過命令行函數(shù)或rest api到達(dá)。
3)在混合云上構(gòu)建復(fù)雜的服務(wù),在Occopus特定的基礎(chǔ)架構(gòu)中,每個(gè)節(jié)點(diǎn)都有自己的定義和描述,每個(gè)節(jié)點(diǎn)由自己的云處理程序插件處理,并且還基于每個(gè)節(jié)點(diǎn)的處理身份驗(yàn)證。如圖1所示;
利用Occopus在同一基礎(chǔ)架構(gòu)中使用多個(gè)云,并且不可以影響節(jié)點(diǎn)內(nèi)部服務(wù)部署的實(shí)現(xiàn)方式,確保網(wǎng)絡(luò)配置正確,以便節(jié)點(diǎn)相互連接。
四、總結(jié)
本文主要是異構(gòu)混合云模式下基于一種新型云協(xié)調(diào)器的Docker Swarm集群步署,針對(duì)混合云的模式進(jìn)行研究,適用環(huán)境上有一定的創(chuàng)新,對(duì)跨云的復(fù)雜性和動(dòng)態(tài)性的處理有一定的挑戰(zhàn)。其中在組件云中使用Internet的混合云環(huán)境中,加密消息的使用非常重要,這給相應(yīng)的用戶社區(qū)研究帶來了新的應(yīng)用思路。
參考文獻(xiàn):
[1] Visti H, Kiss T, Terstyanszky G, Gesmier G, Winter S. MICADO towards a microservice-based cloud application-level dynamic orchestrator. Proceedings of IWSG 2016. 2017. accepted, to be published in 2017
[2] Rimal, Prasad B, Choi E, Lumb I. A taxonomy and survey of cloud computing systems. Proceedings of the INC, IMS and IDC. 2009. p. 44–51.
[3] Goyal S. Public vs private vs hybrid vs community - cloud computing: a criticalreview. IJ Comput Netw Inf Secur 2014;3:20–9. 2014.03.03.