企業(yè)云計(jì)算部署四步走
云計(jì)算在經(jīng)過(guò)轟轟烈烈的發(fā)展后開(kāi)始落地,現(xiàn)階段已經(jīng)有一些企業(yè)開(kāi)始著手于部署的工作。在一項(xiàng)針對(duì)企業(yè)CIO部署云計(jì)算的調(diào)查中顯示,有19%的企業(yè)已經(jīng)在部署或應(yīng)用云計(jì)算,28%的企業(yè)考慮近期部署云計(jì)算,53%的企業(yè)目前尚無(wú)部署云計(jì)算的時(shí)間表。面對(duì)這樣的數(shù)據(jù),云計(jì)算的落地過(guò)程顯得并不是那么容易,有一系列問(wèn)題需要面對(duì)。對(duì)于企業(yè)來(lái)說(shuō),云部署的規(guī)模,云計(jì)算安全,云計(jì)算成本問(wèn)題都是需要面對(duì)的。
其實(shí)從簡(jiǎn)單意義上來(lái)說(shuō),云部署就是為了簡(jiǎn)化工作流程,使業(yè)務(wù)更加自動(dòng)化,在不需要更多人參與的情況下,實(shí)現(xiàn)更高的效率。這樣看來(lái),云部署似乎是一件革命性的大事件,帶來(lái)虛擬化,IaaS等技術(shù)一樣的現(xiàn)實(shí)意義。也就是這樣,很容易讓人產(chǎn)生誤導(dǎo),覺(jué)得企業(yè)對(duì)于云部署可以完全依賴標(biāo)準(zhǔn)化的流程。對(duì)于企業(yè)云部署,可以參考下面四個(gè)過(guò)程。
自動(dòng)化部署
IaaS的優(yōu)勢(shì)之一是能夠更加便捷的開(kāi)發(fā)、測(cè)試、部署軟件。傳統(tǒng)的開(kāi)發(fā)環(huán)境,開(kāi)發(fā)者為了節(jié)省資金,通常使用的服務(wù)器數(shù)量比應(yīng)用數(shù)量要低。除此之外,開(kāi)發(fā)環(huán)境的不可兼容性,給開(kāi)發(fā)者從一個(gè)項(xiàng)目轉(zhuǎn)到另外一個(gè)項(xiàng)目帶來(lái)了不便,重新搭建環(huán)境又非常費(fèi)時(shí)。在云中就可以解決這一問(wèn)題,開(kāi)發(fā)人員為項(xiàng)目的每個(gè)分支中的應(yīng)用分配相同的部署。這樣就能夠節(jié)省資金,在保存代碼代碼的同時(shí)結(jié)束資源部署不可用狀態(tài)。
程序的完全部署至少需要一臺(tái)應(yīng)用服務(wù)器,一個(gè)數(shù)據(jù)庫(kù)服務(wù)器或者緩存、輔助服務(wù)器。但是僅僅依靠開(kāi)發(fā)者編寫(xiě)的代碼控制部署,項(xiàng)目的防火墻或數(shù)據(jù)庫(kù)服務(wù)器附件等部分可能會(huì)變得非常緊張。但如果不部署,建立恰當(dāng)?shù)拈_(kāi)發(fā)環(huán)境時(shí)間會(huì)非常緊張且昂貴,即便這樣,開(kāi)發(fā)者也不愿意關(guān)閉好不容易搭建起來(lái)的環(huán)境。
不同程序版本的需求和分支的繁瑣性使環(huán)境部署變得非常復(fù)雜。系統(tǒng)管理員和開(kāi)發(fā)者管理虛擬化環(huán)境的傳統(tǒng)方式是先在標(biāo)準(zhǔn)映像里安裝相關(guān)軟件和代碼,然后再開(kāi)啟映像。這樣,在開(kāi)發(fā)者需要更新相關(guān)操作系統(tǒng)、數(shù)據(jù)庫(kù)軟件版本或改變服務(wù)器中代碼組織方式的時(shí)候,需要?jiǎng)?chuàng)建一個(gè)新的映像。這樣,眾多不同映像就讓自動(dòng)化化啟動(dòng)項(xiàng)目部署的任務(wù)變得非常困難。
部署解決方案可以用一臺(tái)普通的小型帶有操作系統(tǒng)的機(jī)器,這時(shí),需要?jiǎng)?chuàng)建應(yīng)用環(huán)境來(lái)啟動(dòng)所有有必要的服務(wù)器,安裝服務(wù)器中必要軟件,檢查不同代碼所對(duì)應(yīng)的相應(yīng)分支和版本,以確保所有服務(wù)器都可用。即,數(shù)據(jù)庫(kù)服務(wù)器首先啟動(dòng),然后開(kāi)始一系列測(cè)試確保可用性。最后應(yīng)用程序服務(wù)器啟動(dòng)并測(cè)試,測(cè)試不同服務(wù)器之間的交流活動(dòng)。測(cè)試過(guò)程中的所有失敗情況,都要記錄下來(lái)被重新測(cè)試,如果再次嘗試失敗的話會(huì)重新登錄,如果部署環(huán)境失敗的話為了節(jié)省成本將會(huì)停止所有服務(wù)器。
自動(dòng)化縮放
IaaS最普遍的一個(gè)應(yīng)用是 “cloudbursting”,這時(shí)有多于平常十倍的流量。部署架構(gòu)中,能夠定義以下情形:監(jiān)控本地工作負(fù)載和IaaS服務(wù)器,一旦負(fù)載超過(guò)一定的值,IaaS提供商會(huì)規(guī)定新的服務(wù)器。工作負(fù)載減小的時(shí)候?qū)?huì)終止IaaS服務(wù)器。“cloudbursting”情形比“autoscaling”要復(fù)雜的多。
首先,對(duì)于單一的云計(jì)算來(lái)說(shuō),自動(dòng)縮放是非常有限的,所以急于從私有云轉(zhuǎn)向IaaS是不可行的。其次,快速轉(zhuǎn)向IaaS可能需要復(fù)制/重新建立數(shù)據(jù)庫(kù)服務(wù)器,或者有IaaS云服務(wù)器。第三,現(xiàn)代網(wǎng)絡(luò)應(yīng)用程序通常需要配套的應(yīng)用服務(wù)器(高速緩存服務(wù)器和防火墻),創(chuàng)建和連接。最后,需要在集中的URL中分流所有流量,這樣在多個(gè)數(shù)據(jù)中心或者云中可以智能的平衡負(fù)載,選擇路由。解決這些復(fù)雜性問(wèn)題,不是簡(jiǎn)單的縮放是找到正確的“cloudbursting”。
數(shù)據(jù)庫(kù)服務(wù)器的自動(dòng)化恢復(fù)
在云中,數(shù)據(jù)庫(kù)服務(wù)器比應(yīng)用服務(wù)器有著更多的難題,只要確保應(yīng)用程序服務(wù)器充分被利用。但是數(shù)據(jù)庫(kù)服務(wù)器就是另外一回事了,應(yīng)用程序服務(wù)器要在數(shù)據(jù)庫(kù)服務(wù)器上讀寫(xiě),這樣就要確保數(shù)據(jù)庫(kù)服務(wù)器要一直可用并且聯(lián)網(wǎng)。數(shù)據(jù)庫(kù)服務(wù)器要連接網(wǎng)絡(luò),這樣備份他們就變得比較困難,為了搶數(shù)據(jù)快照中途總會(huì)有幾秒的終端。這樣一來(lái),好的云架構(gòu)和部署場(chǎng)景的配合就變得非常重要,也能夠使數(shù)據(jù)庫(kù)備份和災(zāi)難恢復(fù)變得簡(jiǎn)單。從體系架構(gòu)的角度來(lái)看,就需要有一個(gè)主數(shù)據(jù)庫(kù)服務(wù)器和一個(gè)從數(shù)據(jù)庫(kù)服務(wù)器。
部署數(shù)據(jù)庫(kù)服務(wù)器:?jiǎn)?dòng)主數(shù)據(jù)庫(kù)服務(wù)器,檢索主數(shù)據(jù)庫(kù)服務(wù)器的最新快照,將數(shù)據(jù)遷移到主數(shù)據(jù)庫(kù)服務(wù)器中,啟動(dòng)主數(shù)據(jù)庫(kù)服務(wù)器中的數(shù)據(jù)庫(kù)軟件,確保數(shù)據(jù)庫(kù)服務(wù)器正常工作,更新DNS。啟動(dòng)從服務(wù)器,檢索從服務(wù)器的最新快照,將數(shù)據(jù)遷移到從服務(wù)器中,連接到主服務(wù)器。確保復(fù)制功能和從服務(wù)器數(shù)據(jù)庫(kù)正常工作,更新DNS,從數(shù)據(jù)庫(kù)服務(wù)器的創(chuàng)建快照備份操作,確??煺諅浞莶僮髡_M(jìn)行。
轉(zhuǎn)移故障到從數(shù)據(jù)庫(kù)服務(wù)器:主數(shù)據(jù)庫(kù)服務(wù)器如果未能完成任務(wù),更新新主數(shù)據(jù)庫(kù)服務(wù)器的DNS,停止更新新主服務(wù)器的備份工作,啟動(dòng)新的從服務(wù)器,確保最新的從服務(wù)器快照,數(shù)據(jù)要遷移到從服務(wù)器中,復(fù)制新主機(jī)連接,驗(yàn)證復(fù)制工作,以及從屬數(shù)據(jù)庫(kù)服務(wù)器流程,更新DNS,為新主機(jī)建立快照備份功能,并驗(yàn)證其是否正常工作。
代碼自動(dòng)化部署
許多軟件工程部門(mén)已經(jīng)實(shí)行了一些整合工作,這樣可以大大提高自動(dòng)化驗(yàn)證代碼的質(zhì)量,每一行新的代碼都要經(jīng)個(gè)嚴(yán)格的測(cè)試。實(shí)際上,為應(yīng)用程序服務(wù)器部署新的代碼很少是自動(dòng)化的,并且非常費(fèi)時(shí)。但是部署自動(dòng)化代碼的環(huán)境非常容易并且非常高效。