私有云建設一般分為評估,規劃設計,實施,運維這幾個階段,本系列文章將會從這幾個方面給出IBM PMC團隊在這些方面的一些經驗,當然這些經驗并不是適合于每個客戶,在具體項目中,我們要增加,裁剪這些經驗,靈活的運用到項目中去。
本文本系列的第一篇,在私有云建設之初,我們要評估客戶現有IT基礎環境和應用環境,為以后的規劃設計打下基礎。
術語
工作負載:英文稱為workload,指的是運行在各種中間件里面,或者獨立運行的應用
用例:usecase,指的是從最終用戶的角度來看,系統應該具有的一些功能,每個形成一定業務意義的功能構成了一個獨立的用例
產出物:artifact,指的是工作的成果,包括文檔,代碼,配置文件等等,產出物是對用戶的系統建設有意義的。
項目發起人:sponsor,指的是在項目的過程中,有拍板決定一些重要事情的人,這些人一般都是中高層人員。
架構決定:architecture decision,在項目中的一些重要架構上面的決策,這些決策會記錄下來,供后面設計和實施的人參考,這些決策也要和客戶一起審閱,因為架構中通常會有一些折中,這些折衷要客戶知曉并同意。
云生應用:cloud native application,指的是特地為運行在云中而設計的應用,這些應用一般都有分布式,無狀態等特點。
評估的意義
提到評估,大家可能有些疑惑,云不是應該動態擴展嗎?我們直接把應用遷移到云上就可以了,我們為什么還需要評估現有的工作負載?要回答這個問題要從公有云和私有云的不同談起。公有云和私有云的不同點很多,這里只是列舉的一些影響到我們決策的點:
私有云中工作負載基本上是明確的,公有云中有各種各種的工作負載 私有云和公有云有一個非常大的不同點:私有云的工作負載(workload)是確定的,也就是說我們在建設私有云的時候,通常都應該知道我們將要建設的云環境中需要多少的計算能力,需要多少內存,需要多大的存儲,網絡方面有什么要求等。通過了解當前的工作負載,我們可以對將要建成的私有云環境有個基本準確的估計。 而公有云無法了解這些,一般來說是建設一個通用的云。或者就只能提供一些CPU密集型,存儲IOPS密集型等比較寬泛的分類。通過評估,我們可以根據工作負載的需要選擇合適的資源來承載。
私有云的規模相對公有云較少 私有云一般從規模來說要比公有云的規模小的多,在中國,比較小的公有云的話也至少有1000+的物理服務器,至少兩個Region,而私有云的話一般來說在50到200臺服務器之間。在這個較少規模的私有云中,我們在服務器,網絡,存儲上的決策就明顯與大規模的公有云有所區別了。規模上的限制導致我們的私有云雖然也有彈性擴展能力,但是這種彈性擴展只能在一定的范圍之內。 通過評估,我們可以了解客戶彈性擴展的需求,建設一個適合客戶需要的私有云平臺。
評估的方法
訪談
訪談是一個古老但是很有效的手段,通過訪談我們可以了解到客戶的IT的現狀。但是要做到一個有效的訪談,還是有很多工作在里面的,首先我們要確定訪談對象:
IT運維人員,他們對現有系統的基礎架構最為了解
項目的發起者,通過他們了解這個項目的業務價值和業務目標,業務價值和業務目標是項目的原則性的東西,其他一切架構決定都不能違反這個原則
通過事前發放一些調查表可以提高效率,調查表要精心設計,不要包括廢話以免被調查對象產生厭惡情緒。訪談之前,我們一般會向客戶發放兩個調查表:
工作負載調查表 工作負載調查表主要是確定客戶現有的環境中有多少應用,這些應用的類型,是否有IO密集型應用等等
數據中心調查表 數據中心調查表主要檢查客戶的數據中心的供電,網絡的狀況,檢查是否滿足私有云的部署要求
通過客戶反饋的調查表,我們基本上對客戶的數據中心有一個大概的了解,遇到不清晰的問題記錄下來,在訪談的時候和客戶確認。
工具收集
在國內外的私有云項目中,容量規劃工具還是用得一般。因為各種各樣的原因,國內的私有云項目還較少使用,常見的容量規劃工具如下:
CiRBA商業軟件
VMware Capacity Planner免費,但是需要VMware的授權才能使用
容量規劃工具可以幫助企業識別整合的機會,使他們能夠縮減過度配置虛擬機,節省了資金。 工具規劃工具一般會包括兩部分:agent和中央服務器。Agent會部署在客戶現有的生產環境中,會在客戶的生產環境運行24周,這些agent消耗的資源都比較少,不會影響客戶現有的生產環境的使用,它們每隔一段時間就會將收集到數據送到中央的服務器,收集的數據包括:
CPU利用率
內存利用率
磁盤IOPS,磁盤使用大小
每一個進程對資源的利用率,包括Agent自己的
利用這些收集的數據,容量規劃工具可以得出一些關于基礎架構的推薦的配置。
當然,工具是死的,這些推薦的配置還是需要有經驗的架構師來做檢查和提高的,不過這些工具確實提供了給架構師科學決策的工具。
評估的內容
業務價值
業務價值是指客戶想要通過建設這個私有云,能夠直接給業務帶來哪些利益,不同的項目想獲得的利益不盡相同,下面是一部分例子:
更加敏捷的獲得資源
在資源緊缺的時候,能夠迅速擴張資源
節省運維成本
。。。。
這是最重要,但是也是最容易被忽略的部分。因為這一部分不涉及到具體的一些工作。但是我們上面提到了,業務價值是指導私有云建設的最高原則,我們在做具體設計的時候,要是要遇到很多的決策決定,這些架構決定一般會提供幾個選項,這些選項有的時候是沖突的,如何決定選擇哪個?我們第一要看的就是客戶的業務價值了。
現有的工作流
現有工作流是現在客戶環境中存在的工作流,企業中的業務流程是多種多樣的,我們只需識別出和我們私有云建設相關的工作流,一般來說,這些工作流包括:
IT資源申請,審批,通知用戶流程
將創建的云資源(包括VM,網絡,存儲)加入企業現有CMDB的流程
將創建的云資源加入企業現有IT基礎架構的過程,例如將VM的名字加入DNS等等
以上這些流程根據企業的大小不一,會有不同的變化,這些變化還體現在集成的方式不一樣,一些公司已經建成自己的Service Desk,他們往往傾向于利用原有的Service Desk來調用私有云的API,另外一些公司本來沒有Service Desk這個平臺,他們就想利用私有云平臺來做這個工作。 這個工作項的產出物是用例(UseCase),后文中會給出用例的示例。
工作負載
工作負載,從不同的角度看有不同的分類,一般可以分成兩類:
傳統負載
云生(Cloud native)負載
傳統負載又可以分成:
web應用負載
數據庫應用負載
dev、test負載
雖然負載的類型很多,但是我們如果注意到下面三個方面,那么對負載的評估也就達到要求了:
1. 總的負載對計算,存儲,網絡能力的要求
2. 特別高的IOPS的負載
3. 負載的高可用性的要求 對于這三點的收集,有利于我們后面做出正確的設計決定。
計算&存儲
一般來說,對工作負載的評估完成之后,也就完成了企業對計算和存儲能力要求的評估了。當然,存儲還是要注意一下備份和災備的需求。
網絡
和計算&存儲相比,網絡還是稍微有些特殊的,網絡評估除了要看工作負載對網絡:
吞吐量的要求,也就是帶寬的要求,這個帶寬包括
外網帶寬
內部網絡應用之間的帶寬
存儲網絡的帶寬(如果是用IP網絡的話)
網絡的延遲
還需要看:
網絡的安全隔離的要求
網絡的訪問方式
網絡的其他要求
系統集成點
認證授權的集成 企業一般有自己的認證授權系統,是否需要和這些認證授權系統集成?
外部應用系統集成,包括:
資產管理系統
ticket系統
Service Desk,例如Service Now等,這個在上文已經說過了
這個評估的產出物是系統上下文圖(System Context Diagram),通過這個圖我們可以看到客戶的系統和外界集成狀況,也可以清楚的知道項目的范圍。具體示例可以參見下文。
非功能性需求
安全
防火墻,IDS,漏洞掃描
災備
為了保證業務連續性,私有云云必須有相應的災備環境。災備這個話題在私有云中有點艱難。架構師很難給出很好的選擇。桌面云需要災備的內容包括數據庫,用戶基礎鏡像,用戶數據和檔案,各模塊配置信息等。我們需要了解用戶現有的災備環境,包括:
現有災備的流程:包括災備涉及哪些人員,災備的 RTO 和 RPO,災備發生時應有的操作等
使用的軟硬件:確定備份使用的軟硬件是什么,以及這些軟硬是否有多余的容量來容納桌面云項目的備份
備份所需的帶寬:確定現有備份網絡帶寬以及桌面云項目所需帶寬
備份的項目:評估現在數據庫是怎么備份的,文件是怎么備份的,配置項是怎么備份的,把桌面云項目拆成不同的項進行備份
備份頻率:備份的頻率是實時的 / 每小時 / 每天 / 每星期 / 每月的,把桌面云中不同的備份項歸應到不同的備份頻率中
評估的產出物
用例
下面是系統用例的一個例子,這個例子說明了云管理員創建一個新的客戶需要的信息,創建好了的后續流程,以及與之相關的業務流程。
虛機申請與使用功能權限:客戶管理員,用戶功能描述 云管理平臺提供虛機申請的自服務功能。
SystemContex
下面是一個系統上下文圖實例,通過這個示例我們可以看到,云管理平臺需要和哪些使用者以及外部系統做集成:
非功能性需求
非功能性的需求包括安全,性能,高可用性等等方面,在評估階段通常是列出系統要求達到的目標,具體如何達到這個目標,可以在設計階段體現,下面是一個非功能性需求的例子:
管理平臺的高可用性
描述云管理平臺要求提供高可用性,整體可用性要求達到99.95%