了解最新公司動態(tài)及行業(yè)資訊
隨著云測算的應用和普及,IaaS層、SaaS層、PaaS層服務也在不斷涌現(xiàn),國外云的人工運維還處于初級階段。阿里云資源編排(ROS)服務填補了這一空白。
ROS 的概念是“基礎設施即代碼”。一方面,它使用代碼思維的版本管理來記錄基礎設施的變化。另一方面,我們都知道,計算機世界使用代碼來實現(xiàn)各種系統(tǒng),是無所不能的。 ROS秉承這一理念,通過代碼實現(xiàn)人工運維,簡化了編譯代碼的復雜度。只需要通過模板描述多個云估算資源的依賴關系和配置即可。
可以理解服務器運維技術(shù),ROS的資源就像樂高游戲中的小積木,基于每個小資源構(gòu)建下層有無數(shù)種可能。
ROS目前支持12大云產(chǎn)品和阿里云40多種資源類型,未來還會繼續(xù)減少。模板雖然簡化了編碼的復雜度,但靈活的應用可以滿足各種人工運維的需要。
本系列分為四篇,通過不同的維度介紹幾個典型的應用場景。也希望這個系列能夠打通各類運維人員和開發(fā)者的腦洞,提升云端人工運維的能力。
本文為第一篇“介紹”。目前,云服務器是云估算領域使用最多的。因此,本文將重點介紹云服務器本身的一般需求,其他文章將介紹結(jié)合其他服務或工具的場景。
經(jīng)過多次用戶回訪,我們發(fā)現(xiàn)云服務器最常用的場景是根據(jù)云服務器的“當前狀態(tài)”創(chuàng)建1-N個云服務器。新創(chuàng)建的云服務器的系統(tǒng)盤和數(shù)據(jù)盤都是“此刻的狀態(tài)”,本文將根據(jù)這個場景來介紹如何通過ROS來實現(xiàn)。
我們以網(wǎng)站服務為例。通常運維工程師會在系統(tǒng)盤或數(shù)據(jù)盤中安裝一些應用程序,如:、、MySql、網(wǎng)站本身的數(shù)據(jù)/文件等。現(xiàn)有云服務器的系統(tǒng)或數(shù)據(jù)狀態(tài),可以將系統(tǒng)盤制作成自定義鏡像,將數(shù)據(jù)盤制作成快照,然后在訂購新的云服務器時選擇該自定義鏡像。鏡像、數(shù)據(jù)盤快照 選擇快照,并配置與原云服務器相同規(guī)則的安全組規(guī)則服務器運維技術(shù),即可根據(jù)原云服務器的“當前狀態(tài)”新建云服務器。
如果你只需要創(chuàng)建這個云服務器,不需要記錄歷史狀態(tài),上面的方法比較合適。但實際情況往往并非如此。云服務器可能創(chuàng)建/發(fā)布頻繁,或者生成鏡像的運營商不是訂購云服務器的同一個人。如果訂購選項選擇不正確,新購買的云服務器無法投入使用,需要按時發(fā)布,包月需要等到到期日,或者做數(shù)據(jù)遷移,勢必會帶來一定的損失。
另外,如果要記錄或跟蹤云服務器的歷史變化,如安全組配置變化、基礎鏡像等信息,需要單獨記錄。
面對以上問題,運維人員可以使用ROS模板作為交付物,在模板資源中定義資源的固定參數(shù),在模板參數(shù)中定義可變參數(shù),在運行時輸入實際參數(shù)。這樣,在頻繁創(chuàng)建云服務器時,只需要輸入可變參數(shù)中的內(nèi)容,如鏡像ID、快照ID,或者克隆原云服務器,或者沒有可變參數(shù),所有定義都說明在資源中。模板可根據(jù)實際業(yè)務需求靈活編譯。
但是可以將模板存儲在 中,并且可以像代碼管理一樣跟蹤模板的歷史,也可以基于模板創(chuàng)建適合企業(yè)的運維工具,實現(xiàn)人工運維。想法取代了“重復勞動”。
有關 ROS 模板的詳細解釋,請深入閱讀資源編排模板解釋。
以“網(wǎng)站服務運維”的場景為例,說說模板定義中的關鍵元素:
1.可以在模板參數(shù)中定義圖像和快照ID:
"Parameters": {
??? "ImageId": {
????? "Description": "鏡像文件ID, 表示啟動實例時選擇的鏡像資源",

????? "Type": "String"
??? },
??? "DiskName": {
????? "Type": "String"
?????},
??? "DiskSize": {
????? "Default": 40,
????? "Type": "Number"
??? },

??? "SnapshotId": {
????? "Type": "String"
??? }
}
2.定義云服務器的鏡像和快照資源。
圖片資源定義如下,參考參數(shù)中的圖片ID:
"ImageId": {
? "Ref": "ImageId"
}
快照資源定義如下,參考參數(shù)中的C盤名稱、大小、快照ID:
"DiskMappings": [
{
??? "DiskName": {
????? "Ref": "DiskName"
??? },
??? "Size": {
????? "Ref": "DiskSize"
??? },

??? "SnapshotId": {
????? "Ref": "SnapshotId"
??? }
? }
]
3. 指定要創(chuàng)建的云服務器的數(shù)量,最多100個,可以按時創(chuàng)建,也可以按月和按年創(chuàng)建。包月和包年的資源定義請參見一鍵創(chuàng)建包月和包年ECS實例。
4.其他如IO優(yōu)化、磁盤大小、安全組等,可根據(jù)實際情況自行定義。該場景的詳細示例可以參考官方示例指定鏡像和磁盤快照創(chuàng)建ECS。
本文以一個例子來說明通過自定義鏡像和快照生成新的云服務器。云服務器的運維遠不止這些。因此,我們將在【進階篇】中教大家“如何使用ROS實現(xiàn)彈性伸縮”。通過ROS能力,每個人都可以成為運維大神和架構(gòu)師。
即使模板的編譯簡化了代碼的復雜度,也會有一定的門檻。小編最后獻給大家學習和交流阿里云ROS的三個好去處: