處理網(wǎng)站開發(fā)變更
- 編輯:admin -隨著開發(fā)運(yùn)維概念的出現(xiàn),軟件工程師和運(yùn)維工程師將具有相似的能力,而且他們的技術(shù)集合也更加接近。系統(tǒng)管理員必須像專業(yè)軟件開發(fā)人員一樣知道如何編寫應(yīng)用程序。這是因?yàn)?,這兩個(gè)團(tuán)隊(duì)都需要使用同一種語(yǔ)言,軟件工程師必須了解運(yùn)維人員的操作方式,理解系統(tǒng)管理員反對(duì)變化的心態(tài);運(yùn)維人員必須學(xué)習(xí)如何接受快速變更,然后學(xué)習(xí)如何創(chuàng)建能夠適應(yīng)這種變更的系統(tǒng),降低風(fēng)險(xiǎn)并提早發(fā)現(xiàn)問(wèn)題,而不是試圖限制變更。
隨著開發(fā)運(yùn)維概念的出現(xiàn),軟件工程師和運(yùn)維工程師將具有相似的能力,而且他們的技術(shù)集合也更加接近。系統(tǒng)管理員必須像專業(yè)軟件開發(fā)人員一樣知道如何編寫應(yīng)用程序。這是因?yàn)?,這兩個(gè)團(tuán)隊(duì)都需要使用同一種語(yǔ)言,軟件工程師必須了解運(yùn)維人員的操作方式,理解系統(tǒng)管理員反對(duì)變化的心態(tài);運(yùn)維人員必須學(xué)習(xí)如何接受快速變更,然后學(xué)習(xí)如何創(chuàng)建能夠適應(yīng)這種變更的系統(tǒng),降低風(fēng)險(xiǎn)并提早發(fā)現(xiàn)問(wèn)題,而不是試圖限制變更。
以往,軟件工程師和系統(tǒng)管理員隸屬于兩個(gè)完全不同的部門,他們互相之間幾乎沒(méi)有互動(dòng)。這可以追溯到盒裝軟件開發(fā)的時(shí)期,那時(shí)產(chǎn)品都采用瀑布方式開發(fā),然后通過(guò)物理介質(zhì)交付給客戶。USENIX ;login雜志主編Rik Farrow介紹了Web開發(fā)出現(xiàn)之前的系統(tǒng)管理員工作。
我曾經(jīng)加入到一個(gè)開發(fā)團(tuán)隊(duì)中,我的系統(tǒng)管理工作主要包括創(chuàng)建各種不同的工作站,幫助他們將軟件安裝到這些工作站上。我只需要支持從工作站供應(yīng)商獲取的軟件包,不需要支持其他軟件包。
當(dāng)我從事系統(tǒng)管理咨詢工作時(shí),情況也是完全一樣的。我的工作就是讓Unix系統(tǒng)保持正常運(yùn)行,完全不需要理會(huì)已安裝的軟件。由于我是一位“雇傭槍手”,所以我需要解決各種難題,而且他們沒(méi)有使用任何商業(yè)軟件。
話雖如此,但是我負(fù)責(zé)的Unix是一個(gè)非常有用的軟件平臺(tái),它適合運(yùn)行那些要求支持多用戶或連網(wǎng)協(xié)作的軟件。例如,牙科診所廣泛使用SCO作為監(jiān)控系統(tǒng)。不過(guò),他們自己幾乎都不知道自己使用的是一種Unix。
數(shù)據(jù)庫(kù)也運(yùn)行在Unix上,同樣是要求支持多用戶訪問(wèn)。另一個(gè)例子是出版軟件,如FrameMaker。在所有的應(yīng)用中,從沒(méi)有人要求我簡(jiǎn)化底層系統(tǒng)的管理,我自己也從沒(méi)有想過(guò)這件事情。我只是努力保證系統(tǒng)能夠可靠運(yùn)行。
當(dāng)Windows NT出現(xiàn)之后,我曾經(jīng)合作過(guò)的許多系統(tǒng)用戶都拋棄了Unix系統(tǒng),他們認(rèn)為Windows更容易管理。如果“更容易管理”指的是用戶界面(GUI),那么確實(shí)是這樣的。用戶界面隱藏了復(fù)雜性,但是如果要執(zhí)行一些用戶界面不支持的操作,那么我們一樣會(huì)遇到困難。據(jù)我所知,在使用Windows系統(tǒng)后,沒(méi)人會(huì)向“工作組管理員”詢問(wèn)關(guān)于軟件設(shè)計(jì)的問(wèn)題。不過(guò),那是上世紀(jì)90年代末的事情了,所以我在這里介紹的經(jīng)歷也只是傳聞。
開發(fā)運(yùn)維是一個(gè)新概念。像Facebook那樣,由于需要每周發(fā)布一次或兩次新版本,所以開發(fā)人員最好與系統(tǒng)管理員協(xié)作,否則新版本上線對(duì)于他們而言就是一種災(zāi)難。過(guò)去,人們購(gòu)買的軟件可以使用很長(zhǎng)時(shí)間。例如,始于上世紀(jì)90年代的USENIX數(shù)據(jù)庫(kù)就是這樣(確實(shí)很恐怖)。自Web應(yīng)用出現(xiàn)之后,其使用模式和功能每天都會(huì)發(fā)生變化,如果開發(fā)人員不與系統(tǒng)管理員溝通,就擅自執(zhí)行較大變更,那么他們的新系統(tǒng)可能就會(huì)出錯(cuò),因?yàn)樗麄冞€不知道新的變更是否能夠得到支持。當(dāng)然,試驗(yàn)性上線會(huì)有一定的幫助,但是,這種活動(dòng)也必須與系統(tǒng)管理員合作才能完成。
互聯(lián)網(wǎng)完全改變了軟件的使用方式。在出現(xiàn)USENET之后,人們開始通過(guò)連網(wǎng)的計(jì)算機(jī)共享文件和信息。隨后,萬(wàn)維網(wǎng)面世。Web是第一種成功的軟件即服務(wù)。隨著Web技術(shù)的成熟,Web 標(biāo)準(zhǔn)和瀏覽器開始提供越來(lái)越多模擬桌面應(yīng)用的功能。隨著HTML5、 CSS3、JavaScript 和Flash這些技術(shù)得以運(yùn)用,現(xiàn)在的許多Web應(yīng)用都實(shí)現(xiàn)了以前桌面應(yīng)用才有的相同特性。以前僅限于在桌面上使用的應(yīng)用,現(xiàn)在都可以在Web上實(shí)現(xiàn),這其中包括了金融、銀行、出版、通信方面的應(yīng)用,甚至連圖形圖像處理與設(shè)計(jì)都可以在Web上實(shí)現(xiàn)了。
這意味著,對(duì)于將網(wǎng)站(通常是一個(gè)復(fù)雜Web應(yīng)用)作為業(yè)務(wù)主要入口的公司而言,他們現(xiàn)在不需要向成百上千的客戶包裝和運(yùn)送軟件,軟件更新周期也不需要以年為單位,應(yīng)用程序的修改可以在一周、一天或幾小時(shí)內(nèi)完成?,F(xiàn)在代碼的更新速度遠(yuǎn)遠(yuǎn)快于20世紀(jì)90年代,甚至也比本世紀(jì)初都快很多。敏捷開發(fā)逐漸成長(zhǎng)起來(lái)并替代了盒裝軟件的瀑布開發(fā)方法,因?yàn)楹笳咭呀?jīng)不適用于Web開發(fā)了,Web現(xiàn)在已經(jīng)成為開展商務(wù)與共享信息的事實(shí)載體。Web開發(fā)團(tuán)隊(duì)必須調(diào)整他們的流程,適應(yīng)Web增長(zhǎng),這樣才能根據(jù)客戶要求快速發(fā)布新產(chǎn)品(即新網(wǎng)站)。
敏捷宣言規(guī)定,團(tuán)隊(duì)?wèi)?yīng)該自我組織,因此要開始打破開發(fā)與運(yùn)維之間的壁壘。開發(fā)與運(yùn)維團(tuán)隊(duì)必須開始協(xié)作,才能實(shí)現(xiàn)他們的共同目標(biāo)支持越來(lái)越大和越來(lái)越復(fù)雜的Web應(yīng)用,其中包括保證系統(tǒng)的一致性、穩(wěn)定性和可用性。這是一種新的工作方式,但是和許多文化轉(zhuǎn)變一樣,這個(gè)過(guò)程需要多年時(shí)間才能完成。
網(wǎng)站建設(shè)開發(fā)運(yùn)維代表了一種新的文化視點(diǎn),它促使開發(fā)人員與運(yùn)維工程師展開協(xié)作,共同支持網(wǎng)站與Web應(yīng)用中更快速和更復(fù)雜的變化一當(dāng)然,這些原則也適用于盒裝或非Web軟件。公司現(xiàn)在能夠以驚人的速度發(fā)布新產(chǎn)品,這種加速是由軟件開發(fā)團(tuán)隊(duì)實(shí)現(xiàn)的。運(yùn)維人員必須保證系統(tǒng)能夠可靠地運(yùn)行和很好地?cái)U(kuò)展,并且要通過(guò)使用自動(dòng)化、配置管理,以及其他工具與實(shí)現(xiàn)方法,盡可能加快軟件開發(fā)周期。
