評(píng)估云計(jì)算廠商的DevOps工具和模型
大多數(shù)云計(jì)算服務(wù)供應(yīng)商都不會(huì)認(rèn)為,最有利可圖的云計(jì)算戰(zhàn)略是錙銖必較地按小時(shí)出租基于云計(jì)算的CPU周期或平臺(tái)服務(wù)。軟件即服務(wù)(SaaS)可能是三大云計(jì)算業(yè)務(wù)模式中最引人注目和***盈利能力的,因?yàn)樗鼮榭蛻籼峁┝巳〈蟛糠旨夹g(shù)支持類型成本的功能,并可直接銷售給消費(fèi)者。
但是SaaS的成功并不是一帆風(fēng)順的。如果不使用DevOps工具和原則,那么建設(shè)和維護(hù)SaaS應(yīng)用程序的任務(wù)就將快速成為云計(jì)算供應(yīng)商們的運(yùn)營噩夢(mèng)。這些問題的***來源在于:為部署在云計(jì)算環(huán)境中的服務(wù)實(shí)現(xiàn)全生命周期過程的自動(dòng)化。
云計(jì)算要求新的配置策略
在云計(jì)算的早期發(fā)展階段,SaaS部署的很多工作都必須通過手工或開發(fā)內(nèi)部自動(dòng)化軟件來完成。對(duì)于運(yùn)營商們來說,其相關(guān)成本是相當(dāng)高昂的,同時(shí)也會(huì)造成他們的客戶有服務(wù)質(zhì)量不穩(wěn)定的使用體驗(yàn),但是一個(gè)新的策略是有可能扭轉(zhuǎn)這些趨勢(shì)的。
云計(jì)算供應(yīng)商在設(shè)計(jì)服務(wù)之后的傳統(tǒng)做法是開發(fā)他們自己的運(yùn)行工具,這意味著這些工具必須進(jìn)行定制以便于適應(yīng)每個(gè)應(yīng)用程序或應(yīng)用程序組件的要求。這完全是一個(gè)低效且拙劣的過程。更新這一模式要求供應(yīng)商在應(yīng)用程序開發(fā)過程中開發(fā)用于云計(jì)算開發(fā)的工具,把開發(fā)和運(yùn)行整合到同一個(gè)生命周期中。這一概念被稱為DevOps,這個(gè)術(shù)語的就是源于開發(fā)(Development)和運(yùn)營(Operation)。DevOps工具和原則并不僅限于云計(jì)算,但是似乎他們是在云計(jì)算時(shí)代中出現(xiàn)的。
所有DevOps應(yīng)用程序都是一個(gè)配置引擎和一組應(yīng)用程序編程接口(API)的組合,而API可連接應(yīng)用程序以管理接口,從而用于設(shè)置云計(jì)算服務(wù)、私有服務(wù)器以及網(wǎng)絡(luò)管理系統(tǒng)。應(yīng)用程序需求描述可驅(qū)動(dòng)配置引擎;在運(yùn)行時(shí),這個(gè)引擎可根據(jù)應(yīng)用程序描述來開發(fā)管理命令。這些命令可對(duì)應(yīng)用程序進(jìn)行設(shè)置,以便于應(yīng)用程序能夠正確執(zhí)行。
在一個(gè)成熟的DevOps環(huán)境中,開發(fā)人員可根據(jù)應(yīng)用程序來編制配置說明。但是,DevOps工具和方法現(xiàn)在正在被使用,它可允許開發(fā)人員對(duì)已開發(fā)完成的應(yīng)用程序生成配置說明。
DevOps工具:腳本程序與容器之爭
DevOps工具有兩種可能的模式:一種是純腳本程序模式,而另一種是容器模式。
基于腳本程序模式的DevOps工具將會(huì)讓Linux用戶感到非常熟悉,這是因?yàn)樗鼈冊(cè)试S保存命令,并使用可替換參數(shù)運(yùn)行。大多數(shù)的流行商用配置自動(dòng)化產(chǎn)品和管理自動(dòng)化產(chǎn)品都屬于這個(gè)基于腳本程序的模式。其中包括微軟公司的Windows Azure PowerShell CmdLets、Amazon Web Services的CloudFormation,以及一個(gè)開源Opscode開發(fā)項(xiàng)目Chef。
而容器模式則是創(chuàng)建應(yīng)用程序的一個(gè)抽象,我們可稱之為容器、對(duì)象。然后,配置引擎就處理這個(gè)容器以便于發(fā)布命令。在眾多基于容器的DevOps工具中,只有一個(gè)被廣泛采用:開源項(xiàng)目Canonical公司開發(fā)的Juju。使用Juju的容器模式可實(shí)現(xiàn)***的承諾。
Juju的好處
容器模式的優(yōu)勢(shì)在于它允許云計(jì)算供應(yīng)商建立一套描述應(yīng)用程序部署和生命周期的可重用控制,并在需要的時(shí)候運(yùn)行。
這一點(diǎn)遠(yuǎn)不同于基于腳本程序模式,后者要求供應(yīng)商把應(yīng)用程序需求(也被稱為特定域語言,DSL)翻譯成為腳本程序可替換的參數(shù)。這可能需要通過腳本程序跟蹤應(yīng)用程序的變化,以確保應(yīng)用程序仍然能夠正確運(yùn)行。
相比較而言,Juju的目標(biāo)在于使翻譯任務(wù)成為一個(gè)純粹的政策說明。這意味著云計(jì)算供應(yīng)商能夠潛在地賦予用戶一個(gè)進(jìn)行定制化和設(shè)置的角色,對(duì)于供應(yīng)商來說,這使得應(yīng)用程序描述的維護(hù)工作更為輕松了。
Juju是開源的這一事實(shí)也使它適合于希望定制化工具以支持他們自己服務(wù)計(jì)劃的云計(jì)算供應(yīng)商,但是還有大量其他的開源可定制DevOps工具和項(xiàng)目正對(duì)Juju的地位提出挑戰(zhàn)。其中具有代表性的有 Dell開發(fā)的Crowbar、OpenStack的 Donabe項(xiàng)目,以及Canonical的Ubuntu Orchestra。雖然開源增強(qiáng)總是一個(gè)選擇,但是云計(jì)算供應(yīng)商最終將從那些綜合性DevOps工具中受益,這些工具能夠提供正確的功能,關(guān)注于開發(fā)腳本程序和容器。
使用DevOps工具銷售SaaS
云計(jì)算供應(yīng)商應(yīng)當(dāng)從在開發(fā)應(yīng)用程序時(shí)就為應(yīng)用程序設(shè)置DevOps配置需求入手,開始實(shí)施他們的DevOps戰(zhàn)略。這通常涉及所有的配置規(guī)則,其中包括軟件實(shí)例、數(shù)據(jù)庫實(shí)例以及網(wǎng)絡(luò)尋址的多個(gè)設(shè)置規(guī)則。不同DevOps工具的功能在這些領(lǐng)域中都是不同的,因此針對(duì)項(xiàng)目功能和工作計(jì)劃審查應(yīng)用程序需求就非常重要,這樣可確保所有一切都在朝著正確的方向發(fā)展。
雖然最近開發(fā)的云計(jì)算應(yīng)用程序都沒有遵循DevOps模式,但是那也有助于驗(yàn)證評(píng)估DevOps工具能夠提供創(chuàng)作模板能力(即描述開發(fā)過程以外的部署工作),并可與現(xiàn)有應(yīng)用程序整合。
雖然DevOps工具的***價(jià)值在于開發(fā)在云計(jì)算供應(yīng)商自有基礎(chǔ)設(shè)施內(nèi)運(yùn)行的SaaS應(yīng)用程序,但是它還被應(yīng)用于幫助客戶遷移應(yīng)用程序至基礎(chǔ)設(shè)施即服務(wù)(IaaS)或平臺(tái)即服務(wù)(PaaS),并且它還具有在云計(jì)算聯(lián)盟中整合多個(gè)供應(yīng)商的潛力。因?yàn)椋羞@些應(yīng)用程序容錯(cuò)性較低、人工支持的潛在成本較高,所以在云計(jì)算中廣泛使用DevOps將可以大大提升云計(jì)算盈利能力和客戶滿意度。在一個(gè)競爭日益激烈的云計(jì)算市場中,這絕對(duì)是至關(guān)重要的。




















