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