一步一個腳印 CIO可以這樣邁向云計算
您已經為企業應用云計算完全做好準備了嗎?也許還沒用。那么,CIO需要在云計算實施前夜在技術上做好哪些方面的準備工作呢?很多CIO都有這樣的疑惑。
應用云計算,對于大企業來說或許“先私后公”是一個能夠保護已有投資,并且能夠保證業務和技術連續性和平滑過渡的方式。企業在向云計算轉變的時候是一個系統工程,它涉及到各個方面的影響。云計算對于企業不是一個要不要的問題,相反它是一個什么時候以及如何開始著手的問題。
不同企業會根據自身業務的具體情況來決定向云計算開拔的步伐。不過,這里,編者必須提出企業向云計算邁進的幾個準備工作,而做足了準備工作,云計算的推進和實施可以順利過關。
虛擬化投資和技術儲備
虛擬化是一個與真實相對應的理念。在計算機領域,虛擬化主要是指把一部分計算機資源抽象或者分離出來。這種抽象和分離可以設計計算機系統的各個方面,比如服務器硬件、存儲、操作系統、網絡、應用程序和屏幕展示等。所謂抽象是指把多個分散的資源表示成為一個,比如計算機集群、RAID等就是很好的例子。很顯然,這樣抽象式虛擬化的好處就是簡化系統。而所謂分離就是把資源之間的耦合性降低或者把一個資源分隔成為多個資源來使用。
目前,業界討論最多的虛擬化是指分離式的虛擬化,其體現出來的本質就是解耦。這種方式能夠進行動態靈活的并且按照業務進行按需資源分配是IT服務的目標。虛擬化技術的出現讓我們向這個目標邁進了一大步。
云計算是一種把IT作為服務提供的計算方式,而虛擬化是云計算服務構建的一種核心技術。當然,虛擬化對于不同類型的云計算服務的作用也不盡相同,但是對于大部分基礎設施即服務的云計算來說,虛擬化是其不不或缺的一種實現技術。
如前所述,企業自己構建云計算平臺的一種相對簡單的方式就是采用基礎設施即服務的方式改造現有硬件平臺。進行云計算的基礎設置改造會涉及數據中心大范圍的變更,因此對那些已經有大量投資的企業來說,要在短時間內做這樣的修改還是比較困難的。但是,鑒于虛擬化在企業私有云構建中的作用,企業需要從現在開始增加對虛擬化的投資,并開始一些虛擬化項目來使用它。
企業采用虛擬化可以為企業解決或者緩解一些非常直接的問題。例如,通過服務器的整合來減低數據中心的能耗問題,緩解數據中心的空間增長壓力等問題。無論是在開發測試環境還是在實際的生產環境中,虛擬化技術都可以給企業帶來不同的利益。
例如,微軟的基礎基礎設施成熟度模型把企業的虛擬化應用分為四個不同的階段,其中包括基礎階段、標準化階段、高級階段和最終的動態階段。當然,這些不同階段對虛擬化技術的應用復雜度也各有不同的要求。#p#
以下是美國一家金融信息服務公司采用虛擬化技術的例子。該公司把數據中心的650臺舊物理服務器整合成為22臺新物理服務器,每天新物理服務器上運行30個虛擬機。這個虛擬項目使得這些服務器省電將近90%,并且該公司能夠在幾天之內測試和上線一個新的產品。
企業對于虛擬化技術的應用一方面可以解決企業數據中心目前直接面臨的問題,另一方面通過逐步的虛擬化應用可以理解基礎設施即服務類型云計算的一些特點并為今后整個數據中心的云計算改造做好準備。
標準化和可擴展的硬件設備
基于開放標準的硬件設備在過去十幾年取得了長足的進展。以服務器為例,基于X86體系結構的服務器無論是性能、可靠性等方面都可以與傳統高端服務器進行競爭。這些標準的服務器有著良好的性價比,再加上有很多不同的供應商可以選擇,因此企業已經越來越多地采用這些基于X86的服務器。
根據IDC每個季度的全球服務器市場跟蹤信息,可以清楚地看到服務器市場的發展趨勢。以下是不同服務器類型按照服務器數量的市場份額情況。
如果回想一下服務器市場最初的情況,它的發展方向就非常清楚了。現在越來越多的可靠性要求可以通過軟件方式來提供,而不像以前完全依賴于硬件層的可靠性從而迫使用戶使用專用的服務器硬件。這種通過標準化硬件架構來構建平臺的方式在互聯網企業中最為普遍,目前規模大一點的互聯網企業無一例外都主要采用這種方式構建,而且越來越多的傳統企業在逐漸增加它們的應用。
建議企業采用標準化硬件的另外一個關鍵原因是目前主流的服務器虛擬化技術主要是基于X86體系結構的服務器。雖然,服務器虛擬化技術是在主機上最先出現,并逐漸應用到小型機上,但是真正大規模普及還是在基于X86服務器上。我們知道云計算需要構建一個資源池并通過共享式的方式來提高資源利用率,一個理想的狀況試這些資源池主要基于同構的硬件設備來構建。企業采用標準的硬件設備將有利于將來實現一個大的共享資源池,而不是一個個不兼容的硬件孤島。#p#
統一虛擬和硬件環境的管理
虛擬化技術的確能夠在許多方面為企業帶來好處,但是同時它也在某種程度上為企業的資源管理帶來了一些挑戰。企業部署虛擬化技術之后,底層硬件與上面運行的軟件之間的聯系就被削弱。采用虛擬化技術可以幫助企業降低物理系統的數量,但是它并不會減少所擁有系統的數量。相反,由于新建一個系統環境的難度和成本大大降低,整個IT環境中的虛擬系統數量可能會急劇上升。
如果沒有一個良好的管控,虛擬化會給基礎設施的管理帶來混亂。軟硬件之間的聯系切斷,服務器環境變得更不固定、更復雜。這就是為什么會有IT管理專家指出如果沒有良好的管理,虛擬化帶來的便利將被抵消。虛擬化可以優化諸如服務配置和補丁分發等這樣的流程,但也同時增加了IT專業人員可能沒有想到的復雜化。
例如,以前主要是為操作系統和應用程序打補丁,但是使用虛擬化之后不僅這些工仍必須進行,而且現在用戶還必須對可能存在安全漏洞的虛擬機管理層打補丁。
讓管理工作變得更具有挑戰性的是現在虛擬化中還有一個在線動態遷移的技術。這種技術讓虛擬機可以在正常工作的情況下動態地從一臺物理機遷移到另外一臺物理機。這種遷移可以在人工操作下進行,也可以在事先設定條件下根據運行環境的變化自動進行。
因此,要隨時定位一臺虛擬機具體運行在哪一臺物理服務器上變得不是那么容易。這個管理方案不僅可以管理原來的硬件環境,還可以統一管理虛擬化環境,為管理人員提供一個單一試圖,用于顯示物理和虛擬IT基礎設施對其所支持服務的影響。這種統一的管理方法能夠打通虛擬環境與物理環境的聯系,構建端到端的服務模型,提供出色的基礎設施可視化。一個統一的管理能夠幫助企業減少故障排除時間并縮短平均修復用時,能夠極大降低IT成本,同時幫助企業提高IT服務質量和可預測性。#p#
優化IT服務流程
隨著IT技術的進步和商業化分工的細化,我們將要看到的是一種新型的安全互聯的,而且能夠及時響應的“實時企業”。企業內部就像有神經網絡系統一樣,數據能夠通暢流動,并能夠在事件發生的第一時間快速做出響應和決策。這是一個非常美好的愿景,但同時也對企業的IT服務提出了更高的要求。IT服務流程需要與未來這種“實時企業”的業務特點相匹配。
實際上現在已經有幾個新的技術或服務方式對企業IT服務流程帶來了一些變化。首先是面向服務架構的實施。企業采用SOA的思想方式來構建IT系統,會給IT服務與企業業務之間的結合方式帶來一些變化,IT響應業務變化的能力也會得到提升。
其次是虛擬化技術的采用。如果企業采用了虛擬化技術,那么企業提供基礎設施資源的流程就會發生變化。我們以服務器虛擬化為例來說明這個問題。傳統物理機的提供方式需要每次都進行一個實際使用這些物理資源的時候一般都需要一個比較長的服務流程。但是,如果采用虛擬化方式,用戶申請一臺虛擬機的流程顯然要更為簡便。最后一個相關的因素是服務的外包。
如果企業采用了一些外包服務,那么也會給企業的服務流程帶來很大的變化。如果企業采用了一些外包服務,那么也給企業的服務流程帶來很大的變化。企業可以把一些非核心的IT業務內容外包給第三方,但是企業IT部門仍是服務的主要戰略制定和質量控制方。企業IT也需要能夠對相對平滑地把第三方的服務于企業自己的 服務進行集成。
云計算給企業帶來了一種新型IT服務模型,因此它將進一步推動企業IT服務流程的變革。企業可以利用云計算變革的契機,對IT服務流程進行一次優化和調整。比如,許多企業的不同部門都有自己的數據中心,或者說雖然有統一的數據中心但是系統歸各個部門自己的IT隊伍負責保護。
云計算的一個關鍵理念是資源的共享和整合,因此企業IT部門可以借助云計算戰略推動企業范圍內的資源整合,數據中心的運維由IT部門負責,而企業的各個業務部門作為數據中心的客戶。這種資源整合的調整有利于將來推動云計算項目的實施。#p#
調整應用架構
在傳統的Web應用設計中,我們在架構上一般采用基于多層架構的設計,在Web層中會大量使用負載均衡等技術。一般的處理方式都是在應用程序設計好之后,在應用部署的過程中事先把環境配置好,而應用程序在運行過程中配置都是不變的。但是,隨著云計算時代的到來,我們開始面對一些新的挑戰,相應地應用程序設計方式方法也隨著發生一些變化。
由于云計算平臺能夠提供高可擴展性的彈性資源分配,因此許多人會認為只要構建了一個云計算平臺,自己的應用程序部署在上面就能夠實現隨著負載的變化自動分配計算資源了,而且也會變得更加可靠。這是我們經常會遇到的一個誤解。如果應用程序在傳統物理服務器環境的運行過程中存在一些可靠性問題,那么最好不要把云計算平臺當成是一個靈丹妙藥。
如果需要構建一個可以靈活擴展的應用系統,那么我們不僅需要底層基礎設施能夠進行彈性擴展,上面部署的應用程序也需要能夠支持水平擴展。需要指出的是并不是所有應用程序都是可以擴展的,比如云計算系統構建中一個常見的擴展瓶頸就是管系統型數據庫這類應用平臺的性能,例如,更快的處理器、更多的內存等,但是由于關系型數據庫本身的特點,要水平方向進行擴展卻是比較困難的。
因此,如果企業在基礎設施層面實現了或將要實現動態資源擴展能力,那么需要在應用架構設計上來保證其上的應用也可以實現相應的水平擴展能力。只有當底層平臺和應用程序都能夠動態擴展時,整個應用系統才能夠整個實現動態可擴展的能力。
無論是功能上還是性能上云計算對應用的靈活性都提出了更高的要求。這就要求應用程序在設計的時候要考慮松耦合的架構。耦合度與靈活性一般都是相反的,即耦合度越高靈活性越低,耦合度越低靈活性越高。因此,在做企業應用架構設計的時候,一般要追求松耦合的設計。
例如,在做Web應用設計的時候,對于用戶狀態的保持就需要盡量采用無狀態的方式來設計,這樣應用程序的水平擴展能力會比較好。企業對應用架構上的調整和準備可以幫助企業今后更為順利地把應用程序遷移到云計算平臺上去。