對云計算開發(fā)運維的一些思考

云計算提供了不同層次的開箱即用服務(wù):在IaaS層提供了定制或標準化的硬件配置及操作系統(tǒng)的開箱即用;在PaaS層提供了開發(fā)部署環(huán)境和中間件平臺等平臺級軟件需求的一站式滿足;在SaaS層可以為中小企業(yè)或個人用戶提供標準化的軟件服務(wù)。
  云計算目前仍然是IT領(lǐng)域里最熱門的名詞之一,在各種技術(shù)論壇或者研討會上,都能聽到大家在討論云,參與對象包括硬件廠商、軟件廠商、大型企業(yè)用戶。云計算對IT的發(fā)展帶來了新的契機:“云”具備快速伸縮的特性,能夠通過彈性部署滿足用戶的不同需求,由于主機和存儲設(shè)備采用虛擬化技術(shù),通過平臺、軟件與服務(wù)方式進行共享,使IT環(huán)境的快速部署成為可能,通過合理資源分配與按需付費模式,提升了資源使用效率,并降低了企業(yè)運維成本。
 
  本文不關(guān)注云計算的具體實現(xiàn)技術(shù),只從云計算涉及的開發(fā)運維、標準規(guī)范及不確定因素等方面提出個人的一些思考,希望能夠給云計算的各方推動者提供一點不同角度的見解。
 
 
  1、云計算的優(yōu)勢
 
  云計算首先解決了應(yīng)用部署中的基礎(chǔ)設(shè)施和平臺環(huán)境的準備難題,使得軟件開發(fā)人員不再為硬件的維護和集成耗費精力。云計算的部署充分發(fā)揮了計算能力的集約化效應(yīng),由于充分利用了硬件虛擬技術(shù),在一臺主機上可以虛擬出數(shù)倍于物理主機能力的設(shè)備。由于云計算平臺對不同操作系統(tǒng)主機鏡像的同時支持,使得不同版本的操作系統(tǒng)可以和平共存,改變了傳統(tǒng)應(yīng)用隨操作系統(tǒng)升級被動升級的局面。
 
  云計算提供了不同層次的開箱即用服務(wù):在IaaS層提供了定制或標準化的硬件配置及操作系統(tǒng)的開箱即用;在PaaS層提供了開發(fā)部署環(huán)境和中間件平臺等平臺級軟件需求的一站式滿足;在SaaS層可以為中小企業(yè)或個人用戶提供標準化的軟件服務(wù)。
 
  云計算技術(shù)的出現(xiàn)和應(yīng)用,與社會化專業(yè)分工有異曲同工之妙。在硬件設(shè)備、中間件平臺、應(yīng)用獨立部署自成一體的年代,軟件系統(tǒng)類似于人類社會中早期的建筑公司,要從機械設(shè)備購置開始到雇傭技術(shù)工人來完成一項建筑工程,是麻雀雖小五臟俱全。建筑公司受設(shè)備規(guī)模和技術(shù)工人的限制,制約了公司的發(fā)展。在任務(wù)需求增大和減少時,設(shè)備和人員都是公司面臨的難題,需要的時候不趁手,用不著的時候還要養(yǎng)著?;A(chǔ)設(shè)備服務(wù)公司的出現(xiàn)(類似于云計算中的IaaS提供商),解決了設(shè)備的難題,可以提供包括倉庫出租、機械設(shè)備出租等硬件租賃服務(wù)。在基礎(chǔ)服務(wù)的基礎(chǔ)上,衍生出了中間服務(wù)商,提供水暖安裝、隧道開挖、物料運輸?shù)葘I(yè)服務(wù),服務(wù)商把人力和設(shè)備進行了包裝(相當于云計算中的PaaS提供商),提供專注于某項專門技能的專業(yè)服務(wù)。建筑公司則主要關(guān)注組織管理和施工協(xié)調(diào)以及前端尋找市場的能力。
 
  從社會學(xué)角度看,專業(yè)化社會分工必然會增加管理成本,這在云計算實踐中也是同樣的。同時專業(yè)化社會分工又為服務(wù)租用方帶來節(jié)約成本、增強市場應(yīng)變能力的好處,為服務(wù)提供商帶來因規(guī)?;图谢?yīng)降低單位服務(wù)成本而產(chǎn)生的差額利益,對雙方而言是獲得了雙贏的機會。而在云計算中,由于主機及存儲資源在虛擬能力和實際占用資源的差異,軟件和中間服務(wù)軟件等虛擬資產(chǎn)的可復(fù)制性,服務(wù)提供商具備了更靈活的利潤空間,從而促進服務(wù)價格的進一步下調(diào),吸引更多的服務(wù)使用者,這也正是各方積極投身云計算實踐的重要驅(qū)動力。
 
  2、云計算對應(yīng)用開發(fā)的挑戰(zhàn)
 
  云計算是互聯(lián)網(wǎng)信息技術(shù)發(fā)展和信息服務(wù)需求共同作用下的產(chǎn)物,傳統(tǒng)的軟件開發(fā)模式并不能直接適用于云計算環(huán)境下的應(yīng)用開發(fā)。在IaaS層面的云計算環(huán)境中,由于平臺提供的是標準化的可水平擴展的虛擬機供給能力,因此當應(yīng)用需求的主機計算能力高于虛擬機能力時,開發(fā)人員需要對應(yīng)用程序進行解耦,分解成多個可以在分離的虛擬機上運行的細粒度應(yīng)用,通過調(diào)度程序來協(xié)調(diào)各個程序間的任務(wù)。
 
  在PaaS層面的云計算框架中,平臺提供了進一步的抽象,通過對云應(yīng)用進行分類,總結(jié)出實踐中的共性問題,抽象出特定的模式和解決方案。提供了包括負載均衡、緩存、數(shù)據(jù)存取、消息通信等基礎(chǔ)功能服務(wù)。
 
  由于PaaS平臺提供商在平臺軟件和基礎(chǔ)服務(wù)的實現(xiàn)上具有多樣性,提供的基礎(chǔ)服務(wù)面向不同的特定需求,所針對的應(yīng)用類型、客戶定位和實現(xiàn)方式上也存在差異,這給最終開發(fā)者的應(yīng)用帶來運行在不同PaaS平臺上時必須面臨的兼容性問題。
 
  當在PaaS平臺上開發(fā)云計算應(yīng)用時,需要遵循平臺層提供的一系列開發(fā)規(guī)范。由于平臺層提供了應(yīng)用部署、應(yīng)用性能管理、使用計量和計費等基礎(chǔ)服務(wù),因此在應(yīng)用開發(fā)規(guī)范中約定在應(yīng)用中必須掛載一系列的測試樁。由于平臺的許多配置是不允許應(yīng)用開發(fā)者隨意進行調(diào)整的,這將帶來調(diào)優(yōu)方面的影響。如果應(yīng)用還需要把自己的一些功能暴露為服務(wù),供其他應(yīng)用所用,應(yīng)用開發(fā)者還需要考慮服務(wù)注冊等問題。此外,云應(yīng)用本身還要考慮集成來自不同云服務(wù)提供商所提供的功能或服務(wù)。
 
  事實上,采用云計算對開發(fā)的需求并沒有降低,因為最終實現(xiàn)的功能在最終用戶看來是一致的。所以云計算的采用,對于企業(yè)的前端業(yè)務(wù)需求部門,沒有明顯驅(qū)動力,需求部門不會鼓勵I(lǐng)T部門去采用云計算,也不會承擔云計算帶來的風(fēng)險。因此企業(yè)的IT部門必須想辦法把采用云計算可能帶來的風(fēng)險以及未來持續(xù)發(fā)展中的風(fēng)險消滅在部門內(nèi)部。
 
  前面談到的都是云計算對開發(fā)帶來的新要求,換個角度來看,云計算也為應(yīng)用開發(fā)帶來一些積極的變化。在傳統(tǒng)的應(yīng)用開發(fā)中,由于系統(tǒng)軟件、中間件平臺、數(shù)據(jù)庫和開發(fā)環(huán)境的不斷升級,已有程序的運行環(huán)境不斷受到挑戰(zhàn),每次環(huán)境升級帶來的程序兼容性檢查都是一個夢魘,系統(tǒng)的不兼容性常常是系統(tǒng)運行所面臨的最大問題。而在云計算環(huán)境下,用戶對操作系統(tǒng)等運行環(huán)境擁有了自主選擇權(quán),用戶完全可以將原有應(yīng)用運行在安全的沙箱環(huán)境內(nèi)。
 
  云計算的技術(shù)的引入,也為大規(guī)模應(yīng)用傳承開發(fā)的未來指明了方向。計算機應(yīng)用軟件在企業(yè)的大規(guī)模使用自20世紀90年代開始,經(jīng)歷的幾乎都是應(yīng)用開發(fā)、部署、遷移、升級、換廠商、再開發(fā)部署這樣的輪回。如果看各大企業(yè)的軟件資產(chǎn),除了在用的系統(tǒng)外,多年前的軟件投資已經(jīng)幾乎見不到任何蹤影。早期的軟件變革通常是由于流程未固化,需求變化等原因造成頻繁升級,本質(zhì)上軟件的基本功能是適應(yīng)生產(chǎn)需求,而從企業(yè)的長期發(fā)展來看,雖然局部的流程調(diào)整是存在的,但大部分基本功能還是穩(wěn)定的。因此對企業(yè)應(yīng)用來說,基本功能在長期也是應(yīng)該穩(wěn)定的。在采用云計算技術(shù)后,設(shè)備的維護問題,軟件運行環(huán)境兼容性問題都已經(jīng)得到解決,虛擬主機隔離了不同操作系統(tǒng)版本的影響,按需分配資源的方式已經(jīng)足以允許業(yè)務(wù)量很低的應(yīng)用長期處在運行狀態(tài)。因此將企業(yè)應(yīng)用中最基礎(chǔ)的,長期穩(wěn)定的功能固化下來,作為服務(wù)長期運行應(yīng)該被列為開發(fā)的首要考量內(nèi)容。
 
  應(yīng)用云化的核心思想是如何使大型應(yīng)用平衡分配到許多獨立的物理或虛擬機上進行計算的技術(shù)。通過這種運用,可以降低不同規(guī)模的應(yīng)用對主機能力的差異化需求,通過橫向增加標準設(shè)備的技術(shù),滿足從小到大不同規(guī)模的應(yīng)用對處理能力的需求。應(yīng)用云化帶來的是應(yīng)用管理的復(fù)雜性上升,這和日常工作是一樣的,當一個全能型技術(shù)高手在做一件事情時,任務(wù)的分解調(diào)度和協(xié)調(diào)都由他自我合理安排,而如果要把同樣的工作分配給多個僅具備一項或兩項能力的初級技術(shù)人員來完成時,就需要考慮任務(wù)的銜接,每個人工作的合理性,兩個人工作交接的完整性,還需要及時進行檢查,防止某些環(huán)節(jié)產(chǎn)生紕漏。這些都是云計算應(yīng)用開發(fā)必須面臨的挑戰(zhàn)。
 
 
  3、云計算對運維的影響
 
  云計算在企業(yè)用戶中的實踐首先面對的是對運維的挑戰(zhàn)。在采用云計算技術(shù)之前,運維人員會認為一切盡在掌控之中,可以如數(shù)家珍地講述系統(tǒng)A運行在第X排Y列機柜里的Z主機上,設(shè)備已經(jīng)納入備份管理,最近設(shè)備運行正常,安全上只允許B網(wǎng)段的主機訪問。而采用云計算技術(shù)后,運維人員很難講清楚A系統(tǒng)具體運行在哪個主機上,因為全部采用了設(shè)備虛擬化管理,A系統(tǒng)在不同時刻可能處在不同主機上。運維人員需要改變靜態(tài)管理的固有思維,主動迎接動態(tài)管理的挑戰(zhàn)。
 
  引入了云計算之后,運維的重點將不僅僅是原來管理的設(shè)備運行正常,網(wǎng)絡(luò)暢通,還將關(guān)注資源的主動供給、自動配置、可持續(xù)性、可追蹤的實時配置管理。
 
  在傳統(tǒng)的運維管理中,為了保證可靠性和伸縮性,不僅需要在部署階段進行支持,而且還需要隨時監(jiān)視應(yīng)用的運行狀態(tài),判斷是否存在節(jié)點失效或者負載過高等情況,一旦發(fā)生異常,管理員根據(jù)事先制定好的工作流程來啟動備用的服務(wù)器,運行相應(yīng)的管理腳本來對新的服務(wù)器進行配置和初始化等。而在云計算環(huán)境中運維人員一部分負責物理設(shè)備運轉(zhuǎn),一部分負責應(yīng)用相關(guān)的監(jiān)控和管理。運維人員定位系統(tǒng)故障不再只是依靠傳統(tǒng)的網(wǎng)管手段,需要更深入地通過云計算管理平臺以及虛擬設(shè)備管理平臺,來分析系統(tǒng)的運行效率和故障原因。
 
  在云計算環(huán)境中,虛擬機虛擬鏡像磁盤文件把基本操作系統(tǒng)、客戶需要使用的應(yīng)用及運行應(yīng)用所需的中間件等組件一并打包在內(nèi),免去了傳統(tǒng)環(huán)境下為用戶進行復(fù)雜安裝配置的過程,做到開箱即用,實際上成為了企業(yè)的虛擬資產(chǎn)。這和傳統(tǒng)環(huán)境下需要保留主機運行環(huán)境,保存安裝軟件不同,虛擬機鏡像文件隨時加載意味著新的虛擬設(shè)備可以在需要時快速進入生產(chǎn)狀態(tài),特別是一些測試開發(fā)環(huán)境的準備,可以通過原始的虛擬鏡像快速恢復(fù)到用戶所需要的狀態(tài)。
 
  在云計算實踐之前,數(shù)據(jù)中心的絕大多數(shù)應(yīng)用服務(wù)都部署在物理機上,隨著物理設(shè)備逐漸老化,性能逐漸下降,所運行的應(yīng)用軟件的穩(wěn)定性和可靠性都受到了極大的影響。要把服務(wù)遷移到新的系統(tǒng)上會面臨很大的風(fēng)險:一方面是因為開發(fā)人員的流動性,當需要遷移服務(wù)時,難以找到原開發(fā)團隊的相關(guān)人員;另一方面是軟件對新運行環(huán)境的兼容性問題,軟件所依賴的特定接口或者函數(shù)庫在新的系統(tǒng)里并不一定兼容。引入云計算技術(shù)以后,人們采用新的虛擬化的輔助技術(shù)(P2V)能夠把應(yīng)用服務(wù)與操作系統(tǒng)一起從物理服務(wù)器上遷移到虛擬環(huán)境中,管理員不再需要觸及與系統(tǒng)緊密整合的應(yīng)用的相關(guān)代碼,大大提高了系統(tǒng)遷移的可行性和成功率。遷移后的服務(wù)器,不僅可在一個統(tǒng)一的界面中進行管理,而且借助虛擬機化管理軟件,在這些服務(wù)器因故障停機時,可以自動切換到網(wǎng)絡(luò)中其他可替代的虛擬服務(wù)器中,從而達到不中斷業(yè)務(wù)的目的。
 
  4、企業(yè)在標準規(guī)范中的作用
 
  云計算技術(shù)包含硬件設(shè)備,虛擬化平臺,數(shù)據(jù)庫中間件等基礎(chǔ)應(yīng)用,應(yīng)用軟件開發(fā)等多方面內(nèi)容,涉及的規(guī)范也比較多。而業(yè)界目前在云計算標準規(guī)范的分布呈正三角形,底層標準相對成熟,通過驅(qū)動程序或操作系統(tǒng)的兼容性,使得設(shè)備有較高的可互換性。越往上層,靠近應(yīng)用層方面,除了虛擬機層面有開放虛擬化格式(OVF)標準外,其他方面幾乎沒有成型的標準。企業(yè)用戶花費精力參與底層標準的制定不僅沒有精力,而且也沒有話語權(quán),因此只要對底層規(guī)范有所了解,能夠?qū)ζ髽I(yè)的技術(shù)選型提供參考即可。
 
  對企業(yè)而言,最重要的是在應(yīng)用層面的標準制定中,起到主導(dǎo)者的作用,把握規(guī)范的重點。從企業(yè)信息化的角度來看,對企業(yè)未來信息化建設(shè)影響最大的有2個層面的規(guī)范,一個是WebService中應(yīng)用層面的服務(wù),因為從服務(wù)注冊、接口語意和調(diào)用邏輯等框架性方面,可以找到相應(yīng)的國際規(guī)范,各應(yīng)用提供商都可以遵循,但是接口內(nèi)容層面的規(guī)范,是必須依賴企業(yè)內(nèi)部制定的自有規(guī)范。另外一個是云計算應(yīng)用管理平臺方面的規(guī)范標準,云計算建設(shè)不是3~5年的建設(shè)和存續(xù)周期,企業(yè)一旦開始采用云計算技術(shù)來整合整個IT系統(tǒng),就意味著企業(yè)信息化的整體方向已經(jīng)確定,而且這個方向在較長時間內(nèi)是難以改變的。因此在應(yīng)用管理平臺的規(guī)范上應(yīng)盡量發(fā)揮引導(dǎo)作用,從選型之初就必須堅持可替換和可遷移的原則,要求云應(yīng)用管理平臺提供的基礎(chǔ)能力對外服務(wù)接口是標準化的,而且是可被其他管理平臺所兼容的。
 
  云計算要打造的是企業(yè)的計算航母,一旦依賴在某個管理系統(tǒng)上,對企業(yè)未來的影響是致命的,軟件廠商可以因為市場原因逐步淡出,而企業(yè)的信息化卻是必須長久存在并發(fā)展的。因此企業(yè)應(yīng)根據(jù)管理平臺的標準進行嚴格約束,要求所有應(yīng)用開發(fā)商所使用的標準服務(wù)必須是企業(yè)所明示,經(jīng)過兼容性測試的服務(wù)。
 
  采用云計算技術(shù)后,應(yīng)用開發(fā)對標準規(guī)范的執(zhí)行必須提高到一個戰(zhàn)略層面,因為參與構(gòu)成云計算環(huán)境的不再是一個獨立的應(yīng)用,而是由很多服務(wù)共同完成的復(fù)雜任務(wù)。因此標準規(guī)范將是參與各方的開發(fā)契約,任何不遵從契約的開發(fā)行為都是在挑戰(zhàn)應(yīng)用管理的權(quán)威性。而規(guī)范的嚴肅性和延續(xù)性,也將改變軟件廠商長期在應(yīng)用開發(fā)中側(cè)重功能,不注重接口標準的開發(fā)陋習(xí)。云計算的服務(wù)接口面向不特定的服務(wù)請求者,特別是一些重要的服務(wù),面向許多服務(wù)請求者,不恰當?shù)姆?wù)接口變更,可能對業(yè)務(wù)造成難以評估的影響。最穩(wěn)妥的方案是建立一個兼容服務(wù)提供者,同時提供新老服務(wù)接口的服務(wù),然后通過服務(wù)尋址重定位功能,完成新老服務(wù)的替換。
 
  5、云計算的不確定因素
 
  目前主流的商用中間件平臺通常采用的是按照用戶許可或者主機CPU內(nèi)核進行銷售的,采用云計算平臺后,無論從IaaS虛擬機還是PaaS的預(yù)裝中間件,都帶來一個許可計算的棘手問題。中間件廠商不愿意看到自己的利潤被虛擬化攤薄,云計算服務(wù)提供商不愿意支付多余的許可費用。在這種情況下,面向公眾提供云計算的服務(wù)商,通常采用的是開源的中間件平臺或自有的中間件平臺,鮮有采用商用中間件平臺的,但對于大中型企業(yè)用戶而言,對平臺軟件的選用則是一個難以抉擇的事情。因此能否培養(yǎng)企業(yè)自有的,在云計算中間件平臺軟件演進過程中具有自主開發(fā)能力的技術(shù)隊伍是影響企業(yè)云計算持續(xù)發(fā)展的一個不確定因素之一。
THEEND

最新評論(評論僅代表用戶觀點)

更多
暫無評論