本文是東京OpenStack Summit大會系列采訪的一部分,被采訪者是Ian Lewis,谷歌云平臺工程師,主要闡述了短生命周期容器的概念,作用和如何將它應(yīng)用到生產(chǎn)環(huán)境當(dāng)中。
原生云計算(Cloud-native computing)依賴于短生命周期的容器而不是固定的服務(wù)器。在短生命周期的容器中運(yùn)行應(yīng)用,解決了資源困乏的挑戰(zhàn),但同時也引入了需要新的實踐和工具去匹配這個動態(tài)環(huán)境的問題。谷歌的Ian Lewis將在這個月東京舉辦的OpenStack Summit上分享如何在短生命周期的容器中記錄并追蹤它們。
我們聯(lián)系了Ian,學(xué)習(xí)了DevOp團(tuán)隊是如何將短生命周期容器應(yīng)用到實踐中,如何采用新的架構(gòu)模型并且將應(yīng)用遷移到容器中,Ian提供了一些很好的點子,包括如何存儲數(shù)據(jù)、為什么服務(wù)發(fā)現(xiàn)是必要的、OpenStack開發(fā)了什么新的開源項目和如何幫助團(tuán)隊實現(xiàn)將應(yīng)用轉(zhuǎn)移到短生命周期的容器中。
Q: 為什么容器應(yīng)該是短生命周期的,短生命周期的容器可以解決什么問題?
使用容器一個最主要的好處是在集群中它們可以很容易的運(yùn)行和管理,而不用考慮它們在什么樣的實體機(jī)上運(yùn)行。這就允許你在運(yùn)維需要時,透明的將一個正在運(yùn)行的應(yīng)用遷移到不同的硬件上。這種遷移容器的靈活性意味著你不能在本地一臺特定的機(jī)器上存儲狀態(tài),因為移動的過程可能會在任何時候發(fā)生。你需要做到無論應(yīng)用在什么地方運(yùn)行都可以訪問到存儲狀態(tài)信息。
Q: 實踐中什么是短生命周期?
通常來說,短生命周期的意思是你的應(yīng)用不能在本地存儲數(shù)據(jù),數(shù)據(jù)包括從應(yīng)用數(shù)據(jù)到日志數(shù)據(jù)。你的應(yīng)用應(yīng)該可以重啟并工作在一個新的容器鏡像中。數(shù)據(jù)需要被存儲在容器外部,意味著存儲需要使用專門的服務(wù)。
Q: 可任意支配和短生命周期的容器聽起來很酷,只需要運(yùn)行、遷移和撤銷操作,但如果內(nèi)容已經(jīng)存儲在容器中并且一些端點(Endpoint)已經(jīng)被容器暴露,怎么辦呢,例如:會話狀態(tài)、API路徑和數(shù)據(jù)庫連接端點。那會話狀態(tài)和數(shù)據(jù)庫連接也消失了?
容器本身并不是管理狀態(tài)、API路徑和連接的銀彈。你仍然需要容器的編排管理系統(tǒng)和網(wǎng)絡(luò)來使它滿足高可用性。這也是為什么谷歌發(fā)明Kubernetes來解決這些問題的原因。
Q: 傳統(tǒng)的部署方式依賴于持久化服務(wù)器,那應(yīng)該如何重構(gòu)服務(wù)器和應(yīng)用來實現(xiàn)遷移型的容器呢?
我認(rèn)為有兩個比較大的變化。第一是在主機(jī)外和容器外存儲狀態(tài)。第二是應(yīng)用應(yīng)該有方法完成服務(wù)發(fā)現(xiàn)。容器遷移意味著需要一種方式,實現(xiàn)無論服務(wù)端實際在哪里運(yùn)行,客戶端都能連接到它。
Q: 你有什么好的架構(gòu)模型推薦嗎?
使用容器時,我會推薦面向服務(wù)的架構(gòu)。好處在于當(dāng)這個服務(wù)運(yùn)行得足夠小,并且能夠互相獨立地擴(kuò)展或收縮時,容器會非常容易被感知到。
Q: 我該如何創(chuàng)建一個短生命周期的容器環(huán)境而不是持久化的容器環(huán)境呢,什么基礎(chǔ)設(shè)施和開發(fā)框架可以使用來安全的部署、遷移和處理容器?
可以嘗試使用集群管理工具如Kubernetes(或者Container Engine)。Kubernetes是一個容器編排管理工具,它在集群的服務(wù)端調(diào)度容器,讓容器知道它們適合的運(yùn)行時間,這些時間可能不會和服務(wù)端在同一個時間點。使用Kubernetes也許是不錯的選擇。
Q: 容器如何在OpenStack中執(zhí)行?
容器編排管理引擎如Docker Swarm和Kubernetes將會在OpenStack中成為一等重要的資源,通過一個叫Magnum的API服務(wù)來實現(xiàn)。Magnum會創(chuàng)建服務(wù)端集群如同虛擬機(jī)安裝了一個集群管理工具,使用Magnum來操控容器就容易很多。
Q: 在OpenStack最新的發(fā)布版本和路徑中,有沒有關(guān)于容器管理編排和調(diào)度的?
關(guān)于這塊還有很多開發(fā)仍在進(jìn)行中,還有很多新的特性。Magnum會被包括在OpenStack Liberty中,在這個月發(fā)布。其他工具如Kolla,它用于在容器中部署OpenStack,還有通過Application Catalog服務(wù)使應(yīng)用開發(fā)更容易的Murano,同樣值得期待。