DevOps運(yùn)動(dòng)將簡化網(wǎng)絡(luò)自動(dòng)化?
也許你從未聽說過DevOps運(yùn)動(dòng),但是如果你是一名網(wǎng)絡(luò)工程師,你有必要了解它。DevOps是“開發(fā)”和“運(yùn)營”的結(jié)合體,它是軟件開發(fā)人員推動(dòng)的一項(xiàng)IT行業(yè)運(yùn)動(dòng),旨在加強(qiáng)軟件開發(fā)團(tuán)隊(duì)與IT運(yùn)營團(tuán)隊(duì)之間的整合。
近年來,涌現(xiàn)出很多IT創(chuàng)新技術(shù),而當(dāng)涉及DevOps和網(wǎng)絡(luò)時(shí),云計(jì)算無疑是變革的催化劑?,F(xiàn)在系統(tǒng)管理和開發(fā)都能夠在云計(jì)算中進(jìn)行,在未來我們需要開發(fā)人員了解系統(tǒng)管理,同時(shí),系統(tǒng)管理員需要了解編程。
Citrix Systems公司產(chǎn)品管理主管Steve Shah將DevOps運(yùn)動(dòng)視為系統(tǒng)管理領(lǐng)域的新浪潮。從現(xiàn)在起的五年內(nèi),新系統(tǒng)管理員將編程API來取代管理物理基礎(chǔ)設(shè)施等老舊任務(wù)。而網(wǎng)絡(luò)也將會(huì)成為其中的一部分,網(wǎng)絡(luò)工程師將與DevOps團(tuán)隊(duì)開會(huì)詢問他們其基礎(chǔ)設(shè)施與這項(xiàng)新技術(shù)的兼容問題。
在下面的問與答中,Shah為我們提供了關(guān)于DevOps的一些背景知識(shí)。
為什么網(wǎng)絡(luò)專業(yè)人士需要了解DevOps運(yùn)動(dòng)?
Steve Shah: 讓我從我們?nèi)绾芜M(jìn)入DevOps系統(tǒng)說起吧。Citrix擁有一種特殊的反向代理服務(wù)器,其目的是讓W(xué)eb應(yīng)用程序變得更快。同時(shí),我們正在使用世界上最大的網(wǎng)站(作為平臺(tái)),即eBay和Amazon網(wǎng)絡(luò)服務(wù)(AWS)。
當(dāng)流量流入基于web的應(yīng)用程序時(shí),我們能夠?qū)α髁窟M(jìn)行很多優(yōu)化工作。這包括清理TCP/IP、加快進(jìn)程以改變應(yīng)用程序被訪問的方式等,這樣我們就可以進(jìn)行高質(zhì)量的訪問,并且能夠?yàn)閿?shù)據(jù)指定位置。例如,一個(gè)圖像可能會(huì)被轉(zhuǎn)移到服務(wù)器組,但如果是應(yīng)用程序的話,它將被發(fā)送到更好的服務(wù)器組。便宜地管理所有這些過程會(huì)導(dǎo)致網(wǎng)絡(luò)問題,更遑論財(cái)務(wù)管理問題。
DevOps運(yùn)動(dòng)從何而來?
Shah:早在2003-04年時(shí),當(dāng)面對(duì)數(shù)萬臺(tái)服務(wù)器時(shí),系統(tǒng)管理員開始尋找自動(dòng)化等辦法。他們會(huì)跟我們說,‘有人寫了一個(gè)可以改變配置的腳本。一些軟件工程師更改了我們用于自動(dòng)化的命令。’這讓他們不得不回過頭,更改命令,并作出調(diào)整。大約在2005年,我們開始開發(fā)用于基于SILK訪問的API,當(dāng)時(shí)XML風(fēng)靡一時(shí)。
Citrix提供了一個(gè)基于SILK的接口,人們喜歡這個(gè)接口,因?yàn)樗恢睕]有改變,連信息顯示方式都沒有改變,你仍然可以依賴于它的配置。從開發(fā)人員的角度來看,每個(gè)版本都更改配置是很麻煩的事情,所以我們的API很好地解決了這個(gè)問題。
其次,編程地訪問數(shù)據(jù)讓網(wǎng)絡(luò)自動(dòng)化更加整潔。這個(gè)獲得成功(成為DevOps的起源)的原因在于很多管理員早就踏入這個(gè)領(lǐng)域,并且他們都了解電纜、路由器和交換機(jī),他們還知道基本的編程。他們開始使用這些工具幫助他們解決網(wǎng)絡(luò)問題,因?yàn)楫?dāng)你讓有一百臺(tái)基礎(chǔ)設(shè)施設(shè)備的人只做一些網(wǎng)絡(luò)負(fù)載平衡的工作時(shí),他們會(huì)想要整合這些數(shù)據(jù)。
所有這些系統(tǒng)在某一特定時(shí)刻會(huì)做什么?服務(wù)器會(huì)如何反應(yīng)?他們會(huì)輪詢所有這些設(shè)備來獲取信息,然后他們會(huì)將這些信息整合,數(shù)據(jù)被寫入到被稱為PERL的API來實(shí)現(xiàn)一個(gè)邏輯進(jìn)程,然后提出解決問題的方案。這樣的話,管理人員就可以匯報(bào)說,“根據(jù)我所知,你需要根據(jù)這個(gè)來修改你的政策。我希望你根據(jù)這個(gè)新信息來重新分布網(wǎng)絡(luò)中的負(fù)載”。
這促成了這樣的想法,即我們不應(yīng)該使用一般的系統(tǒng)管理工具,我們應(yīng)該使用編程語言作為我們管理基礎(chǔ)設(shè)施的主要界面。這個(gè)想法創(chuàng)造了一種全新的系統(tǒng)管理。以前我們根據(jù)系統(tǒng)管理員對(duì)設(shè)備和基礎(chǔ)設(shè)施的技術(shù)來評(píng)估,而現(xiàn)在對(duì)于DevOps管理員,主要是看他的編程技巧及其理解基礎(chǔ)設(shè)施的能力。在某些情況下,理解基礎(chǔ)設(shè)施的能力僅次于編程能力。接著,DevOps運(yùn)動(dòng)的下一階段開始圍繞REST(具象狀態(tài)傳輸)接口的可用性。
為什么他們覺得有必要?jiǎng)?chuàng)造新接口?
Shah: 事實(shí)證明,越來越多的人開始使用自動(dòng)化,隨著他們逐漸深入,他們會(huì)發(fā)現(xiàn)雖然自動(dòng)化很強(qiáng)大,但是他們會(huì)得到一段結(jié)構(gòu)化數(shù)據(jù),這段簡單的數(shù)據(jù)會(huì)生成很多笨重的XML作為輸入和更多笨重的XML作為輸出。當(dāng)然,我們還有更聰明的辦法。Web開發(fā)人員開始使用JSON(JavaScript對(duì)象符號(hào)),因?yàn)镴avaScript編程者想要放入一個(gè)調(diào)用,然后獲取被瀏覽器的舊JavaScript引擎字面解析的數(shù)據(jù)塊。他們甚至不需要進(jìn)行額外的解析。這為服務(wù)器端的人們鋪平了道路,例如我的工程師,他們本來需要編寫接口并支持它們,現(xiàn)在他們可以使用URL輸入或者輸出來查看必需使用PERL的數(shù)據(jù)。簡化的URL更易于編寫,而且工具更加容易獲取,這實(shí)際擴(kuò)大了可用編程員的數(shù)量。這種轉(zhuǎn)變有利于促進(jìn)DevOps的發(fā)展。
網(wǎng)絡(luò)工程師在DevOps運(yùn)動(dòng)中將發(fā)揮什么作用?
Shah: 首先,即使之前對(duì)自動(dòng)化有很大興趣,但你仍需要熟悉腳本編寫,以及將基本任務(wù)自動(dòng)化。這種要求一直沒變,但沒有太多網(wǎng)絡(luò)工程師有這種能力。因此,你想要真正進(jìn)入DevOps的話,你需要了解它,然后利用它。
有了這個(gè)基礎(chǔ)后,接下來你想要做的是熟悉你的設(shè)備接口。很多公司提供的API與Citrix的一樣,我們已經(jīng)做了好多年了, API已經(jīng)很成熟并且文檔化,你只需要拿起文檔就可以開始使用。這比以往任何時(shí)候都更容易。
接下來,我們要做的工作不是如何添加配置、更改政策或者類似的事情,我需要知道我的端到端工作量,我需要讓兩個(gè)機(jī)架服務(wù)器運(yùn)行,這樣我就可以開始真正享受腳本的優(yōu)勢(shì)。我打開服務(wù)器,確保在流量進(jìn)入之前它會(huì)對(duì)我做出回應(yīng)。
完成之后,你可能會(huì)得到很多代碼,不過你可以將它們復(fù)制到數(shù)據(jù)中心,這樣編寫腳本的時(shí)間就與配置機(jī)架設(shè)備的時(shí)間相同?,F(xiàn)在,在我需要部署的10-20臺(tái)機(jī)架中,我選擇一個(gè)機(jī)架,重復(fù)配置,只需要幾分鐘。
網(wǎng)絡(luò)專業(yè)人員需要開發(fā)基礎(chǔ)設(shè)施 讓它們被這些腳本技術(shù)操縱嗎?
Shah: 答案是肯定的。重點(diǎn)在于細(xì)節(jié),如果你想要有基于角色的訪問,控制就變得非常重要。像很多在數(shù)據(jù)中心被定義的進(jìn)程一樣,你會(huì)寫下步驟,確保人們遵循這些步驟。你想要有專人確保工作的順利進(jìn)行,保證不會(huì)產(chǎn)生意想不到的負(fù)面影響。然后,當(dāng)你執(zhí)行的時(shí)候,你需要利用API,但在你甚至不知道如何使用API之前你要問:誰有訪問權(quán)限,他們能做什么?
你認(rèn)為網(wǎng)絡(luò)供應(yīng)商會(huì)推出支持DevOps運(yùn)動(dòng)的新產(chǎn)品進(jìn)入市場(chǎng)嗎?
Shah: 當(dāng)然,現(xiàn)在在網(wǎng)絡(luò)領(lǐng)域,最大的主題就是架構(gòu)網(wǎng)絡(luò)。而沿著這個(gè)主題走下去就是優(yōu)化路由器和交換機(jī)以減小復(fù)雜性,這樣你會(huì)有一個(gè)大的完整網(wǎng)絡(luò),盡管你仍然有很多與虛擬化相關(guān)的問題需要解決。
展望未來,你會(huì)看到一個(gè)被稱為OpenFlow的有趣技術(shù),這個(gè)技術(shù)是對(duì)所有進(jìn)入網(wǎng)絡(luò)的流量進(jìn)行編程控制。OpenFlow真正地將DevOps推到網(wǎng)絡(luò)管理的中心。搜索OpenFlow時(shí),你會(huì)發(fā)現(xiàn)所有與之相關(guān)的產(chǎn)品鏈接。它幫助你自動(dòng)化所有你會(huì)使用的腳本。
OpenFlow仍然是一個(gè)非常新興的技術(shù),整個(gè)架構(gòu)運(yùn)動(dòng)也仍然很新,但是它們是必然發(fā)展趨勢(shì),應(yīng)用程序交付控制器正過渡為架構(gòu)運(yùn)行不可或缺的部分,也是網(wǎng)絡(luò)隨著DevOps自動(dòng)化策略不斷發(fā)展的重要組成部分。