西安電子科技大學博士生導師,大數(shù)據(jù)機云計算專家杜軍朝先生分享:
“大會是“云相伴 AI相隨”,我講一下相關的技術,主要講一下云計算虛擬化及容器的私有化部署的方案。
主要講幾個部分,云計算、虛擬化和容器相關以及我們的部署方案還有它的相關應用。云大家都熟悉,云計算就像水、電這些基礎設施一樣,我們插上電源或打開水龍頭去就可以使用,現(xiàn)在很多廠商都提供了這樣一些服務,一般我們把云的服務分成三類,一個是IaaS,賣虛擬機相關的服務,然后是PaaS,如數(shù)據(jù)庫服務和其他的服務,包括呼叫中心相關的,數(shù)據(jù)分析等。然后是SaaS,我們買票或者其他相關的應用都是SaaS的服務,它有各種各樣的特征。
我們再來看,從最早買機器,逐漸的有虛擬化服務的提供,像VMWare、Xen和KVM,國外做的比較好的像亞馬遜AWS,它把大量的服務器,包括公司和政府,的都撤掉,然后它自己建,像美國軍方都讓亞馬遜來架構云服務。另外,谷歌都有這樣的云。
在支持企業(yè)服務的時候,我們自己做私有化部署云也可以有一些技術,比如開源的OpenStack,可以做公有化部署也可以做私有化,也可以做混合云部署。隨著云技術發(fā)展,逐漸的就提出了做這樣一些容器,因為容器使用云的資源更少一些。大家也開始用原生云的方式做部署。這里面有一個軟件用的非常多,就是Kubernetes,大家都用它做相應的云的部署。
我們再看虛擬化和容器技術。虛擬化有很多種方式,這是一個很老的技術,現(xiàn)在用的越來越多。有宿主的,有混合式的。有的效率比較高,有的需要修改操作系統(tǒng)的內核。用這種方式,你看到一個機器部署在不同的物理機上,若有一個強大的機器,廠商可以把它分拆了賣,來做這樣的一些服務。
我們再來看,容器有一個好處,一次打包之后可以處處部署,可以做應用的隔離。容器和虛擬機的主要區(qū)別一個是啟動非?,虛擬機的速度會稍微慢一點。再一個它們占用的資源是不一樣的,容器占用很小。從性能的角度,容器會快一些,在一臺主機上可以部署幾十個或者上千個這樣的容器,而虛擬機部署量就比較少,F(xiàn)在國內的云廠商,像阿里云最近也在做這種容器的部署這樣的商業(yè)化的運作,不是單單只賣虛擬機。
當然容器有自己的一個問題,它的隔離性相對差一點,安全性比虛擬機差一點,這是它存在的一些問題,有研究在解決這個問題。
OpenStack是一個很龐大的軟件,它是對存儲、計算、網(wǎng)絡做一個虛擬化的處理,中間做各種管理,認證。它有控制節(jié)點、存儲節(jié)點組建分布式的部署。
虛擬化也可以做網(wǎng)絡的虛擬化,包括右邊的圖中,在單機上可以使用提供者網(wǎng)絡也可以自服務的網(wǎng)絡,用戶可以在里面定義自己網(wǎng)絡的模型,方便做網(wǎng)絡的隔離。
本圖是OpenStack高可用部署,我們可以用雙控或多控節(jié)點做可靠性部署。Kubernetes現(xiàn)在是非常熱的部署,很多人認為只需要學好它就可以了,因為大部分企業(yè)都會用它來做部署系統(tǒng)。它實際上是基于容器的自動化部署,調度和節(jié)點集群間擴展的開源平臺。
這是它的一些核心組件,還有API Server,所有的請求可以通過API Server進行調度,然后它做統(tǒng)一的認證、授權,你不需要我知道我的服務部署在什么地方,你只需要知道API Server就可以了。
這是它其他的模塊,比如它可以有計算的節(jié)點,有Pod網(wǎng)絡。
我們用自己的實例做一個云化部署的講解。這是我們部署的一個網(wǎng)絡,前面有前端,我們可以部署起來,有統(tǒng)一認證。中間是各種各樣的服務,我們都把它部署起來,控制管理,集群的計算,后面就是我們自己服務的模塊。所有這些都是彈性部署的,隨著用戶的要求我可以把它加載,做各種各樣的負載均衡或者做各種各樣的資源分配。
部署的時候有這么幾個流程要做,一個是要做一個統(tǒng)一的配置管理,再一個就是我們要用自己的服務容器化版本的管理,集中的發(fā)布流程,開發(fā)的時候我們就用Git來開發(fā),這個就是一個迭代的過程,滿足容器一次開發(fā),部署之后把它放到容器的鏡像里面,隨時可以調用它。亞馬遜自己做的就是容器鏡像可以放到一個類似于商店的地方,然后隨時啟動。
管理隨著它的應用可以動態(tài)擴展,應用變少的時候可以逐漸收縮,這樣可以減少計算量,除了節(jié)省費用之外它還有節(jié)能的要求,你不需要的機器可以把它關掉,尤其在大的云里面,節(jié)能也是非常重要的。
再一個是我們要做服務的狀態(tài)監(jiān)控。它有什么好處呢?我們可以做到負載均衡,我們可以在IP層,也可以在應用層做這樣的負載均衡,負載均衡的技術非常多,各種各樣的技術可以做各種配置,完成它的負載。
這里面一些相關的技術,比如Keepalived的方式,做故障的機制備份。然后我們可以做一些集群的發(fā)現(xiàn),比如我們可以通過服務代理的方式,我們可以通過其他的一些服務發(fā)現(xiàn)模式,包括kubeDNS發(fā)現(xiàn)。
在做資源監(jiān)控的時候,我們可以監(jiān)測資源的一些使用情況,然后你可以做業(yè)務的監(jiān)控。在做業(yè)務監(jiān)控的時候,我們可以發(fā)現(xiàn)它的單點故障,自動的切換,也可以有各種各樣的部署的方式,N+1、N+N等等的部署方式。
完成這些之后我們可以完成進程級的健康檢查,也可以做業(yè)務級的健康檢查,發(fā)現(xiàn)問題之后我們可以把POD重啟或者進行相應的切換。
前面我講了一些私有化部署的技術,我們的客戶可以有這樣一個團隊,把一些主要的業(yè)務用私有化的方式部署起來,用服務的方法開發(fā)集中管理,也可以借助公有云的方式,來完成這樣的一些操作。
這是我跟大家分享的內容,謝謝。”