李雪竹

摘 要:云計算越來越受歡迎,也是因為它可以非常靈活的方式按需提供所需的資源量。用戶可以使用云中所需的資源容量立即構建所需的服務,而不是由第三方持續維護和管理服務。在前期研究的基礎上,引入新型云協調器,創建出一種適合混合云系統的Docker Swarm集群的方法。因此,移植基礎設施不同類型的云或在混合云(包括私有云和公共云)之上部署基礎架構(商業)云變得簡單明了。
關鍵詞:混合云;Docker Swarm集群;基礎架構
一、國內外研究現狀
隨著云計算的普及,分布式計算技術已經成為企業客戶在大數據時代的首選后臺技術方案,各家互聯網公司已經把分布式計算技術應用到了日常業務系統。然而,眾所周知,云計算架構有著經典的三部分模型,IaaS 基礎設施服務、PaaS平臺服務、SaaS 軟件服務,界限十分明確,各部分有著自己的職責。而隨著科技的發展,依托輕量虛擬化技術的Docker 已經在云計算領域激起千層浪,它模糊了IaaS和PaaS之間的界限,打破了原有的生硬的分類,一定程度上顛覆了經典云計算架構,為云計算服務形式的發展帶來了無限的可能。
Docker技術是一種開源的容器引擎,是操作系統層的虛擬化。它將容器技術標準化,提供標準的打包方式和交付標準,一次構建隨處運行;并且實現應用在不同主機、不同系統、甚至不同云平臺之間的流動和移植;相比重量級的虛擬機,Docker非常靈活和輕量級,啟動更快性能更高,對系統資源的占用率也更低。以Docker為代表的容器虛擬化技術的盛行,可以幫助使用者在無需關心底層復雜的基礎設施情形下進行高效開發、運行和管理其應用程序,利用Docker部署管理平臺,就能運維部署的一體化。基于Docker的特點和優勢,Docker正在被重新定義,各大互聯網巨頭爭相探索、應用。正是在這樣的需求背景下,Docker應用容器集群應運而生了。而其集群管理工具Docker Swarm更是當仁不讓成為了當今Internet簡單高效的應用程序交付平臺和集群資源管理的解決方案。在此基礎上,一套完整可靠的能夠充分發揮集群優勢的編排引擎算法便顯得尤為重要。然而,就目前而言,Docker背后的編排引擎(SwarmKit)附帶的調度算法在資源不均勻時并不理想,無法完美實現負載均衡,在資源利用率和集群性能方面并不能很好的符合預期。目前國內外有很多的容器云平臺,國外的主要有亞馬遜EC2、IBM Bluemix、微軟Azure 等著名云計算平臺提供的容器云;國內的主要有DaoCloud、精靈云、靈雀云、時速云、網易云、華為云以及我們耳熟能詳的BAT云平臺等,這些平臺多是基于容器云技術,專門為微服務技術進行貼身改造,使其能夠符合微服務云平臺管理場景的相關規范。
二、Docker Swarm集群部署的思路分析
隨著對混合云、云協調器以及Docker Swarm集群的逐步了解,以及對國內外相關研究現狀的分析,作者針對現狀存在的問題,比如各種云應用程序的擴展、動態負載的管理和混合云的特殊性的設置等,進行了一系列分析,總體思路如下:首先引入一種新型的云協調器Occopus,編寫所需要的Occopus描述符,定義基礎架構,維護基礎架構,向上或向下擴展基礎節點,然后再在混合云上構建復雜服務,為混合的云系統創建Docker Swarm集群方法。最后為了分析在Docker Swarm集群下切片網絡的效果,重點研究云中VPN的速度,找出混合Docker Swarm解決方案的最佳VPN配置。為了在混合云中部署復雜的基礎架構,以提高用戶在使用混合云時可以提高安全性和通信性能,本項目的研究目標是在前期研究的基礎上,引入新型云協調器,創建出一種適合混合云系統的Docker Swarm集群的方法。
三、Docker Swarm集群部署的關鍵技術
引入新型云協調器Occopus,創建Docker Swarm集群,并根據其負載動態增加或減少集群中的工作節點數量,在可用的工作節點內, Swarm節點管理器根據工作節點的負載增加或減少Docker容器的數量,所有這些動態可擴展性活動都可以在各種私有云公有云或商業混合云系統之上完成。
1)基于云協調器Occopus,在單個或多個云環境中配置和編排分布式應用程序通過框架上下環境和配置管理來執行節點的配置和初始設置,連續的維護構建的基礎結構;激活不同的插件及其組合來部署一些虛擬機,使不同的組合可以在同一個虛擬基礎架構中使用。
2)實例化虛擬架構的節點,實現手動縮放機制,安裝和配置管理器,監視節點的運行狀況以及節點服務的詳細信息。支持可插入和可配置的正常運行監控,如url響應,MYSQL數據庫連接,實現新的檢查機制作為Occopus的插件。研究手動縮放機制的實現,Occopus在限制范圍內擴展和縮小外部請求,外部請求可以通過命令行函數或rest api到達。
3)在混合云上構建復雜的服務,在Occopus特定的基礎架構中,每個節點都有自己的定義和描述,每個節點由自己的云處理程序插件處理,并且還基于每個節點的處理身份驗證。如圖1所示;
利用Occopus在同一基礎架構中使用多個云,并且不可以影響節點內部服務部署的實現方式,確保網絡配置正確,以便節點相互連接。
四、總結
本文主要是異構混合云模式下基于一種新型云協調器的Docker Swarm集群步署,針對混合云的模式進行研究,適用環境上有一定的創新,對跨云的復雜性和動態性的處理有一定的挑戰。其中在組件云中使用Internet的混合云環境中,加密消息的使用非常重要,這給相應的用戶社區研究帶來了新的應用思路。
參考文獻:
[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.