5月15日外電頭條:系統(tǒng)管理員與開發(fā)者界限日漸模糊
原創(chuàng)【51CTO.com快譯】我的弟弟在大學(xué)里學(xué)的是計算機科學(xué),因此,他理所當(dāng)然應(yīng)該成為一個程序員,或者說應(yīng)用程序開發(fā)者,這也幾乎是選擇計算機科學(xué)的最重要原因。在這一點上,大學(xué)里其他的IT重點專業(yè)學(xué)科也應(yīng)該一樣,比如網(wǎng)絡(luò)、安全和運算等等。
但有趣的是,他在大學(xué)里一直在努力的做一名系統(tǒng)管理員,走出校園后的***份工作也是做一名系統(tǒng)管理員。到現(xiàn)在,他兩方面的工作都做過了一些。這和我自己的經(jīng)驗也有些相似,我經(jīng)常做著“雙份工作”,有時是系統(tǒng)管理員,有時是程序開發(fā)者,具體做什么要看我在哪里工作,還有工作的具體需要。
看看我和我兄弟的經(jīng)驗,雖然管理員和程序開發(fā)者顯然起著不同的作用,但它們兩個有著太多的相似之處,也許遠(yuǎn)遠(yuǎn)超出大家的想象。畢竟,如果你是一名程序開發(fā)者,那么公司里的其他人只是不明白你在做什么。但如果你是系統(tǒng)或網(wǎng)絡(luò)管理員,那么他們不僅不明白你在做什么,也不會了解在剛剛過去的一天中發(fā)生了多少復(fù)雜的事情。企業(yè)的煙囪結(jié)構(gòu)經(jīng)常會造成“我們”和“他們”之間的對立。
讓我們仔細(xì)看看傳統(tǒng)的“開發(fā)者”的定義:開發(fā)者指設(shè)計軟件和編寫程序的個人或企業(yè)。軟件開發(fā)包括設(shè)計用戶界面,搭建程序架構(gòu),以及編寫源代碼。
但是,任何一個做過半分鐘以上的網(wǎng)絡(luò)或系統(tǒng)管理員的人在看到這個定義時,都會不由的懷疑這個“開發(fā)者”是不是在說他自己。
穿越靈魂的腳本
腳本語言在很早以前就誕生了并且一直存在著,有Ruby、PHP、ASP和JSP。命令行腳本語言也比比皆是,從PowerShell到TCL,再到Perl和Python。在51CTO.com推出的09年4月編程語言排行榜中,前十名的榜單內(nèi),腳本語言占據(jù)半壁江山。腳本語言和其他開發(fā)語言比如C/C++和Java的***區(qū)別是,它們很少有一個明確的“entry point”(切入點)。而且因為沒有“entry point”,它們也就沒有“main”函數(shù)來啟動程序,它們一般會從上而下的編寫并執(zhí)行。
但也有許多相似之處。不管要不要定義函數(shù),怎樣使用條件語句(if…then, for, while),或者怎樣處理變量(by reference還是by value),在系統(tǒng)管理員和程序開發(fā)者的日常開發(fā)中,腳本語言之間的相似性遠(yuǎn)遠(yuǎn)大于它們之間的分歧。無論你采用什么腳本語言來編程,都需要了解它的語法、函數(shù)、變量、結(jié)構(gòu)和運算順序。
網(wǎng)絡(luò)和系統(tǒng)管理員們廣泛的使用腳本語言來自動執(zhí)行任務(wù),執(zhí)行特定的“on-demand”函數(shù),甚至用它們來創(chuàng)建清晰的日報表或周報表。51CTO.com此前曾刊出的Linux系統(tǒng)管理員成長經(jīng)驗一文中介紹,“從命令開始從基礎(chǔ)開始”被作者列為一條重要經(jīng)驗,而學(xué)習(xí)Shell腳本以及GCC、VI等編譯器也成為學(xué)習(xí)路線圖的重要一環(huán)。一位網(wǎng)絡(luò)或系統(tǒng)管理員和一位應(yīng)用程序開發(fā)者所做的工作之間的唯一差別僅僅在于最終用戶,還有把重點放在哪里。網(wǎng)絡(luò)和系統(tǒng)管理員的目標(biāo)是創(chuàng)建一個應(yīng)用程序,完成某項運算任務(wù),而應(yīng)用程序開發(fā)者的重點是創(chuàng)建一個應(yīng)用程序,完成某個業(yè)務(wù)流程。
他們都必須親自設(shè)計解決方案并編寫程序,當(dāng)然,我說的程序包括腳本。他們需要設(shè)計用戶界面——即使只是命令行,他們還要編寫程序的源代碼。網(wǎng)絡(luò)和系統(tǒng)管理員所做的一切幾乎和應(yīng)用程序開發(fā)者所做的一模一樣。管理員只是幸運地同時做了最終用戶和程序開發(fā)者,他們一般不用與業(yè)務(wù)分析師或?qū)嶋H客戶打交道。
而應(yīng)用程序開發(fā)者可能需要了解并操作系統(tǒng)配置,以便開發(fā)和測試他們的應(yīng)用,他們一般不用理會網(wǎng)絡(luò)硬件或復(fù)雜的底層架構(gòu),而把這些煩心事留給系統(tǒng)管理員。但是,隨著Infrastructure 2.0的到來,以及對底層架構(gòu)與應(yīng)用程序之間合作的需求越來越強烈,開發(fā)者和管理員之間的分界線越發(fā)變得模糊了。
網(wǎng)絡(luò)作為服務(wù)帶來的影響
“網(wǎng)絡(luò)作為服務(wù)”(network as a service)已經(jīng)開始影響并將不停的改變開發(fā)者和管理員所扮演的角色。它提供了服務(wù)功能的API和腳本功能的API,通過這些API,應(yīng)用和網(wǎng)絡(luò)的底層架構(gòu)可以進行控制、配置和管理,這也會進一步推動系統(tǒng)和網(wǎng)絡(luò)管理員們向著更加面向應(yīng)用的與業(yè)務(wù)流程型的腳本編程方向前進。
如果我們做出這樣的假設(shè),就是已經(jīng)習(xí)慣于在不同環(huán)境下使用各種腳本來完成復(fù)雜任務(wù)的管理員們將會很快改而使用更集成更協(xié)作的“應(yīng)用程序”,這個跳躍并不會太大。同樣的,我們也可以為開發(fā)者們做出類似的假設(shè),認(rèn)為他們將會更好的去理解網(wǎng)絡(luò)和系統(tǒng),以便在一個動態(tài)的底層架構(gòu)上實施他們的應(yīng)用。因為來自應(yīng)用的反饋是動態(tài)底層架構(gòu)(比如內(nèi)部云架構(gòu))成功的關(guān)鍵,而精致并且堅實的底層架構(gòu)也是保證這些應(yīng)用的可用性和性能達(dá)到業(yè)務(wù)預(yù)期的關(guān)鍵。為了實現(xiàn)這一點,管理員們可能需要為自己開啟一個IDE(集成開發(fā)環(huán)境),并拿起傳統(tǒng)的“開發(fā)者”們的工具,來應(yīng)對Infrastructure 2.0的需要。不斷擴展的靈活的Eclipse環(huán)境已經(jīng)用于各種編程語言、管理控制臺和圖形環(huán)境。管理員們可以使用它,把它安裝在自己的臺式機上,它會很容易讓他們適應(yīng)環(huán)境,完成開發(fā)任務(wù)。
雖然從表面上說這些任務(wù)可以移交給開發(fā)者,但并沒有完整的理由來推給他們,因為網(wǎng)絡(luò)和系統(tǒng)管理員很可能有能力并且已經(jīng)掌握了所需的“編程技術(shù)”,更何況如今的底層架構(gòu)越來越需要多方面的合作,來提供必要的力量實現(xiàn)更加高效靈活的數(shù)據(jù)中心。
在自己的領(lǐng)域里,管理員們一直在充當(dāng)開發(fā)者的角色,他們只是不一定需要這個名稱而已。而Infrastructure 2.0和內(nèi)部云架構(gòu)的應(yīng)用將幾乎肯定會讓管理員們把他們的秘密技能拿出來,他們會進一步被確認(rèn)為開發(fā)者,其實他們早已經(jīng)是了。
【51CTO.com譯稿,非經(jīng)授權(quán)請勿轉(zhuǎn)載。合作站點轉(zhuǎn)載請注明原文譯者和出處為51CTO.com,且不得修改原文內(nèi)容。】
原文:Are admins developers too?
作者:Lori MacVittie
【編輯推薦】

















