持續集成之“Everything is code”(2)

發表于:2014-04-16來源:博客園作者:喬梁點擊數: 標簽:持續集成
嗨,Joe。這里的 script 目錄里面放什么的呢? Jared 問道。 哦,這個目錄是放所有我們用到的腳本的。 Alex 笑著說,以前大家在測試、部署等工作中寫了很多

  “嗨,Joe。這里的 script 目錄里面放什么的呢?” Jared 問道。

  “哦,這個目錄是放所有我們用到的腳本的。” Alex 笑著說,“以前大家在測試、部署等工作中寫了很多腳本,用在各自的工作中?,F在我們統一放在這個目錄中,這樣所有人都可以使用相同的腳本做相同的事情。比如,當開發人員在自己調試時,只要執行部署腳本 autodeploy,它就會從開發配置目錄 (conf/dev)中讀取相關配置,部署好開發調試環境。而測試人員使用同一個部署腳本 autodeploy,它就會從測試配置目錄(conf/test)目錄中讀取相關配置,部署好測試環境,生產環境部署也運行同一個腳本,只不過說生產環境配置而已。”

  “這樣不錯。我們的腳本在最終向生產環境部署之前就已經被測試過很多次啦。” Jared 笑道。

  四、數據也是代碼嗎?

  “我們有點跑題了,回到我們最開始遇到的那個測試問題上吧。” Jared 說,“那個測試失敗,除了功能的小改動以外,log 里還有一些異常,好象是數據格式問題。”

  “嗯,這部分測試用到的數據放在一個固定的共享目錄中了??墒?,雖然文件名沒有變化,但其中的數據格式已經改了。也就是說,這份測試代碼與測試數據存在不一致性。” Joe 說道。

  Alex 接道,“嗯,我們現在把數據也放到了代碼倉庫中。”

  Jared 一臉狐疑,問道:“數據那么大,怎么放到代碼倉庫中呢?SVN 保存大數據并不高效,而且占用空間也比較大呀。”

  “Alex 只說了完了一半。其實,我們是把大數據放在了一個我們自行開發的版本控制系統中了。當把一份大數據放在其上時,該系統會返回唯一的一個標識 ID,我們把它放在了這個產品代碼的 conf 目錄中。這樣,當簽出某個版本的代碼時,你就可以直接拿到對應的大數據了。如果大數據修改了,那只要把它再次放到那個大數據存儲系統中,然后把返回的唯一標識更新到對就應的 conf 目錄中就行了。”Joe 補充道。“如果沒有這樣一個大數據庫版本管理系統,也可以使用共享目錄,只不過,每個子目錄下保存一份數據,把這個子目錄地址放在 SVN 里,也就行了。”

  “對于數據庫結構的修改,我們還有另外一種方法,就是利用類似于 DBmaintain 或是 DBDeploy 這樣的工具。把每一次數據庫結構的變更都寫到一個數據庫腳本,并把它們和代碼放到一起。這樣,升級過程就由這些工具就完成了。”

  五、Everything is code

  “哦,我明白了。”Jared 說道,“就是圍繞我們的服務或產品,將所有的東西進行版本管理。這樣,所有的內容都只有唯一的一個源,所有人都可以拿到同樣的信息,而且自動化工作也非常容易了。”

  “是的。而且,當完成這一步以后,所有的事情自然都成為可跟蹤可追溯的了。”Joe 笑道:“這也算是一個額外的收益吧。”

原文轉自:http://kb.cnblogs.com/page/127846/

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97