推進網(wǎng)站建設(shè)協(xié)作
- 編輯:admin -開源軟件在推進Web開發(fā)人員和運維人員之間的協(xié)作方面發(fā)揮著重要作用。許多組織開始越來越多地采用開源軟件,或者先從零開發(fā)軟件,然后再將它開源,因為這樣做可以優(yōu)化流程,減少對于供應(yīng)商的依賴,而且還能夠根據(jù)需要對系統(tǒng)進行定制,使系統(tǒng)能夠以最佳方式滿足實際需求。開源軟件是開發(fā)運維實踐的最完美搭配,因為私有的封閉系統(tǒng)并不適合快速變化的環(huán)境,特別是在Web領(lǐng)域。事實總是如此,受益于開源的靈活性及其與Web開發(fā)內(nèi)在關(guān)聯(lián)性,盈利性和非盈利性組織都可以從開源軟件受益。開發(fā)運維活動不僅限于網(wǎng)站開
開源軟件在推進Web開發(fā)人員和運維人員之間的協(xié)作方面發(fā)揮著重要作用。許多組織開始越來越多地采用開源軟件,或者先從零開發(fā)軟件,然后再將它開源,因為這樣做可以優(yōu)化流程,減少對于供應(yīng)商的依賴,而且還能夠根據(jù)需要對系統(tǒng)進行定制,使系統(tǒng)能夠以最佳方式滿足實際需求。開源軟件是開發(fā)運維實踐的最完美搭配,因為私有的封閉系統(tǒng)并不適合快速變化的環(huán)境,特別是在Web領(lǐng)域。事實總是如此,受益于開源的靈活性及其與Web開發(fā)內(nèi)在關(guān)聯(lián)性,盈利性和非盈利性組織都可以從開源軟件受益。開發(fā)運維活動不僅限于網(wǎng)站開發(fā),也發(fā)生在傳統(tǒng)軟件開發(fā)領(lǐng)域,如桌面應(yīng)用、移動應(yīng)用和企業(yè)系統(tǒng)。但是,開發(fā)運維確實根植于Web開發(fā)領(lǐng)城,因為Web軟件的開發(fā)和更新速度要遠遠高于其他類型的軟件。
開發(fā)運維是一種最新的文化轉(zhuǎn)變,它將改變軟件工程師與運維丁工租師之間的互動。正如前面所介紹的,它起源于基于敏捷宣言( gilemaifestorg)的敏捷軟件開發(fā)運動。開發(fā)運維的最新關(guān)注 重點是對敏捷實踐的改進和應(yīng)用,如可用的軟件是最主要的進展指標、關(guān)注協(xié)同和擁抱變化。軟件的開發(fā)與發(fā)布速度比以前更快,所以開發(fā)與運維團隊之間的高效整合也變得更加重要,這就給予了開發(fā)運維活動動力和關(guān)注度。
傳統(tǒng)上,軟件工程師與運維人員在大多數(shù)時候都維持著一種“各自為政”的關(guān)系。軟件工程師總是想開發(fā)出一些新應(yīng)用和新產(chǎn)品去解決業(yè)務(wù)需求,而運維人員則想著如何以最穩(wěn)定、風(fēng)險最低的方式去管理和維護軟件。
運維人員的主要目標是保持服務(wù)的正常運行,解決所有出現(xiàn)的問題。這里的關(guān)鍵是,為什么運維人員不愿意變化,而變化又是軟件開發(fā)的核這是兩個有著完全相反看法的陣營。軟件開發(fā)推崇變化,只有變化才能滿足業(yè)務(wù)的需求。對于軟件工程師而言,軟件是有生命的活物,它很像是由農(nóng)民看護的農(nóng)作物,需要持續(xù)給予養(yǎng)分、精心打理,以及經(jīng)常栽培,才能成為持續(xù)產(chǎn)出的食品來源;否則,為業(yè)務(wù)提供養(yǎng)分的軟件就會凋敝,從而使業(yè)務(wù)停止增長。
在農(nóng)場中,農(nóng)民播下種子,然后看著農(nóng)作物成長,這個過程與軟件開發(fā)非常相似。在軟件開發(fā)中,先要拿到種子(基本設(shè)計),接著播種和培育(迭代式軟件開發(fā)、修復(fù)Bug,歷經(jīng)各個產(chǎn)品周期),然后收割果實(保持業(yè)務(wù)運行,獲得收益和現(xiàn)金流)。軟件開發(fā)人員扮演著農(nóng)民的角色,決定要種植什么、如何組織代碼架構(gòu)(農(nóng)作物),最后還要確保產(chǎn)生好的結(jié)果。在這個類比中,運維工程師的角色就類似于農(nóng)場雇工,他們負責整理土壤、施肥和灌溉。至少,傳統(tǒng)做法是這樣的。現(xiàn)在,農(nóng)場雇工(運維工程師)都越來越多地參與農(nóng)民(軟件開發(fā)人員)的工作,保證農(nóng)場的正常運作和農(nóng)作物的健康生長。在The First Book of Farming中,Goodrich談到“后期培育”。軟件開發(fā)周期與他書中介紹的耕作方式有很多的相似性。他使用“后期培育”這個術(shù)語來表示在農(nóng)作物種植之后執(zhí)行的作業(yè)。如果將農(nóng)場類比為服務(wù)器環(huán)境,那么后期培育過程就類似于軟件開發(fā)人員和運維工程師之間發(fā)生的事情。我們耕作和“培育作物”的方式現(xiàn)在正在發(fā)生變化,農(nóng)場雇工現(xiàn)在必須掌握的知識與農(nóng)民的知識幾乎完全相同,因為“農(nóng)作物”周期幾乎每天都在Web環(huán)境中重演。
事實上,比起農(nóng)場,Web環(huán)境的工作方式更像-種溫室環(huán)境。溫室內(nèi)的空氣質(zhì)量和氣溫都必須保持在正確的水平上,而且更加重視和依賴于自動化系統(tǒng)來控制每一棵農(nóng)作物的灌溉、施肥、光照和溫度。在這個脆弱的生態(tài)系統(tǒng)(即經(jīng)過測試后正常運行的生產(chǎn)軟件)上, 執(zhí)行太多的改動就可能會影響收成。運維這個溫室環(huán)境需要擴展,才能滿足快速增長的軟件生產(chǎn)需要。現(xiàn)在溫室必須有足夠大的空間,才能繼續(xù)種植作物。溫室現(xiàn)在不能將軟件開發(fā)人員排除在外,而是必須邀請他們進人內(nèi)部,然后與他們一起協(xié)作,保證網(wǎng)站建設(shè)基礎(chǔ)架構(gòu)能夠支持快速的變化,同時保證代碼作物能夠以高效方式產(chǎn)出。
