buildhome搭建環境解決方案

發表于:2012-11-05來源:百度質量部作者:不詳點擊數: 標簽:buildhome
成功部署產品線 百度目前質量部共不下20條產品線,已有過半產品線使用buildhome進行搭建環境,并將于自動化測試結合起來,可以隨時在跑腳本測試時候搭建環境。

  成功部署產品線

  百度目前質量部共不下20條產品線,已有過半產品線使用buildhome進行搭建環境,并將于自動化測試結合起來,可以隨時在跑腳本測試時候搭建環境。

  環境搭建背景

  在百度內部的不同產品線下,搭建一套環境主要包括:程序、配置項、數據三項內容。其中配置文件和數據的區分界限并不明顯,可靈活變通,基本不會變的配置文件可以為一個數據,數據如果是明文且符合某一定格式也可以為配置文件。

  困難在于:程序和配置項和數據需要統一版本,只有這統一才能夠保證上下游程序接口一致,程序讀取數據接口一致和功能點的展示一致,整個系統功能才能完整工作,其中配置文件中的配置項中還包括與下游模塊的關聯關系。

  現狀是:測試環境多,多套測試環境維護各不相同版本,每一套測試環境未能及時升級版本導致新項目測試使用的環境不是基線版本,每次進行更新都是到線上下載配置文件和程序,拷貝下來配置文件直接使用存在測試連上線上風險,調試和判斷測試環境數據是否匹配需要非常大的投入。

  buildhome介紹

  你們搭建環境是否遇到與我們產品線類似的困擾?是否由于環境問題導致項目質量的問題?每次部署一套測試環境都要修改很多配置項,特別是其中的IP信息和數據依賴關系是不是很煩?或許,buildhome能夠解除你的困擾!

  buildhome能干什么?

  1.快速幫你搭建一套完整環境或者自定義的環境,包括程序、數據、模板、配置項信息。

  2.通過參照環境(例如線上環境)進行監控模塊配置項、程序md5、固定數據信息,提供監控報警功能

  3.管理模塊與模塊的關聯關系,配合線上(或提供的)配置項,完整生成一份適合線下使用的配置文件,無需手工更改。使用人員幾乎可以不關注模塊的配置文件進行搭建一套環境

  4.管理模塊與數據的關聯關系,集中管理當前版本的數據部署,使得更新時候可以同步更新

  5.定時更新監控程序md5、配置文件、數據md5,不至于環境與線上同步失效。

  6.提供數據、程序、配置文件的項目版本管理,可以方便回滾到不同項目的版本系統中。

  buidhome主要功能–管理關聯關系

  我們的一套測試環境中有多個模塊,這些模塊可能需要與一個或多個上游或者下游模塊進行交互,從而形成了網狀結構,如圖所示:

  在實際部署的時候,我們往往將這些模塊分成多個組。從而部署到多個服務器,進行快速搭建,比如MachineA,MachineB和MachineC上,例如:

  我們希望能夠很方便地將這樣一套環境遷移到另外一套服務器,比如MachineA,MachineD和MachineE上,例如:

  同時,我們也需要能夠很方便的將一套環境中的模塊重新分組并部署到相應服務器上,例如:

  在以上操作中,各個模塊之間的關聯關系并沒有改變,因此配置人員一旦把關聯關系給找到并且配置關聯上,無論怎么部署一套環境在不同機器上,可以由工具實現協助找到當前搭建模塊和下游所在的機器,這些模塊就能相互協同工作!

  buildhome一個重要功能正是維護了各個模塊之間的關聯關系,從而使你能夠方便的實現環境的遷移和環境內模塊的快速搭建和重新分組部署。

  其基本思想是把配置文件中涉及的配置項的取值值等用變量來表示,從而把關聯關系抽象出來,通過當前環境的一個配置,與測試機器的IP,NAME等信息進行實例化,實現關聯關系的抽象。Buildhome在搭建環境過程中進行識別,并轉換其取值為下游模塊的IP或其他值,實現動態關聯。

  在某一些模塊中,可能出現一個程序對應多個配置文件或者沒有配置文件情況,buildhome都進行了支持,并且對于百度內部的主流的配置文件格式都進行支持。

  buidhome主要功能–管理數據(包括模板)與程序關系

  在百度內部的很多產品線中,程序和數據有嚴格的對應關系,缺少某部分的對應關系的數據(例如檢索系統缺少一份字典文件),程序不能夠啟動或者啟動后出現功能不正常的情況,如果想要快速搭建個完整的環境,必須把程序版本與數據的關系管理起來。

  數據的維護需要人為進行,否則不能夠完全管理一整套環境,導致buildhome搭建起來的系統可能有程序、數據的不一致!

  對于數據維護方面,buildhome提供更新環境的客戶端進行操作。更新客戶端如下:

  拼裝頁面模塊的頁面模板是一個比較特殊的數據,下載下來的數據還需要進行線上url的替換,與程序也是一個對應關系,需要做的操作是下載下模板進行執行模板替換腳本的操作。

  在域名替換方面,現階段存在很多個替換腳本和替換域名列表,并且每一個替換列表信息不一定完全同步,在一個項目上線新增了一個域名時候,通知其他替換腳本需要代價,buildhome完全管理了模板域名替換部分,每一臺機器進行同步,統一替換腳本,測試人員可以不用理會歷史版本的域名替換問題,buildhome內部實現同步。

  程序與數據的關系是一個很簡單的一對多的關系,配置過程中需要把數據和所在路徑配置上即可進行工作。

  buidhome主要功能–管理程序版本

  程序版本管理使用是簡單的與線上版本同步的操作,每天在流量低的時候與線上服務器進行一個同步操作。

  buidhome主要功能–監控配置項、程序版本、數據

  由于buildhome內部已經存在了程序的初始/線上配置項和關聯關系,既可以知道每一個配置項的值是什么,對于IP信息通過關聯關系和當前環境的一個配置,即可以知道這個IP實際應該連哪臺機器的哪個端口。通過與當前機器的模塊的配置文件的對比,可以得出當前機器是否存在配置項的修改。

原文轉自:http://www.anti-gravitydesign.com

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