DevOps這個(gè)詞在幾年前從歐美流入中國(guó),主要反映了開(kāi)發(fā)與運(yùn)維兩類專業(yè)人士之間的矛盾與磨合。從單詞的角度分析,DevOps是開(kāi)發(fā)(Development)和運(yùn)維(Operations)合并在一起的縮寫,形成了一個(gè)新概念,可以理解為是一組過(guò)程、方法與系統(tǒng)的統(tǒng)稱,用于促進(jìn)開(kāi)發(fā)(應(yīng)用程序、軟件工程)、技術(shù)運(yùn)營(yíng)以及質(zhì)量保障(QA)部門之間的溝通、協(xié)作與整合工作。
DevOps這種概念的出現(xiàn)打破了之前很多公司的開(kāi)發(fā)同運(yùn)維分離與固化的矛盾,相反DevOps讓使用產(chǎn)品的人有機(jī)會(huì)在開(kāi)發(fā)過(guò)程中,而不是在開(kāi)發(fā)完全結(jié)束后,對(duì)應(yīng)用程序的構(gòu)建發(fā)表意見(jiàn),強(qiáng)調(diào)開(kāi)發(fā)與運(yùn)維的溝通與協(xié)作能力。
DevOps的出現(xiàn)是由于軟件行業(yè)日益清晰地認(rèn)識(shí)到,為了按時(shí)交付軟件產(chǎn)品和服務(wù),開(kāi)發(fā)和運(yùn)營(yíng)工作必須緊密合作。近年來(lái),DevOps已然走入很多企業(yè)的IT技術(shù)生產(chǎn)中,如今有哪些備受喜愛(ài)的DevOps工具呢?
GIT 在開(kāi)源的潮流中,GIT作為一個(gè)免費(fèi)的開(kāi)源分布式版本控制系統(tǒng),用以有效、高速的處理從很小到非常大的項(xiàng)目版本管理。與GitHub一樣,GIT因?yàn)槊赓M(fèi)、team集成、代碼質(zhì)量分析和項(xiàng)目平臺(tái)演示等特點(diǎn)已經(jīng)獲得了很多開(kāi)發(fā)運(yùn)維人員的喜愛(ài)。
Chef Chef與Puppet十分相似,都屬于服務(wù)器的構(gòu)成管理工具,均有配置中心服務(wù)器,基于ruby語(yǔ)言,也都擁有自己的擴(kuò)展方式。同時(shí),Chef擁有三種管理模式,Chef-Solo、Client-Server和Opscode Platform。
簡(jiǎn)單來(lái)說(shuō),Chef 是一個(gè)系統(tǒng)集成框架,可以為整個(gè)架構(gòu)提供配置管理功能。賓夕法尼亞大學(xué)沃頓商學(xué)院的技術(shù)總監(jiān)Sanjay Modi在Chef網(wǎng)站的個(gè)案分析上說(shuō):“Chef也將為組織內(nèi)的協(xié)作和工作效率提高帶來(lái)更多的可能性?!?/p>
Puppet Puppet屬于集中配置管理系統(tǒng),適用平臺(tái)包括Linux、Unix、windows,使用自有的puppet描述語(yǔ)言,可管理配置文件、用戶、cron任務(wù)、軟件包以及系統(tǒng)服務(wù)等,其中Puppet Enterprise專門管理基礎(chǔ)設(shè)施即代碼(IAC)。
斯坦福大學(xué)的Bess Sadler在Puppet網(wǎng)站的視頻推薦中表示:“斯坦福大學(xué)采用Puppet的開(kāi)源版本來(lái)解決開(kāi)發(fā)新型數(shù)字圖書館服務(wù)和保持這些服務(wù)高性能安全運(yùn)行之間的矛盾?!?/p>
Docker 近年來(lái)在軟件領(lǐng)域,除了開(kāi)源這個(gè)概念外,容器技術(shù)也絕對(duì)稱得上是熱門,在所有容器中,又不得不提Docker。Docker最初屬于dotCloud,開(kāi)源后獲得了社區(qū)的歡迎以及開(kāi)發(fā)者的喜愛(ài),應(yīng)該說(shuō)Docker是一個(gè)開(kāi)源的應(yīng)用容器引擎,成為容器市場(chǎng)的領(lǐng)導(dǎo)者。
可以說(shuō)Docker是一個(gè)重新定義了程序開(kāi)發(fā)測(cè)試、交付和部署過(guò)程的開(kāi)放平臺(tái),可以簡(jiǎn)稱為“構(gòu)建一次,到處運(yùn)行”,這就是Docker提出的“Build once,Run anywhere”。如今Docker逐漸受到市場(chǎng)的喜愛(ài),在部分企業(yè)中已經(jīng)開(kāi)始取代虛擬機(jī),運(yùn)用于生產(chǎn)場(chǎng)景中。
Splunk Splunk是一個(gè)運(yùn)維智能平臺(tái),屬于機(jī)器數(shù)據(jù)的引擎。Splunk通過(guò)監(jiān)控和分析客戶的點(diǎn)擊流、交易數(shù)據(jù)、信息安全事件和網(wǎng)絡(luò)活動(dòng),幫助獲得機(jī)器生成數(shù)據(jù)中富有價(jià)值的運(yùn)維智能,它使開(kāi)發(fā)者能夠直接看到生產(chǎn)環(huán)境中的數(shù)據(jù),無(wú)需訪問(wèn)生產(chǎn)機(jī)器,協(xié)助用戶進(jìn)行DevOps過(guò)程,包括持續(xù)的集成和資源配置。