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